Java知多少(106)程序与数据库连接
一个网络关系数据库应用系统是一个三层次结构。客户机与服务器采用网络连接,客户机端应用程序按通信协议与服务器端的数据库程序通信;数据库服务程序通过SQL命令与数据库管理系统通信。
Java程序与数据库连接方法有两种。一种是使用JDBC-ODBC桥接器与数据库连接,一种是用纯Java的JDBC驱动程序实现与数据库连接。
使用JDBC-ODBC 桥接器与数据库连接
Java程序使用JDBC-ODBC 桥接器与数据库连接,Java程序与数据库通信的过程是:
先由数据库应用程序向ODBC驱动管理器发出API调用,ODBC驱动管理器将这个调用转换成向数据库管理系统的ODBC驱动程序调用,数据库管理系统又将这个调用转换成对操作系统的数据输入/输出调用。最后,操作系统从数据库中得到实际数据逐级返回。
数据库编程首先要设置数据源,在ODBC中设置数据源的步骤如下:
- 打开Windows控制面板中的管理工具。对于windows XP:选择“性能维护”>>“管理工具”>>“数据源(ODBC)”; 对于windows 2000:选择“管理工具”>>“数据源”。
- 打开“数据源”。出现ODBC数据源管理器对话框,显示现有的数据源名称。
- 选择“用户DSN”,单击“添加”按钮,出现安装数据源驱动程序对话框。Access(*.mdb)数据源,单击“完成”按钮,出现“创建数据源对话框,键入需要创建的数据源名,并为创建的数据源选择一个数据库表。
- 单击数据库区域的“选择”按钮,选择需要的数据库表。当需要为数据源授权访问级别时,单击“高级”按钮。设置登录名和密码后,单击“确定”按钮,完成Access数据库在ODBC管理器中的配置。
- 如果还没有数据库表,则需创建一个数据库表。
数据源就是数据库,在设定了数据源的基础上,Java程序要访问数据库表,还要建立JDBC-ODBC桥接器,让程序与数据库连接。以后,程序就可向数据库发送SQL语句,处理数据库返回的结果。Java数据库连接JDBC(Java DataBase Connectivity)由一组用Java语言编写的类和接口组成,JDBC是Java程序与数据库连接API。它能做以下三件事情:与某个数据库建立连接、向数据库发送SQL语句和处理数据库返回的结果。
调用类方法Class.forName(String s)能建立JDBC-ODBC桥接器。例如,代码:
try{
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
}catch(Exception e){}
为Java程序加载了驱动程序。
【例 13-7】说明与数据库连接的方法connectByJdbcOdbc(),该方法按给定的数据库URL、用户名和密码连接数据库,如果连接成功,方法返回连接对象,连接不成功,则返回空。
public static connection connectByjdbcOdbc(String url, String username, String password){
Connection con = null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载ODBC驱动程序
}
catch (Exception e){
e.printStackTrace();
return null; //连接失败
}
try{
con = DriverManager.getConnection(url, username, password);
}
catch (SQLExceotuib e){
e.printStackTrace();
return null; //连接不成功
}
return con; //连接成功
}
以下代码是对connectByJdbcOdbc()方法的一个调用,数据库连接成功,弹出数据库连接成功信息窗,否则弹出数据库连接不成功信息窗。
if ((con = connectByJdbcOdbc("jdbc:odbc:redsun", "xia", "1234")) != null){
JoptionPane.showMessageDialog(null, "数据库连接成功");
try{
con.close();
con = null;
}
catch (SOLException e){}
}
else
JOptionPane.showMessageDialog(null, "数据库连接失败");
用纯Java的JDBC驱动程序实现与数据库连接
Java程序也可以用纯Java的JDBC驱动程序实现与数据库连接。这种方法应用较广泛,但是需要下载相应的驱动程序包,因为不同的数据库的连接代码可能不同,连接不同的数据库,加载的驱动程序也可能不同。例如,连接SQLServer的驱动程序在www.msdn.com网站下载,有3个包:msbase.jar,mssqlserver.jar和msutil.jar,并要求将这3个包放在jdk\jre\lib\ext\目录下,或在CLASSPATH中设置其放置位置。
使用纯Java的JDBC驱动程序实现与数据库连接的过程如下:
- 加载驱动程序。有两种加载驱动程序的方式:
- 一各是将驱动程序添加到java.lang.System的属性jdbc.drivers中。这是一个DriverManager类加载驱动程序类名的列表,表元用冒号分隔。
- 另一种方式是从相关的网站下载驱动程序后,在程序中利用Class.forName()方法加载指定的驱动程序。例如:
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
- 创建指定数据库的URL。数据库的URL对象类似网络的统一资源定位符,其格式是:
jdbc:subProtocol:subName://hostname:port:Databasename=XX
其中,subprotocol是某种驱动程序支持的数据库连接机制; subName是当前连接机制下的具体名称;hostName是主机名;port是相应的连接端口;DatabaseName是要连接的数据库名称。例如,以下代码可以是一个数据库的URL:
jdbc:Microsoft:sqlserver://localhost:1433;Databasename=ksinfo
该数据库的URL说明利用miscrosoft提供的机制,用sqlserve驱动,通过1433端口访问本机上的ksInfo数据库。
- 建立连接。驱动程序管理器(DriverManager)的方法getConnection()建立连接。
【例 13-8】说明与数据库连接的静态方法connectByJdbc(),该方法按给定的数据库URL、用户名和密码连接数据库,如果连接成功,方法返回true,连接不成功,则返回false。
public static Connection conectByJdbc(String url, String username, String password){
Connection con = null;
try{
Class.forName( //加载特定的驱动程序
"com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch (Exception e){
e.printStackTrace();
return null; //连接失败
}
try{
con = DriverManage.getConnection(url, username, password);
}
catch (SQLException e){
e.printStackTrace();
return null; //连接失败
}
return con; //连接成功
}
系列文章:
Java知多少(106)程序与数据库连接的更多相关文章
- Java知多少(6)第一个程序示例
跟随世界潮流,第一个Java程序输出“Hell World!”. 通过Eclipse运行程序 启动Eclipse,在菜单中选择“文件 --> 新建 --> Java项目”,弹出对话框: 图 ...
- Java知多少(完结篇)
Java知多少(1)语言概述 Java知多少(2)虚拟机(JVM)以及跨平台原理 Java知多少(3) 就业方向 Java知多少(4)J2SE.J2EE.J2ME的区别 Java知多少(5) Java ...
- Java知多少(下)
Java知多少(78)Java向量(Vector)及其应用 Java知多少(79)哈希表及其应用 Java知多少(80)图形界面设计基础 Java知多少(81)框架窗口基础 Java知多少(82)标签 ...
- Java知多少(112)数据库之删除记录
删除数据表也有3种方案 一.使用Statement对象 删除数据表记录的SQL语句的语法是: delete from 表名 where 特定条件 例如 : delete from ksInfo whe ...
- Java知多少(111)数据库之修改记录
修改数据表记录也有3种方案. 一.使用Statement对象 实现修改数据表记录的SQL语句的语法是: update表名 set 字段名1 = 字段值1,字段名2 = 字段值2,……where特 ...
- Java知多少(110)数据库之插入记录
插入数据表记录有3种方案 一.使用Statement对象 实现插入数据表记录的SQL语句的语法是: insert into 表名(字段名1,字段名2,……)value (字段值1,字段值2,……) 例 ...
- Java知多少(109)数据库更新
数据库更新操作包括数据表创建.删除.以及数据表记录的增加.删除.修改等操作.如果利用数据 SQL命令实现,则利用Statement对旬的executeUpdate()方法,执行SQL的update语句 ...
- Java知多少(108)数据库查询简介
利用Connection对象的createStatement方法建立Statement对象,利用Statement对象的executeQuery()方法执行SQL查询语句进行查询,返回结果集,再形如g ...
- Java知多少(107)几个重要的java数据库访问类和接口
编写访问数据库的Java程序还需要几个重要的类和接口. DriverManager类 DriverManager类处理驱动程序的加载和建立新数据库连接.DriverManager是java.sql包中 ...
随机推荐
- paip.环境设置 mybatis ibatis cfg 环境设置
paip.环境设置 mybatis ibatis cfg 环境设置 三部分 //////////1. 电泳.... ............2. 猪配置文件 com/mijie/homi/searc ...
- iOS图片加载速度极限优化—FastImageCache解析
FastImageCache是Path团队开发的一个开源库,用于提升图片的加载和渲染速度,让基于图片的列表滑动 优化点 iOS从磁盘加载一张图片,使用UIImageVIew显示在屏幕上,需要经过以下步 ...
- 3D touch 环境配置
有人私信问我怎么配置环境,我就写个详细的,一步一步慢慢看,哈哈哈~ 打开下面 github, 记得FQ. https://github.com/DeskConnect/SBShortcutMenuSi ...
- iOS开发中使用CocoaPods来管理第三方的依赖程序
之前也碰到类似的问题,怎样去管理这些第三方的文件,虽然手动添加也不算麻烦. 写这篇文章主要参考了唐巧的博文,链接如下: http://blog.devtang.com/blog/2012/12/02/ ...
- android: 播放音频
在 Android 中播放音频文件一般都是使用 MediaPlayer 类来实现的,它对多种格式的音 频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单.下表列出了 MediaPlay ...
- 使用Reveal查看任意App的技巧
转:http://www.jianshu.com/p/4dc8f94ca27c 前言 Reveal(http://revealapp.com)是一个很强大的iOS View Hierarchy工具,与 ...
- Chrome Apps將是Google送給微軟的特洛伊木馬?
今天,Google 發表了 Chrome Apps,不同於之前 web app,此舉是要把 Chrome 瀏覽器升級為真正的 app 平台,將 Chrome OS 發展成一個成熟的作業系統,可以視為 ...
- centos7防火墙那些事
转发设置 firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080 firewall-cmd --perma ...
- HBase + Kerberos 配置示例(二)
接上篇<HBase + Kerberos配置示例(一)>,我们继续剩下的配置工作. 环境准备 Hadoop配置 Zookeeper配置 HBase配置 Java测试程序 环境准备 安装ha ...
- H-Basis/SG/SH GI Relighting
小试了一把预计算全局光照,作为PRT的上级应用.完全自行实现,使用SG/SH.H-Basis基波对GI光场进行频域压缩,存在3D纹理中,用于2跳间接光照实时显示.其中坑点不少,尤其是在HDR环境下使用 ...