内容: 

ResultSet 结果集,封装了使用JDBC 进行查询;JDBCTools.release(rs,st, conn); 这个模块进行了更新, 同时结束的时候也关闭ResultSet,结束该资源占用.

笔记以及代码

package day_18;

import org.junit.Test;

import java.sql.*;
import java.sql.ResultSet;
import java.sql.Statement; /**ResultSet 结果集,封装了使用JDBC 进行查询
* 1.调用Statement 对象的executequery(sql)可以得到结果集
* 2.ResultSet : 返回的实际上就是一张数据表,
* 有一个指针指向数据表的第一行的前面,可以调用next方法检测下一行是否有效。
* 若有效,该方法返回true,且指针下移,
* 相当于Iterator 对象的hasNext()和next()方法的结合体
* 3.可以通过调用指针定位到一行时,可以通过调用getXXX(index)或getXXX(col'sname)
* 获取每一列的值,例如:getInt(1),getString("name")
* 4.ResultSet 当然需要关闭。
*/
public class testResultSet {
@Test /*目标:获取id=4 的customers 数据表的记录,并打印*/
public void testResultSet01() throws Exception{
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try {
//1.获取Connection
conn=JDBCTools.getConnection();
//2.获取Statement
st=conn.createStatement();
//3.准备SQL
String sql="select * from customers";
//4.执行select查询,得到ResultSet
rs=st.executeQuery(sql);
//5. ResultSet处理全部的表的信息
while(rs.next()){
int id=rs.getInt(1);
String name=rs.getString("name");
String email=rs.getString(3);
Date birth=rs.getDate(4);
System.out.println(id);
System.out.print("\t"+name);
System.out.print("\t"+email);
System.out.print("\t"+birth);
}
//6.关闭数据库资源
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.release(rs,st, conn);
}
}
}

 

可释放ResultSet的JDBCTools 的工具类:
 package day_19;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties; /**操纵JDBC的工具类, 其中封装了一些工具方法
* Version 1 : getConnection() : 通过读取配置文件从数据库服务器获取一个连接;
* Version 2 : release() : 关闭数据库资源的ResultSet/Statement/Statement
*/
public class JDBCTools {
public static void release(ResultSet rs,Statement statement, Connection  conn){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e2) {
e2.printStackTrace();
}
}
}
public static void release(Statement statement,Connection conn){
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e2) {
e2.printStackTrace();
}
}
}
public static Connection getConnection() throws Exception{
//1.准备数据库的连接的四个字符串
String driverClass=null,jdbcUrl=null,user=null,password=null;
//jdbc:mysql:///books ;也可以将localhost省略掉!
//2.读取类路径下的jdbc.properties 文件
InputStream in=
JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties =new Properties();
properties.load(in);
driverClass =properties.getProperty("driver");
jdbcUrl=properties.getProperty("jdbcUrl");
user = properties.getProperty("user");
password = properties.getProperty("password");
//3.加载数据库驱动程序(注册驱动),driver对应的实现类中有注册驱动的静态代码块
// Class.forName(driverClass); //
//或这么手动加载,也可以注册多个数据库连接的代码块
//DriverManager.registerDriver( Class.forName(driverClass).newInstance()); //4.通过DriverManager 的getConnection()方法获取数据库连接。
Connection connection=DriverManager.getConnection(jdbcUrl,user,password);
System.out.print(connection); //com.mysql.jdbc.JDBC4Connection@19e1023e return connection;
} }
 

最新文章

  1. Javascript实现HashTable类
  2. nginx相关的一些记录
  3. js判断checkbox状态,处理表单提交事件
  4. JavaScript简洁继承机制实现(不使用prototype和new)
  5. Cocos2d-x移植到WindowsPhone8移植问题-框架rapidjson移植问题
  6. gitlab一键安装
  7. 笔记--cocos2d-x 3.0 环境搭建
  8. 对背包问题(Knapsack Problem)的算法探究
  9. 201521123025《java程序设计》第12周学习总结
  10. 一个div在另一个div中水平垂直的方法
  11. 利用rman duplicate重建oracle dataguard standby数据库
  12. 三种方法在当前目录下打开cmd命令窗口
  13. Vue.js学习和第一个实例
  14. JSP Servlet学习笔记——使用fileupload上传文件
  15. ES6扩展运算符的几个小技巧
  16. SOAP,RESTFull以及RPC的认识
  17. 发布Framework 4.0到iis时,出现HTTP 错误 403.14 - Forbidden
  18. ModelState验证部分属性
  19. katalon系列九:DEBUG调试功能
  20. vi/vim 光标移动命令

热门文章

  1. 13、OpenCV实现图像的空间滤波——图像平滑
  2. 初步了解 Netty
  3. Uncaught Error: `setOption` should not be called during main process.
  4. const的用法及它在C语言和C++中的不同
  5. eclipse设置格式化tab为4个空格和idea一样
  6. Net Core 3 Mvc AliPay Demo
  7. 计算机网络自顶向下方法第3章-传输层 (Transport Layer).2
  8. 【leecode】 Course Schedule
  9. 《C++语言程序设计》初学者必备教材
  10. Mybatis整合(Redis、Ehcache)实现二级缓存