Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第11章_JDBC数据库操作

上传人:E**** 文档编号:89370554 上传时间:2019-05-24 格式:PPT 页数:29 大小:812.50KB
返回 下载 相关 举报
Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第11章_JDBC数据库操作_第1页
第1页 / 共29页
Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第11章_JDBC数据库操作_第2页
第2页 / 共29页
Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第11章_JDBC数据库操作_第3页
第3页 / 共29页
Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第11章_JDBC数据库操作_第4页
第4页 / 共29页
Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第11章_JDBC数据库操作_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第11章_JDBC数据库操作》由会员分享,可在线阅读,更多相关《Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第11章_JDBC数据库操作(29页珍藏版)》请在金锄头文库上搜索。

1、2019/5/24,1,注意:开始用功了!,2019/5/24,2,Java程序设计实用教程 第11章,配合例子源代码一起使用,Power point 制作:耿祥义 张跃平,JDBC数据库操作,2019/5/24,3,导 读,2019/5/24,4,11.1 Microsoft Access 数据库管理系统 11.1.1 建立数据库,建立一个名字为shop的数据库。操作步骤如下: 单击“开始”“所有程序”“Microsoft Access”,在新建数据库界面选择“空Access数据库”,然后命名、保存新建的数据库,在这里我们命名的数据库是shop,保存在C:ch11中。,2019/5/24,5

2、,11.1.2 创建表,在shop数据库中创建名字为goods的表。在shop管理的“表”的界面上选择“使用设计器创建表”,然后单击界面上的“设计”菜单,将出现相应的建表界面,我们建立的表是goods,该表的字段(属性)为: number(文本) name(文本) madeTime(日期) price(数字,双精度) 在shop管理的“表”的界面上,用鼠标双击已创建的表可以为该表添加记录。,2019/5/24,6,11.2 JDBC,JDBC(Java DataBase Connection)是Java数据库连接API。简单地说,JDBC能完成3件事: 与一个数据库建立连接。 向数据库发送SQ

3、L语句。 处理SQL语句返回的结果。,2019/5/24,7,11.3 连接数据库 11.3.1 连接方式的选择,和数据库建立连接的常用两种方式是:建立JDBCODBC桥接器和加载纯Java数据库驱动程序。使用JDBCODBC桥接器方式的机制是,应用程序只需建立JDBC和ODBC之间的连接,即所谓的建立JDBCODBC桥接器,而和数据库的连接由ODBC去完成。,使用JDBCODBC桥接器连接数据库的3个步骤 建立JDBC-ODBC桥接器 创建ODBC数据源 和ODBC数据源建立连接,2019/5/24,8,11.3.2 建立JDBC-ODBC桥接器,JDBC使用java.lang包中的Clas

4、s类建立JDBC-ODBC桥接器。建立桥接器时可能发生异常,必须捕获这个异常,建立桥接器的代码是: try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); catch(ClassNotFoundException e) System.out.println(e); ,2019/5/24,9,11.3.3 ODBC数据源,1创建、修改或删除数据源 选择“控制面板”“管理工具”“ODBC数据源”(某些window/xp系统,需选择“控制面板”“性能和维护”“管理工具”“ODBC数据源”)。 双击ODBC数据源图标,出现的界面显示了用户已有的数据源的名称

5、。选择“系统DSN”或“用户DSN”,单击“添加”按钮,可以创建新的数据源;单击“配置”按钮,可以重新配置已有的数据源;单击“删除”按钮,可以删除已有的数据源。 2为数据源选择驱动程序 因为要访问Access数据库,选择Microsoft Acess Driver(*.mdb)。 3数据源名称及对应数据库的所在位置 在名称栏里为数据源起一个自己喜欢的名字,这里我们起的名字是myData。这个数据源就是指某个数据库。在“数据库选择”栏中选择一个数据库,这里我们选择的是C:ch11下的shop.mdb数据库。,2019/5/24,10,11.3.4 建立连接,编写连接数据库代码不会出现数据库的名称

6、,只能出现数据源的名字。 首先使用java.sql包中的Connection类声明一个对象,然后再使用类DriverManager调用它的静态方法getConnection创建这个连接对象,建立连接时应捕获SQLException异常 : try Connection con= DriverManager.getConnection( “jdbc:odbc:数据源名字“ , “login name“ , “ password “); catch(SQLException e) 例11-1 Example11_1.java,2019/5/24,11,11.4 查询操作,对一个数据库中表进行查询操

7、作的具体步骤如下。 1向数据库发送SQL查询语句 try Statement sql=con.createStatement(); catch(SQLException e ) 2处理查询结果 ResultSet rs=sql.executeQuery(“SELECT * FROM employee“); 表11.1给了出了ResultSet对象的若干方法。 注:无论字段是何种属性,总可以使用 getString(int columnIndex)或getString(String columnName)方法返回字段值的串表示。 注:当使用ResultSet的getXXX方法查看一行记录时,不可

