收藏 分享(赏)

8 Java数据库连接.ppt

上传人:11xg27ws 文档编号:7354697 上传时间:2019-05-15 格式:PPT 页数:19 大小:155KB
下载 相关 举报
8 Java数据库连接.ppt_第1页
第1页 / 共19页
8 Java数据库连接.ppt_第2页
第2页 / 共19页
8 Java数据库连接.ppt_第3页
第3页 / 共19页
8 Java数据库连接.ppt_第4页
第4页 / 共19页
8 Java数据库连接.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、第8章 Java数据库连接(JDBC),8.1 创建数据源 8.2 JDBC-ODBC桥接器 8.3 顺序查询 8.4 可滚动结果集 8.5 排序查询 8.6 模糊查询 8.7 更新、添加、删除记录 8.8 预处理语句,JDBC,JDBC(Java DataBase Connectivity, Java数据库连接)封装了与各种数据库服务器通信的细节,Java程序通过JDBC API来访问数据库。简单地说,JDBC能完成3件事: (1) 与一个数据库建立连接。 (2) 执行SQL语句。 (3) 处理返回的数据集。,8.1 创建数据源,为了同数据库建立连接,首先要创建一个ODBC数据源。打开Win

2、dows中的控制面,对于WindowXP,选择“性能和维护”“管理工具”“数据源(ODBC)” ;对于Window2000,选择“管理工具”“数据源(ODBC)”;对于Window9X,选择 “数据源(ODBC)”。也可以使用“资源管理器”双击c:windowssystem32下的可执行文件“odbcad32”打开“数据源(ODBC)”。,8.2 JDBC-ODBC桥接器,为了要连接到数据库,我们首先要建立一个JDBC-ODBC桥接器: tryClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); catch(ClassNotFoundException

3、e) 连接到数据库 tryConnection con=DriverManager.getConnection(“jdbc:odbc:数据源名字“,“login name“,“ password “); catch(SQLException e) ,8.2 JDBC-ODBC桥接器,执行SQL语句并得到返回的数据集Statement sql = con.createStatement();ResultSet rs = sql.executeQuery (“SQL语句“);处理返回结果ResultSet(结果集)对象实际上是一个数据集合,Result对象一次只能看到一个数据行,使用next()方

4、法走到下一数据行,获取一行数据后,可以使用getXxx()方法获取字段值。getXxx()方法有两种形式:getXxx(索引号)和getXxx(“字段名“)。,8.3 顺序查询,使用结果集Result的next()方法,可以顺序的查询。一个结果集将游标最初定位在第一行的前面,第一次调用next()方法使游标移动到第一行。next()方法返回一个boolean型数据,当游标移动到最后一行之后返回false。,例子1,查询出数据库student.mdb中表score的所有记录。代码见Example8_1.java。,例子2,查询出数据库student.mdb中表score的“english”字段值

5、大于80的记录,只显式“姓名”字段和“英语”字段。代码见Example8_2.java。,8.4 可滚动结果集,为了得到一个可滚动的结果集,必须使用下述方法先获得一个Statement对象: Statement stmt=con.createStatement (int type ,int concurrency);然后,根据参数的type、concurrency的取值情况,stmt返回相应类型的结果集:ResultSet rs=stmt.executeQuery(SQL语句);,参数type决定结果集的滚动方式。 ResultSet.TYPE_FORWORD_ONLY 结果集的游标只能向下滚

6、动。ResultSet.TYPE_SCROLL_INSENSITIVE 结果集的游标可以上下移动,当数据库变化时,当前结果集不变。ResultSet.TYPE_SCROLL_SENSITIVE 返回可滚动的结果集,当数据库变化时,当前结果集同步改变。,8.4 可滚动结果集,参数concurrency决定是否可以用结果集更新数据库。ResultSet.CONCUR_READ_ONLY 不能用结果集更新数据库中的表。ResultSet.CONCUR_UPDATETABLE 能用结果集更新数据库中的表。,8.4 可滚动结果集,ResultSet类中经常用于滚动查询的方法 (1) boolean pr

7、evious() (2) void beforFirst() (3) void afterLast() (4) void first() (5) void last() (6) boolean isAfterLast(),8.4 可滚动结果集,(7) boolean isBeforFirst() (8) boolean isFirst() (9) boolean isLast() (10) int getRow() (11) boolean absolute(int row),例子3,对student.mdb数据库的表score进行如下操作:首先将游标移动到最后一行,然后在获取行号,这样可以获

8、得结果集中的记录的数目,然后倒序输出结果集中的记录,最后单独输出第5条记录。代码见Example8_3.java。,8.5 排序查询,可以在SQL语句中使用ORDER BY子语句,对记录排序 .select * from score order by math+english,8.6 模糊查询,可以用SQL语句操作符LIKE进行模式般配,使用“%”代替0个或多个字符,用一个下划线“_”代替1个字符。比如,下述语句查询姓氏是“王”的记录: rs = sql.executeQuery(“SELECT * FROM students WHERE 姓名 LIKE 王% “);,8.7 更新、添加、删除

9、记录,public int executeUpdate(String sqlStatement)通过参数sqlStatement指定的方式实现对数据库表中记录的字段值的更新.,例子4,对student.mdb数据库的表score进行添加、更新和删除操作。代码见Example8_4.java。,8.8 预处理语句,对于JDBC,如果使用Connection和某个数据库建立了连接对象con,那么 con就可以调用 prepareStatement(String sql) 方法对SQL语句进行预编译处理,生成该数据库底层的内部命令,并将该命令封装在PreparedStatement对象中,那么该对象调用相应的方法都可以使得该底层的内部命令被数据库执行preparedStatement sql = con.prepareStatement(“select * from chengjibiao where name = ?“) ;sql.setXxx(int parameterIndex, Xxx x);,例子5,利用预处理语句对student.mdb数据库的表score进行查询操作。代码见Example8_5.java。,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报