JDBC数据库操作.ppt
《JDBC数据库操作.ppt》由会员分享,可在线阅读,更多相关《JDBC数据库操作.ppt(45页珍藏版)》请在三一办公上搜索。
1、第11章 JDBC数据库操作,11.1 Microsoft Access 数据库管理系统,11.1.1 建立数据库 单击“开始”“所有程序”“Microsoft Office”“Microsoft Access”,在新建数据库界面选择“空Access数据库”,然后命名、保存新建的数据库,在这里我们命名的数据库是shop,保存在C:ch11中,图11.1 建立新Access的数据库,图11.2 保存Access的数据库,11.1.2 创建表,创建好数据库后,就可以在该数据库下建立若干个表。我们准备在shop数据库中创建名字为goods的表。在shop管理的“表”的界面上选择“使用设计器创建表”,
2、然后单击界面上的“设计”菜单,将出现相应的建表界面,我们建立的表是goods,该表的字段(属性)为:number(文本)name(文本)madeTime(日期)price(数字,双精度)。其中,“number”字段为主键(在该字段上单击鼠标右建来设置字段是否是主建)在shop管理的“表”的界面上,用鼠标双击已创建的goods表可以为该表添加记录,图11.3 goods表及字段属性,图11.4 向goods表添加记录,11.2 JDBC,为了使Java编写的程序不依赖于具体的数据库,Java提供了专门用于操作数据库的API,即JDBC,我们经常使用JDBC进行如下的操作:与一个数据库建立连接,向
3、已连接的数据库发送SQL语句,处理SQL语句返回的结果。,11.3 连接数据库,11.3.1 连接方式的选择 和数据库建立连接的常用两种方式是:建立JDBCODBC桥接器和加载纯Java数据库驱动程序 为了便于教学,本章使用JDBCODBC桥接器方式和数据库建立连接,JDBCODBC桥接器的优点是:ODBC(Open DataBase Connectivity)是Microsoft引进的数据库连接技术,提供了数据库访问的通用平台,而且ODBC驱动程序被广泛的使用,建立这种桥接器后,使得JDBC有能力访问几乎所有类型的数据库。缺点是:使得应用程序依赖于ODBC,移植性较差,也就是说,应用程序所驻
4、留的计算机必须提供ODBC(使用加载纯Java数据库驱动程序连接数据库的优点是不依赖平台)。,11.3.2 建立JDBC-ODBC桥接器,JDBC使用java.lang包中的Class类建立JDBC-ODBC桥接器。Class类通过调用它的静态方法forName加载包中的JdbcOdbcDriver类建立JDBC-ODBC桥接器。建立桥接器时可能发生异常,必须捕获这个异常,建立桥接器的代码是:try);catch(ClassNotFoundException e)System.out.println(e);,11.3.3 ODBC数据源,1创建、修改或删除数据源选择“控制面板”“管理工具”“O
5、DBC数据源”(某些window/xp系统,需选择“控制面板”“性能和维护”“管理工具”“ODBC数据源”),图11.7 添加、修改或删除数据源,2为数据源选择驱动程序 在图11.7所示的界面上选择单击“添加”按钮,出现为新增的数据源选择驱动程序界面,图11.8 为新增的数据源选择驱动程序,3数据源名称及对应数据库的所在位置 在图11.8界面单击完成按钮将出现设置数据源具体项目的对话框,图11.9 设置数据源的名字和对应的数据库,11.3.4 建立连接,编写连接数据库代码不会出现数据库的名称,只能出现数据源的名字。首先使用java.sql包中的Connection类声明一个对象,然后再使用类D
6、riverManager调用它的静态方法getConnection创建这个连接对象:Connection con=DriverManager.getConnection(jdbc:odbc:数据源名字,login name,password);,假如没有为数据源设置login name 和password,那么连接形式是:Connection con=DriverManager.getConnection(jdbc:odbc:数据源名字,);为了能和数据源myData交换数据,建立连接时应捕获SQLException异常:try Connection con=DriverManager.get
7、Connection(jdbc:odbc:myData,);catch(SQLException e),11.4 查询操作,1向数据库发送SQL查询语句首先使用Statement声明一个SQL语句对象,然后让已创建的连接对象con调用方法createStatment()创建这个SQL语句对象,代码如下:try Statement sql=con.createStatement();catch(SQLException e),2处理查询结果有了SQL语句对象后,这个对象就可以调用相应的方法实现对数据库中表的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中。也就是说SQL查询语句
8、对数据库的查询操作将返回一个ResultSet对象,ResultSet对象是以统一形式的列组织的数据行组成。,ResultSet对象一次只能看到一个数据行,使用next()方法走到下一数据行,获得一行数据后,ResultSet对象可以使用getXxx方法获得字段值,将位置索引(第一列使用1,第二列使用2等等)或列名传递给getXxx方法的参数即可,11.4.1 顺序查询,怎样知道一个表中有哪些字段呢?通过使用JDBC提供的API,可以在查询之前知道表中的字段的个数和名字,这有助于编写可复用的查询代码 当创建好连接对象con之后,那么该连接对象调用getMetaData()方法可以返回一个Dat
9、abaseMetaData对象,例如:DatabaseMetaData metadata=con.getMetaData();Metadata对象再调用getColumns可以将表的字段信息以行列的形式存储在一个ResultSet对象中,例如:ResultSet tableMessage=metadata.getColumns(null,null,goods,null);如果goods表有n个字段,tableMessage就刚好有n行、每行4列。每行分别含有和相应字段有关的信息,信息的次序为:“数据库名”、“数据库扩展名”、“表名”,“字段名”。tableMessage对象调用next方法使游
10、标向下移动一行(游标的初始位置在第1行之前),然后tableMessage调用getXXX方法可以查看该行中列的信息,11.4.2 控制游标,有时候需要在结果集中前后移动、显示结果集中某条记录或随机显示若干条记录等。这时,必须要返回一个可滚动的结果集。为了得到一个可滚动的结果集,需使用下述方法获得一个Statement对象:Statement stmt=con.createStatement(int type,int concurrency);,然后,根据参数的type、concurrency的取值情况,stmt返回相应类型的结果集:ResultSet re=stmt.executeQuery
11、(SQL语句);,type的取值决定滚动方式,取值可以是:ResultSet.TYPE_FORWORD_ONLY:结果集的游标只能向下滚动。ResultSet.TYPE_SCROLL_INSENSITIVE:结果集的游标可以上下移动,当数据库变化时,当前结果集不变。ResultSet.TYPE_SCROLL_SENSITIVE:返回可滚动的结果集,当数据库变化时,当前结果集同步改变。,Concurrency 取值决定是否可以用结果集更新数据库,Concurrency取值:ResultSet.CONCUR_READ_ONLY:不能用结果集更新数据库中的表。ResultSet.CONCUR_UPD
12、ATABLE:能用结果集更新数据库中的表。,滚动查询经常用到ResultSet的下述方法:public boolean previous():将游标向上移动,该方法返回boolean型数据,当移到结果集第一行之前时返回false.public void beforeFirst:将游标移动到结果集的初始位置,即在第一行之前。public void afterLast():将游标移到结果集最后一行之后。public void first():将游标移到结果集的第一行。public void last():将游标移到结果集的最后一行。public boolean isAfterLast():判断游标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JDBC 数据库 操作

链接地址:https://www.31ppt.com/p-6510351.html