数据库连接(JDBC)及其.ppt

上传人:小飞机 文档编号:6578706 上传时间:2023-11-14 格式:PPT 页数:23 大小:323.64KB
返回 下载 相关 举报
数据库连接(JDBC)及其.ppt_第1页
第1页 / 共23页
数据库连接(JDBC)及其.ppt_第2页
第2页 / 共23页
数据库连接(JDBC)及其.ppt_第3页
第3页 / 共23页
数据库连接(JDBC)及其.ppt_第4页
第4页 / 共23页
数据库连接(JDBC)及其.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《数据库连接(JDBC)及其.ppt》由会员分享,可在线阅读,更多相关《数据库连接(JDBC)及其.ppt(23页珍藏版)》请在三一办公上搜索。

1、第11章 数据库连接(JDBC)及其应用,本章要点:数据源的配置数据库驱动程序加载的方式数据库操作的流程事务控制预查询,11.1 JDBC基本编程概念,JDBC协议遵循了微软公司的ODBC模型,并与ODBC建立在同一方案的基础之上:遵循JDBC API协议的程序和JDBC驱动程序管理器通信,驱动程序管理器用嵌入的驱动程序访问数据库。从程序设计的角度来看,用JDBC类编程与使用一般的Java类编程并没有太大的不同。,11.1.1 设定ODBC数据源,-语法-2000版本String URL=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName

2、=news;Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);Connection con=DriverManager.getConnection(URL,sa,sa);,sql server数据库驱动类的完全限定类名,演示:在工程中引入JDBC驱动程序包,数据库名称,-语法-2005版本String URL=jdbc:sqlserver:/localhost:1433;DatabaseName=news;Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);

3、Connection con=DriverManager.getConnection(URL,sa,sa);,sql server数据库驱动类的完全限定类名,演示:在工程中引入JDBC驱动程序包,数据库名称,1.SQL Server 2000数据库连接字符串Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance();Connectionconn=java.sql.DriverManager.getConnection(jdbc:microsoft:sqlserver:/数据库服务器名或地址:1433;Dat

4、abaseName=数据库名,用户名,密码);所需jar包:msbase.jar、mssqlserver.jar、msutil.jar2.SQL Server 2005 数据库连接字符串:Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver).newInstance();Connectionconn=java.sql.DriverManager.getConnection(jdbc:sqlserver:/数据库服务器名或地址:1433;DatabaseName=数据库名,用户名,密码);,11.1.2 数据库URL要连接一个数据库

5、,必须要指定源数据库,有时也需要指定相应的参数。例如:网络协议驱动程序需要指定端口、ODBC驱动程序等。JDBC用类似于常见的Net URL句法描述数据库。例如:我们通过JDBCODBC桥连接一个Access数据库myAccess:jdbc:odbc:myAccess String driverName=sun.jdbc.odbc.JdbcOdbcDriver;String URL=jdbc:odbc:db1;JDBC常规的URL句法是:jdbc:subprotocol name:datasource连接到Oracle数据库及SQL Server的URL分别如下:Oracle数据库jdbc:o

6、racle:thin:127.0.0.1:1521:wangwd,数据库名称,因为连接Oracle数据库一般是通过客户端去进行的,Oracle客户端也被称为瘦型机(thin),对于127.0.0.1这是本地IP地址,也就是说Oracle数据库是安装在本机上的,当然在这里用户也可以采用如下的格式:jdbc:oracle:thin:localhost:1521:wangwd1521是Oracle访问端口号,wangwd是建立的Oracle数据库的名字,用户可以换成自己喜欢的名字。SQL Server 2000数据库URLjdbc:microsoft:sqlserver:/localhost:143

7、3在这里采用默认的数据库,如果用户自己创立的数据库如myBook,可以采用如下的格式:jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=myBook,SQL Server 2005数据库URLjdbc:sqlserver:/localhost:1433在这里采用默认的数据库,如果用户自己创立的数据库如myBook,可以采用如下的格式:jdbc:sqlserver:/localhost:1433;DatabaseName=myBook驱动程序全称:com.microsoft.sqlserver.jdbc.SQLServerDriver,1

8、1.1.3 建立连接驱动程序管理器(DriverManager)类是负责选择数据库驱动程序和建立到数据库的连接的类,但驱动程序管理器只能激活已登录的驱动程序。登录驱动程序的方法如下:装入一个驱动程序类以自己登录驱动程序。例如可以用以下方式登录Oracle驱动程序:Class.forName(oracle.jdbc.driver.OracleDriver);用户也可以用下面的方式登录一个SQL Server的驱动程序:Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);登录我们刚刚建立的ODBC数据源的方法如下:Class.fo

9、rName(sun.jdbc.odbc.JdbcOdbcDriver);,现在我们假设安装了Oracle数据库,数据库名字为wangwd,则得到一个数据库的连接如下:Class.forName(oracle.jdbc.driver.OracleDriver);/登录Oracle数据库驱动程序String url=jdbc:oracle:thin:localhost:1521:wangwd;/数据库URLString userName=scott;/登录数据库用户名String password=tiger;/用户密码Connection con=DriverManager.getConnect

