1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,14,章 数据库编程,内容,JDBC,简介,通过,jdbc-odbc,桥接器连接数据库,通过,jdbc,驱动程序直接连接数据库,重点,通过,jdbc-odbc,桥接器连接数据库,通过,jdbc,驱动程序直接连接数据库,难点,通过,jdbc,驱动程序直接连接数据库,本章要点,14.1 JDBC,简介,1.JDBC,特点,JDBC,(,Java,DataBase,Connectivity,)是,Java,运行平台的核心类库中的一部分,提供了访问数据库的,API,,它由一些,Java,类和接口组成。,使用,JDB
2、C,的应用程序一旦和数据库建立连接,就可以使用,JDBC,提供的,API,操作数据库。,JDBC,使得前台编程独立于后台,即当后台数据库变化以后只需更改其驱动器即可。,14.1 JDBC,简介,数据库,ODBC,驱动程序,数据库,JDBC-ODBC,桥,JDBC,驱动程序管理器,数据库供应商提供,的,JDBC,驱动程序,应用程序,JDBC,API,JDBC,API,JDBC,驱动程序,API,2.JDBC,架构,14.1 JDBC,简介,3.JDBC,链接数据库的两种方式:,使用,jdbc-odbc,桥接器连接数据库,主要针对,Access,等,Windows,自带,ODBC,驱动的数据库,使
3、用,jdbc,驱动程序直接连接数据库,主要针对,Windows,没有自带驱动,相应驱动由数据库生产厂商提供,使用前需要安装加载。,14.1 JDBC,简介,4.JDBC API,工作原理,14.2,通过,jdbc-odbc,桥接器连接数据库,1.jdbc-odbc,桥连接器介绍,ODBC,是,Microsoft,用于访问,SQL,数据库的公共接口,jdbc-odbc,桥接器,通过将,JDBC,的方法调用转换成,ODBC,的函数调用来实现的,是最简单、常用的连接数据库方法,使用,jdbc-odbc,桥接器来连接数据库,必须先配置数据源,14.2,通过,jdbc-odbc,桥接器连接数据库,2.,
4、步骤:,配置数据源,加载,jdbc-odbc,桥驱动程序,和数据库建立连接,访问数据库,执行,SQL,查询语句,处理查询结果,执行插入、修改及删除,SQL,语句,14.2,通过,jdbc-odbc,桥接器连接数据库,配置数据源,打开控制面板,管理工具,数据源(,ODBC,),双击数据源如下界面:,点击,14.2,通过,jdbc-odbc,桥接器连接数据库,选择,Microsoft Access Driver(*.,mdb,),双击,14.2,通过,jdbc-odbc,桥接器连接数据库,填写数据源,并选择相应数据库,14.2,通过,jdbc-odbc,桥接器连接数据库,建立,jdbc-odbc,
5、桥驱动程序,使用类,Class,Class,类在包,java.lang,中,使用其静态方法,forName(String,),来将类加载到,java,解释器中,try,Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver,”);,catch(ClassNotFoundException,e),14.2,通过,jdbc-odbc,桥接器连接数据库,连接到数据库,使用类,DriverManager,的静态方法,getConnection,(),创建,Connection,接口的对象:,DriverManager,类 和,Connection,接口在,java.sq
6、l,包中,try,Connection con=,DriverManager.getConnection,(“,jdbc:odbc,:,数据源的名字“,”数据源的,login name”,”,数据源的,password”);,catch(SQLException,e),例,1,:连接数据库例子。,import,java.sql,.*;,public class,DataCon,public static void,main(String,args,),try,Class.,forName,(sun.jdbc.odbc.JdbcOdbcDriver,);,catch(ClassNotFoundE
7、xception,e),e.printStackTrace,();,try,Connection,con,=,DriverManager.,getConnection,(jdbc:odbc,:,学生管理,);,System.,out,.println(Connection,Successful!);,catch(SQLException,e),e.printStackTrace,();,14.2,通过,jdbc-odbc,桥接器连接数据库,访问数据库,SQL,语句用一个,Statement,对象来表示。,Statement,是一个接口。,和数据库链接的,Connection,对象调用其方法,c
8、reateStatement,(),来创建,Statement,对象方式,:,try Statement,sql,=,con.createStatement,();,catch(SQLException,e),需要滚动显示时应该设置,createStatement(s,t,),的参数,S,有以下取值:,ResultSet.TYPE_FORWARD_ONLY,/,依次显示,ResultSet.TYPE_SCROLL_INSENSITIVE,/,滚动显示,忽略游标移动时其他代码引起的改变,ResultSet.TYPE_SCROLL_SENSITIVE,/,滚动显示,T,有以下取值:,ResultS
9、et.CONCUR_READ_ONLY,ResultSet.CONCUR_UPDATABLE,14.2,通过,jdbc-odbc,桥接器连接数据库,执行查询,SQL,语句对数据库的操作结果放入一个,ResultSet,对象,既存放了从该数据库中获取的所有记录,ResultSet,rs,=,sql.executeQuery(“SELECT,*FROM,成绩表,”,),;,使用以下方法在结果集,ResultSet,中移动:,afterLast,(),beforeFirst,()first()last()previous(),absolute(int,row),relative(int,row)ne
10、xt(),使用以下方法从当前记录集中提取信息:,getDate(String,),getDouble(String,),getFloat(String,),getInt(String,),getLong(String,),getString(String,),14.2,通过,jdbc-odbc,桥接器连接数据库,更新操作:,1.,执行插入、修改及删除,SQL,语句,excuteUpdate,(),执行插入、修改及删除的,SQL,命令,sql.executeUpdate(“INSERT,INTO,Authorlist,VALUES(20,刘德华,)”);,返回一个整数,2.,通过改变参数更新结果
11、集,con.createStatement(,ResultSet.TYPE_SCROLL_SENSITIVE,,,ResultSet.CONCUR_UPDATABLE,),rs.updateString,();,rs.afterLast,();,rs.moveToInsertRow,();,rs.updateString(1,”);,rs.insertRow,();,14.2,通过,jdbc-odbc,桥接器连接数据库,更新操作,3.,使用预编译,SQL,语句,String,sl,=select,学号,班级,姓名,性别,from,学生信息表,where,班级,=,?,;,PreparedSta
12、tement,ps,=,con.prepareStatement(sl,);,ps.setString(1,“1,班”,);,ResultSet,rs,=,ps.executeQuery,();,14.3,通过,jdbc,驱动程序直接连接数据库,以,SQL Server 2005,为例:,步骤:,1.,安装,SQL Server 2005,并做数据库,学生管理系统,2.,下载驱动,到微软网站下载,Microsoft SQL Server 2005 JDBC Driver 1.2,解压,sqljdbc_1.0.809.102_chs.exe,,会生成一个,Microsoft SQL Server
13、 2005 JDBC,的文件夹;,假设解压到,E,盘根目录则路径为:,E:Microsoft SQL Server 2005 JDBC Driversqljdbc_1.0chssqljdbc.jar,14.3,通过,jdbc,驱动程序直接连接数据库,3.,设置,Classpath,CLASSPATH=E:Microsoft SQL Server 2005 JDBC Driversqljdbc_1.0chssqljdbc.jar;,4.,拷贝到,java,安装目录下,把,sqljdbc.jar,文件拷贝到,D:Program FilesJavajdk1.6.0_07jrelibext,目录下面,
14、5.,设置,SQL Server,服务器,使用的是,SQL Server 2005,标准版,SP2,,这些都默认即可,一般不用配置。如果需要配置端口请看下面。,14.3,通过,jdbc,驱动程序直接连接数据库,“开始”“程序”“,Microsoft SQL Server 2005”“,配置工具”“,SQL Server,配置管理器”“,SQL Server 2005,网络配置”“,MSSQLSERVER,的协议”,如果“,TCP/IP”,没有启用,右键单击选择“启动”。,双击“,TCP/IP”,进入属性设置,在“,IP,地址”里,可以配置“,IPAll,”,中的“,TCP,端口”,默认为,14
15、33,。,重新启动,SQL Server,或者重启计算机。,创建数据库学生管理系统,14.3,通过,jdbc,驱动程序直接连接数据库,6.Eclipse,设置,打开,Eclipse,,“文件”“新建”“项目”“,Java,项目”,项目名为,Test,在,Eclipse,中,选择“窗口”“首选项,.”“Java”“,已安装的,JRE”,,选择已安装的,JRE,,点击“编辑”“添加外部”,选择,E:Microsoft SQL Server 2005 JDBC Driversqljdbc_1.0chssqljdbc.jar;,在,Test,项目的“,JRE,系统库”中可以看见,sqljdbc.jar
16、如果没有可以右键单击项目,Test“,构建路径”“配置构建路径,.”“Java,构建路径”“库”“添加外部,JAR.”,,选择,E:Microsoft SQL Server 2005 JDBC Driversqljdbc_1.0chssqljdbc.jar;,14.3,通过,jdbc,驱动程序直接连接数据库,7.,具体链接代码,import,java.sql,.*;,public class Test,public static void,main(String,srg,),String,dbURL,=jdbc:sqlserver:/localhost:1433;,DatabaseName
17、学生管理系统,;,String,userName,=,sa,;,String,userPwd,=123;,Connection,dbConn,;,try,Class.,forName,(com.microsoft.sqlserver.jdbc.SQLServerDriver,);,dbConn,=,DriverManager.,getConnection,(dbURL,userName,userPwd,);,System.,out,.println(Connection,Successful!);,catch(Exception e),e.printStackTrace,();,14.3,使用预编译,SQL,语句,能够进行多次重复查询,例子:,String URL=,jdbc:odbc,:,学生管理,;,Connection con=,DriverManager.getConnection(URL,);,String SQL=SELECT,学号,姓名,年龄,系别,FROM,学生信息表,+WHERE,学号,=?;,PreparedStatement,stmt=,con.prepareStatement(SQL,);,stmt.setString(1,stno);,ResultSet,rs,=,stmt.executeQuery,();,






