201711671118《Java程序设计》第十一章总结

本文详细介绍如何使用JDBC与MySQL数据库进行交互,包括解决汉字问题、查询操作、预处理语句以及事务处理等核心内容。通过具体示例,阐述了如何创建SQL语句对象、执行查询和修改操作,以及如何利用PreparedStatement提高数据库访问效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第11章 JDBC与MYSQL

11.4 JDBC

使用JDBC的应用程序一旦和数据库建立连接,就可以使用JDBC提供API操作数据库。

注意汉字问题

如果数据库的表中记录有汉字,那么在建立连接时额外多传递一个参数characterEncoding,并取值gb2312或utf-8

11.6查询操作

使用Statement声明一个SQL语句对象,然后让已创建的连接对象con调用方法createStatement()创建这个SQL语句对象。

try{  Statement sql=con.createStatement();

}

catch(SQLException e ){}

这个对象就可以调用相应的方法实现对数据库中表的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中。ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,获得一行数据后,ResultSet对象可以使用getXxx方法获得字段值(列值),将位置索引(第一列使用1,第二列使用2等)或列名传递给getX方法的参数即可。

无论字段是何种属性,总可以使用getString(int columnIndex)或getString(String columnName)方法返回字段值的串表示

ResultSet对象和数据库连接对象(Connection对象)实现了紧密的绑定,一旦连接对象被关闭,ResultSet对象中的数据立刻消失。这就意味着,应用程序在使用ResultSet对象中的数据时,就必须始终保持和数据库的连接,直到应用程序将ResultSet对象中的数据查看完毕

如果在代码

 ResultSet rs = sql.executeQuery("SELECT * FROM students");

之后立刻关闭连接con.close();程序将无法获取rs中的数据

11.6.1 顺序查询

所谓顺序查询,是指ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,next()方法最初的查询位置,即游标位置,位于第一行的前面。next()方法向下(向后、数据行号大的方向)移动游标,移动成功返回true,否则返回false

11.8  使用预处理语句

如果应用程序能针对连接的数据库,事先就将SQL语句解释为数据库底层的内部命令,然后直接让数据库去执行这个命令,显然不仅减轻了数据库的负担,而且也提高了访问数据库的速度。

Connection和某个数据库建立了连接对象con,那么con就可以调用prepareStatement(String sql)方法对参数sql指定的SQL语句进行预编译处理,生成该数据库底层的内部命令,并将该命令封装在PreparedStatement对象中,那么该对象调用下列方法都可以使得该底层内部命令被数据库执行。

11.10  事务

11.10.1  事务及处理

事务由一组SQL语句组成,所谓事务处理是指:应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行。

11.10.2  JDBC事务处理步骤

1.用setAutoCommit(booean b)方法关闭自动提交模式

2.用commit()方法处理事务

3.用rollback()方法处理事务失败

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值