8、以颠倒字段的顺序,例如,不可以 rs.getDouble(4); rs.getDate(3),2019/5/24,12,表11.1 ResultSet对象的若干方法,2019/5/24,13,11.4.1 顺序查询,通过使用JDBC提供的API,可以在查询之前知道表中的字段的个数和名字,步骤如下: 1.连接对象con调用getMetaData()方法可以返回一个DatabaseMetaData对象,例如: DatabaseMetaData metadata=con.getMetaData(); 2. Metadata对象再调用getColumns可以将表的字段信息以行列的形式存储在一个Resu

9、ltSet对象中,例如: ResultSet tableMessage= metadata.getColumns(null,null,“employee“,null); 3. tableMessage对象调用next方法使游标向下移动一行(游标的初始位置在第1行之前),然后tableMessage调用getXXX方法可以查看该行中列的信息,其中最重要的信息是第4列,该列上的信息为字段的名字。 表11.2 tableMessage对象的格式 例11-2 Example11_2.java , Query.java,2019/5/24,14,表11.2 tableMessage对象的格式,2019/

10、5/24,15,例11-2,例11-2 Example11_2.java , Query.java,2019/5/24,16,11.4.2 控制游标,需要在结果集中前后移动、显示结果集指定的一条记录或随机显示若干条记录等。这时,必须要返回一个可滚动的结果集。为了得到一个可滚动的结果集,需使用下述方法先获得一个Statement对象: Statement stmt=con.createStatement(int type ,int concurrency); 然后,根据参数的type、concurrency的取值情况(p211),stmt返回相应类型的结果集: ResultSet re=stmt

11、.executeQuery(SQL语句); 滚动查询经常用到ResultSet的下述方法: public boolean previous():将游标向上移动 public void beforeFirst():将游标移动到结果集的初始位置。 public void afterLast():将游标移到结果集最后一行之后。 public void first():将游标移到结果集的第一行。 public void last():将游标移到结果集的最后一行。 public boolean isAfterLast():判断游标是否在最后一行之后。 public boolean isBeforeFir

12、st():判断游标是否在第一行之前 public boolean ifFirst():判断游标是否指向结果集的第一行。 public boolean isLast():判断游标是否指向结果集的最后一行。 public int getRow():得到当前游标所指行的行号.0 public boolean absolute(int row):将游标移到参数row指定的行号。,2019/5/24,17,例11-3,Example11_3.java,2019/5/24,18,11.4.3 条件查询,在下面的例11-4中使用了例11-2中的Query类,分别按商品号和价格查询记录。主类将查询条件传递经Q

13、uery类的实例。程序运行效果如图11.13所示。 例11-4 Example11_4.java , Query.java,2019/5/24,19,11.4.4 排序查询,可以在SQL语句中使用ORDER BY子语句,对记录排序 。 按薪水排序查询的SQL语句: SELECT * FROM goods ORDER BY price 例11-5 Example11_5.java , Query.java,2019/5/24,20,11.4.5 模糊查询,可以用SQL语句操作符LIKE进行模式般配,使用“%”代替0个或多个字符,用一个下划线“_”代替1个字符。下述语句查询商品名称中含有“T”或“

14、宝”的记录: rs=sql.executeQuery(“SELECT * FROM goods WHERE name LIKE T宝% ”); 例11-6 Example11_6.java , Query.java,2019/5/24,21,11.5 更新、添加与删除操作,Statement对象调用方法: public int executeUpdate(String sqlStatement); 通过参数sqlStatement指定的方式实现对数据库表中记录的更新、添加和删除操作。 更新、添加和删除记录的SQL语法分别是: UPDATE SET = 新值 WHERE 例:UPDATE goo

15、ds SET price =3009 WHERE name=海尔电视机。 INSERT INTO 表(字段列表) VALUES (对应的具体的记录)或INSERT INTO 表(VALUES (对应的具体的记录) 例:INSERT INTO goods(number,name,madeTime,price) VALUES (A009,手机, 2010-12-20,3976) DELETE FROM WHERE 例子 DELETE FROM goods WHERE number = B002 例11-7 Example11_7.java , ModifyTable.java,2019/5/24,

16、22,11.6 使用预处理语句,Java提供了更高效率的数据库操作机制,就是PreparedStatement对象,该对象被习惯地称作预处理语句对象。,2019/5/24,23,11.6.1 预处理语句优点,预处理不仅减轻了数据库的负担,而且也提高了访问数据库的速度。 对于JDBC,如果使用Connection和某个数据库建立了连接对象con,那么con就可以调用prepareStatement(String sql)方法对参数sql指定的SQL语句进行预编译处理,生成该数据库地层的内部命令,并将该命令封装在PreparedStatement对象中,那么该对象调用下列方法都可以使得该地层内部命令被数据库执行 ResultSet executeQuery() ; boolean execute(); int executeUpdate(); 只要编译好了Pre

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号