1、1Java数据库连接数据库连接2Java数据库连接数据库连接 数据库是开发信息系统不可缺少的一部分,数据库是开发信息系统不可缺少的一部分,Java语言为建立数据库服务器前台应用程序的开发语言为建立数据库服务器前台应用程序的开发人员提供了有利条件。我们将学习人员提供了有利条件。我们将学习JDBC技术,并结技术,并结合第五章合第五章Java图形界面知识进行数据库开发实战。图形界面知识进行数据库开发实战。p 知识点知识点 JDBC 简介简介 掌握掌握JDBC的使用方法的使用方法 结合结合Java图形界面知识进行数据库开发图形界面知识进行数据库开发p 本讲重点:本讲重点:JDBC的使用步骤和使用方法的
2、使用步骤和使用方法 本讲概要本讲概要 JDBC 简介简介o 数据库的应用目前已经非常普遍,在应用程序的开发过数据库的应用目前已经非常普遍,在应用程序的开发过程中,经常会涉及到访问数据库。程中,经常会涉及到访问数据库。Java语言为访问数语言为访问数据库提供了方便的技术。据库提供了方便的技术。o Java使用使用JDBC(Java Database Connectivity)技术进行数据库的访问,如图技术进行数据库的访问,如图9.1.1所示。使用所示。使用JDBC技术进行数据库访问时,技术进行数据库访问时,Java应用程序通过应用程序通过JDBC API和和JDBC驱动程序管理器之间进行通信。驱
3、动程序管理器之间进行通信。JDBC 简介简介o 例如例如Java应用程序可以通过应用程序可以通过JDBC API向向JDBC驱动驱动程序管理器发送一个程序管理器发送一个SQL查询语句。查询语句。JDBC驱动程序驱动程序管理器又可以以两种方式和最终的数据库进行通信:一管理器又可以以两种方式和最终的数据库进行通信:一是使用是使用JDBC/ODBC桥接驱动程序的间接方式;另一桥接驱动程序的间接方式;另一是使用是使用JDBC驱动程序的直接方式。驱动程序的直接方式。图9.1.1 JDBC示意图 JDBC 简介简介11.1.1 建立数据库连接建立数据库连接 o 使用JDBC/ODBC桥接驱动程序 o 使用
4、JDBC驱动程序 o 要想对数据库进行访问,必须先和数据库建立连接。建立要想对数据库进行访问,必须先和数据库建立连接。建立一个数据库连接总是需要两个步骤:一个数据库连接总是需要两个步骤:l载入驱动程序载入驱动程序 Class.forName(驱动程序名称驱动程序名称);2建立连接建立连接 Connection con=DriverManager.getConnection(url,“用户名称用户名称,用户密码用户密码);11.1.1 建立数据库连接建立数据库连接 o JDBC驱动程序管理器可以以两种方式进行数据库访问驱动程序管理器可以以两种方式进行数据库访问:一是使用:一是使用JDBC/ODB
5、C桥接驱动程序;另一种方式桥接驱动程序;另一种方式是使用是使用JDBC驱动程序直接和数据库连接。下面将使用驱动程序直接和数据库连接。下面将使用两个实例来分别讲解如何使用这两种方式进行数据库访两个实例来分别讲解如何使用这两种方式进行数据库访问。问。11.1.1 建立数据库连接建立数据库连接 1 使用使用JDBC/ODBC桥接驱动程序桥接驱动程序 使 用 M S A c c e s s 建 立 一 个 名 为bookTest.mdb的数据库,该数据库中有一张表bookInfo,该表的的字段名称、数据类型和字段含义参见下图。使用ODBC管理工具为bookTest.mdb的建立一个名为Book的数据源
6、。设定好访问该数据源的用户名称和密码(本例中分别设定为admin 和 xyz)。载入驱动程序载入驱动程序 o 使用JDBC/ODBC桥接驱动程序,该驱动程序的名称为“sun.jdbc.odbc.JdbcOdbcDriver”,使用下面的语句将载入JDBC/ODBC桥接驱动程序:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);建立连接建立连接 o 使用下面的语句建立一个和数据库的连接:Connection con=DriverManager.getConnection(jdbc:odbc:Book,);例例1 使用使用JDBC/ODBC连接数据源连接数据源
7、Bookimport java.sql.*;public class JdbcOdbc public static void main(String args)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection con=DriverManager.getConnection(jdbc:odbc:Book,admin,abc);Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(select*from bookInfo);while(rs.next(
8、)System.out.println(rs.getString(1)+rs.getString(2)+rs.getFloat(3)+rs.getString(4);rs.close();stmt.close();catch(Exception e)e.printStackTrace();数据库:bookTest.mdbBookODBCClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);con=DriverManager.getConnection(jdbc:odbc:Book,);Statement stmt=con.createStatement();s
9、tmtResultSet rs=stmt.executeQuery(select*from bookInfo);rs形象讲解形象讲解JDBC/ODBC连接数据源连接数据源Book2 使用使用JDBC驱动程序驱动程序o 使用JDBC驱动程序直接和运行在MS SQLSERVER 2000服务器上的数据库建立连接o 这里使用一个这里使用一个MS SQLSERVER 2000上的上的数据库作为例子。先在数据库作为例子。先在MS SQLSERVER 2000上建立一个名为上建立一个名为BookTest的数据库的数据库,并且在该数据库中创建一个名为,并且在该数据库中创建一个名为bookInfo的表。表的表
10、。表bookInfo的字段名、的字段名、数据类型及字段含义见数据类型及字段含义见幻灯片幻灯片7。使用企业管。使用企业管理器为该数据库创建一个合法的用户,用户理器为该数据库创建一个合法的用户,用户名为名为admin,密码为密码为xyz。2 使用使用JDBC驱动程序驱动程序o 下载并安装下载并安装MS SQLSERVER 2000的的JDBC驱动程序。在安装目录的驱动程序。在安装目录的lib子目录中子目录中,会发现有三个,会发现有三个.jar文件文件(msbase.jar、mssqlserver.jar 及及msutil.jar),就是,就是MS SQLSERVER 2000的的JDBC驱动程序驱
11、动程序。注意:要使得。注意:要使得Java应用程序能够访问应用程序能够访问MS SQLSERVER 2000上的数据库,必须使得上的数据库,必须使得在类路径中能够找到这三个在类路径中能够找到这三个.jar文件。您可文件。您可以在环境变量中设置好以在环境变量中设置好CLASSPATH;或是;或是更简单一点,直接将这三个更简单一点,直接将这三个.jar文件解压缩文件解压缩到应用程序所在的目录。到应用程序所在的目录。2 使用使用JDBC驱动程序驱动程序载入驱动程序载入驱动程序 MS SQLSERVER 2000 JDBC驱动程序的名称为(参看该驱动程序安装目录下的文档)“com.microsoft.
12、jdbc.sqlserver.SQLServerDriver”。使用下面的语句将载入MS SQLSERVER 2000 JDBC驱动程序:Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);建立连接建立连接 使用下面的语句建立一个和数据库的连接:使用下面的语句建立一个和数据库的连接:String url =j d b c:m i c r o s o f t:s q l s e r v e r:/127.0.0.1:1433;Connection con=DriverManager.getConnection(url,admin
13、,xyz);con.setCatalog(bookTest);例例2 使用使用JDBC连接数据库连接数据库 BookTest import java.sql.*;public class Jdbc public static void main(String args)try Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);String url=jdbc:microsoft:sqlserver:/127.0.0.1:1433;Connection con=DriverManager.getConnection(url,ad
14、min,xyz);con.setCatalog(“BookTest);Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(select*from bookInfo);while(rs.next()System.out.println(rs.getString(1)+rs.getString(2)+rs.getFloat(3)+rs.getString(4);rs.close();stmt.close();catch(Exception e)e.printStackTrace();o 11.1.2 使用使用JDB
15、C操作数据库操作数据库【例例11-2】查询操作。查询操作。import java.sql.*;/导入包public class JDBCTest_1 public static void main(String args)try/加载数据库驱动 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/得到数据库连接 Connection conn=DriverManager.getConnection(jdbc:odbc:Book);Statement stm=conn.createStatement();/创建会话 ResultSet rs=stm.exec
16、uteQuery(select*from bookInfo);/提交SQL语句 while(rs.next()System.out.println(rs.getString(1)+rs.getString(“2);stm.close();/关闭会话 conn.close();/关闭连接 catch(Exception e)e.printStackTrace();11.1.2 使用使用JDBC操作数据库操作数据库【例例11-3】修改操作。修改操作。import java.sql.*;/导入包public class JDBCTest_2 public static void main(Strin
17、g args)try/加载数据库驱动 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/得到数据库连接 Connection conn=DriverManager.getConnection(jdbc:odbc:Book);Statement stm=conn.createStatement();/创建会话 /提交SQL语句 stm.executeUpdate(“update bookInfo set bookName=VB程序设计教程 where bookID=3);stm.close();/关闭会话 conn.close();/关闭连接 catch(
18、Exception e)e.printStackTrace();【例例11-4】删除操作。删除操作。import java.sql.*;/导入包public class JDBCTest_3public static void main(String args)try/加载数据库驱动 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/得到数据库连接 Connection conn=DriverManager.getConnection(jdbc:odbc:Book);Statement stm=conn.createStatement();/创建会话 /
19、提交sql语句 stm.executeUpdate(delete from bookInfo where bookID=3);stm.close();/关闭会话 conn.close();/关闭连接 catch(Exception e)e.printStackTrace();11.1.2 使用使用JDBC操作数据库操作数据库11.2 JDBC应用开发篇应用开发篇p 用户管理软件制作用户管理软件制作 功能介绍功能介绍 编程思路编程思路 程序代码程序代码 运行结果与总结运行结果与总结 1 功能介绍功能介绍 n 本软件管理用户信息,包括用户的姓名、地址、联系方式等信息,使用java.awt.List
20、显示用户列表,java.awt.TextField显示用户各项信息,使用java.awt.Button进行命令操作。1 功能介绍功能介绍 p 具体功能如下:具体功能如下:选中列表选项的时候,从数据库中读取数 据,在文本字段中显示。单击“添加”按钮时,进行数据库插入操作。单击“修改”按钮时,进行数据库修改操作。单击“删除”按钮时,进行数据库删除操作。1 功能介绍功能介绍 2 编程思路编程思路 n使用使用AWT组件创建用户界面,使用组件创建用户界面,使用JDBC操作数据库操作数据库。1用户界面的创建用户界面的创建 使用使用AWT创建用户界面,其中包括一个创建用户界面,其中包括一个List组件,组件
21、,六个六个Label组件,六个组件,六个TextField组件,三个组件,三个Button组件。组件。包含四个事件操作,三个按钮的点击事件,包含四个事件操作,三个按钮的点击事件,List组组件的件的MouseClicked事件。事件。2数据库操作数据库操作 使用Access数据库,ODBC数据源,数据源名称是user。Access文件的名称是user.mdb,只有一个表,表名是user。表结构如下所示表结构如下所示userIduserId自动编号自动编号用户用户IDIDuserNouserNo文本文本用户编号用户编号userNameuserName文本文本用户姓名用户姓名addressaddr
22、ess文本文本用户地址用户地址phonephone文本文本用户手机号用户手机号emailemail文本文本用户用户emailemailqqqq文本文本用户用户QQQQ号号2 编程思路编程思路 3 程序代码程序代码 n 以下是类的功能介绍(代码见源程序)以下是类的功能介绍(代码见源程序)所有功能均放在所有功能均放在UserManager.java类中类中 完成。完成。n 数据连接和事件处理均放在构造方法里完成。数据连接和事件处理均放在构造方法里完成。4 运行结果与总结运行结果与总结 n 运行结果见程序演示。运行结果见程序演示。n 用户管理系统虽然功能不是非常强大,但相对完整,用户管理系统虽然功能不是非常强大,但相对完整,其中用到了数据库的常用操作,可以使读者在实践中其中用到了数据库的常用操作,可以使读者在实践中对本章中所学的知识能有更加全面的理解,并融会贯对本章中所学的知识能有更加全面的理解,并融会贯通加以运用。通加以运用。