10、ion(url,userName,password);接着我们再以笔者安装的SQL Server为例,并新建一个数据库为studentmanager:Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);String url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=studentmanager;String userName=sa;String password=;Connection con=DriverManager.getConnection(url,us

11、erName,password);,11.1.4 建立会话数据库建立连接后,要想操纵数据库,必须跟数据库建立一个会话。所谓会话就是从建立一个数据库连接到关闭数据库连接所进行的所有动作的总称,这与数据库会话是不同的。可以通过如下的代码得到一个会话:tryStatement st=con.createStatement();catch(SQLException e)通过这段代码我们可以知道,创建一个会话是建立在数据库连接的基础上的。现在我们得到了一个默认的会话。接下来就可以进行数据库的具体操作了。,11.1.5 操作数据库如果我们把数据库(database)看作是一个仓库,那到数据库的连接(Con

12、nection)就可以假想成一条通往仓库的阳光大道,那么会话(Statement)就可以看作是跑在这条大道上的一辆货车,我们对数据库进行的不同的操作(SQL语句),就是对这辆货车发出不同的指令(update、delete、query等),执行的结果就是从数据库中返回操作结果,这个结果就类似于从仓库拉回不同的货物。1.查询查询操作是数据库中最基本的语句,通过如下的语句可以对数据库执行一个查询,查询的结果是以结果集(ResultSet)的形式返回的。String sql=select*from student;ResultSet result=st.executeQuery(sql);,Resul

13、tSet类的若干方法,例11-1程序清单 QueryODBCTest.java/*通过这个程序,向读者展示比较完整的JDBC数据库操作的顺序,在这个例子中主要展示的查询*及格式输出。*/import java.sql.SQLException;import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;import java.sql.DriverManager;import java.sql.Date;public class QueryODBCTest private Connection co

14、n;public static void main(String args)QueryODBCTest test=new QueryODBCTest();Connection con=test.getConnection();String sql=select*from student;test.getStudent(con,sql);,public void getStudent(Connection con,String sql)tryStatement st=con.createStatement();ResultSet rs=st.executeQuery(sql);while(rs.

15、next()String name=rs.getString(姓名);String number=rs.getString(学号);Date date=rs.getDate(出生日期);String spe=rs.getString(专业);String address=rs.getString(籍贯);System.out.println(n姓名:+name+t学号:+number+t出生日期:+date+t专业:+spe+t籍贯:+address);,st.close();con.close();catch(SQLException e)e.printStackTrace();public

16、 Connection getConnection()String url=jdbc:odbc:myAccess;/数据库URLString userName=;/登录数据库用户名String password=;/用户密码try/登录JDBC-ODBC驱动程序Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);con=DriverManager.getConnection(url,userName,password);catch(SQLException e),e.printStackTrace();catch(ClassNotFoundException

17、 ex)ex.printStackTrace();return con;,2.建表下面我们将在SQL Server中利用数据库的相关操作建立一个student表,并插入相关的记录。在创建一个表格时,我们是通过:st.execute(sql);来实现的。execute方法的返回值是一个boolean型的,如果执行成功就返回true,反之则返回false。在执行插入记录的操作时,我们是通过:st.executeUpdate(sql);来实现的。它的返回值是一个int型的数值,它表示当前操作完成的记录数。,3.创建数据库在前面的示例中,我们都是通过直接将SQL语句嵌入到程序本身中,这种编码方式我们习

18、惯上称之为硬编码。硬编码看起来比较容易编写,但存在一个很大的缺点,那就是兼容性不强,这里的兼容性指的是程序的兼容性。试想,假如我们按照以下的形式创建了一张表:String sql=CREATE TABLE SUTDENT(姓名 varchar(12)NOT NULL,+学号 varchar(10)NOT NULL,+出生日期 datetime NOT NULL,专业 varchar(10)NULL,+籍贯 varchar(30)NULL);如果由于某种原因需要将籍贯的字段长度更改为50位字符长,那只有重新修改程序代码,并重新编译,重新发布,这样做无疑是非常麻烦的。现在我们可以将类似的SQL语句

19、也通过配置文件配置,并且当需要修改数据库结构时,我们只需要简单地修改一下属性文件就可以了。,11.2 预查询,接下来,我们再介绍JDBC在进行查询数据库操作方面的一个新的特性:预查询(prepared statement)。根据字面的意思,我们知道预查询也就是在执行真正的查询工作之前先做一部分准备工作,以适应真正的查询,这样做的目的是为了减少数据库操作的时间。现在假设我们想从建立的数据库中查询符合条件的一条记录:select 姓名,学号,专业,籍贯 from student where 姓名=需要用户输入的信息在这个SQL语句中,只有需要用户输入的信息是可变的,其他信息基本上不变,所以我们可以

20、考虑把前面的信息先输入到数据库中,只要用户输入想查询的人名就可以了,这种情况就像是数据库在等待填空一样。在JDBC中预查询是用“?”来替代未知条件,那么上面的SQL语句就可以实现为:select 姓名,学号,专业,籍贯 from student where 姓名=?,11.3 小结,通过这一章的讲述,使读者能使我们的应用程序与数据库有机的结合起来,在这一章中,笔者通过示例示范了连接不同数据库的方法,并分别讲述了数据库的相关操作,希望读者在实际应用中仔细体会。尽管现在JDBC对于某些功能的支持不是太好,但随着JDBC2的应用与发展,会有很大的转变,在JDBC2中也会有更新的功能与改变体现出来,读者可以查看Sun公司关于JDBC2设计规范。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号