《JSP中使用数据库课件》由会员分享,可在线阅读,更多相关《JSP中使用数据库课件(27页珍藏版)》请在金锄头文库上搜索。
1、在JSP中使用数据库,SQLServer 2000 DBMS,启动SQL Server 2000 建立数据库 factory 创建表 employee,Java DataBase Connectivity由JAVA类和接口组成,是JAVA核心类库中的一部分,提供访问数据库的API。 JDBC支持基本SQL语句,提供多样化的数据库连接方式,为各种不同的数据库提供统一的操作界面。,JDBC,JDBC的使用方法,JDBC能够完成三件事 与一个数据库连接 向已连接的数据库发送SQL语句 处理SQL语句返回的结果 JDBC在设计上和ODBC很类似。JDBC与数据库建立连接的一种常见方式是建立一个JDBC
2、-ODBC桥接器。,ODBC数据访问接口,开放式数据库互连ODBC(Open DataBase Connectivity)是微软公司开发的一套开发数据库系统应用程序接口规范,它支持应用程序以标准的ODBC函数和SQL语句操作各种不同的数据库。提供了数据库访问的通用平台。,连接DB的常用方式,建立JDBC-ODBC桥接器 机制:应用程序只需建立JDBC和ODBC之间的连接,与数据库的连接由ODBC去完成。 加载纯Java数据库驱动程序 用Java 语言编写的数据库驱动程序。JDBC提供的API通过将这个驱动程序转换为DBMS所使用的专用协议来实现 与特定的DBMS交互信息。,使用JDBC的应用程
3、序无论采用何种方式连接DB, 都不会影响DB的逻辑代码,JDBC-ODBC桥接器,JDBC-ODBC桥接器访问数据库的3个步骤: 创建ODBC数据源 建立 JDBC-ODBC桥接器 和ODBC数据源建立连接,在SQL Server 2000中创建ODBC数据源,2. 建立JDBC-ODBC桥接器,现在可以这样的直观理解:我们有了一个数据源,这个数据源就是一个数据库。为了要连接到这个数据库,需要建立一个JDBC-ODBC桥接器,即加载桥接器驱动程序。 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); 这里,Class是包java.lang中的一个类,该类通
4、过调用它的静态方法forName就可以建立JDBC-ODBC桥接器。建立桥接器时可能发生异常,所以建立桥接器的标准是:,建立桥接器的代码,try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException e) System.out.println(e); ,3.和ODBC数据源指定的数据库建立连接,要查询数据库中的记录,必须和数据库建立连接,由于使用的是JDBC-ODBC方式访问数据库,那么就要与数据源建立连接。 (1)连接到数据库 首先使用包java.sql中的Connection类声明一个对象,然后再
5、使用类DriverManager调用它的静态方法getConnection创建这个连接对象: Connection con = DriverManager.getConnection(jdbc:odbc:数据源名字,login name, password );,假如没有为数据源设置login name 和password,那么连接形式是: Connection con = DriverManager. getConnection(jdbc:odbc:数据源名字, , ); 例如:数据库pubs(其数据源是sun)建立连接,格式如下: try Connection con = DriverMa
6、nager. getConnection(jdbc:odbc:sun, sa, ); catch(SQLException e) /建立了到数据库pubs的连接。,和ODBC数据源指定的数据库建立连接,(2)向数据库发送SQL语句 首先使用Statement声明一个SQL语句对象,然后通过刚才创建的连接数据库的对象con调用方法createStatement()创建这个SQL语句对象。 try Statement sql=con.createStatement(); catch(SQLException e ) (3)处理查询结果 有了SQL语句对象后,这个对象就可以调用相应的方法实现对数据库
7、中表的查询和修改。并将查询结果存放在一个ResultSet类声明的对象中,即:SQL语句对数据库的查询操作将返回一个ResultSet对象: ResultSet rs=sql.executeQuery(SELECT * FROM 成绩表);,查询操作,对一个数据库中表进行查询操作的具体步骤: 向数据库发送SQL查询语句 try Statement sql=con.createStatement(); catch(SQLException e ) 2. 处理查询结果(ResultSet类),ResultSet对象是以统一形式的列组织的数据行组成。ResultSet对象一次只能看到一个数据行,使用
8、next()方法走到下一数据行,获得一行数据后,ResultSet对象可以使用getxxxx方法获得字段值,将位置索引(第一列使用1,第二列使用2等等)或字段名传递给getxxxx方法的参数即可。表6.1给了出了ResultSet对象的若干方法。,ResultSet对象的若干方法,P135 说明,实例,图7.1 顺序查询,查询数据库pubs(数据源sun)中students表里的包含全部字段的记录。, ); out.print(); out.print(+学号); out.print(+姓名);,out.print(+数学成绩); out.print(+英语成绩); out.print(+物理
9、成绩); out.print(); while(rs.next() out.print(); out.print(+rs.getString(1)+); out.print(+rs.getString(2)+); out.print(+rs.getInt(数学成绩)+); out.print(+rs.getInt(英语成绩)+); out.print(+rs.getInt(物理成绩)+); out.print() ; out.print(); con.close(); catch(SQLException e1) % ,练习,查询“英语成绩”字段值大于80的记录,但只显示“姓名”字段(第2个字
10、段)和“英语成绩”字段,小结,JDBC的用途: 简单地说,JDBC可做三件事: 1.与一个数据库建立连接 2.向已连接的数据库发送 sql 语句 3.处理SQL语句返回的结果集。,下列代码段给出了以上三步的基本示例: 1.与一个数据库建立连接 Connection con = DriverManager.getconnection (jdbc:odbc:wombat , login , password); 2.向已连接的数据库发送 sql 语句 Statement stmt = con.createstatement(); ResultSet rs = stmt.executeQuery(
11、“select a,b,c from table1”); 3.处理SQL语句返回的结果集 while (rs.next() System.out.print(“Ok!”);,设置数据源,假设要访问某个Access数据库,该库有一个表student,表student,为连接该Access数据库,需设置一个数据源,在控制面板的管理工具中选择ODBC数据源。,选择配置ODBC数据源,双击ODBC数据源图标,选择“系统DSN”,出现下图所示界面,图中显示了用户已有的数据源名称。,用户已有的数据源,在“系统DSN”分页下,单击“添加”按钮,增加新的数据源。,为新增的数据源选择驱动程序,设置在ODBC中数据源的名字和数据库的路径,首先设置在ODBC中数据源的名字,然后点击选择按钮,进入右图界面设置数据库的路径,