文档章节

数据库JDBC的改进做法

lindaliving
 lindaliving
发布于 2014/06/01 20:40
字数 288
阅读 66
收藏 3
  //比较严谨操作数据库的代码
  public static void Test2(){
   Connection conn=null;
   Statement st=null;
   ResultSet rs=null;
   try { 
   conn=JdbcUtil.getConnection();//使用工具类加载驱动
   st=conn.createStatement();
   rs=st.executeQuery("select * from users");
   while (rs.next()) {//这里用的是MYSQL的数据库,里边已经创建了users的表
    System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) + "\t"+ rs.getObject(3) );
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } 
   finally{
    JdbcUtil.free(rs, st, conn);//调用工具类释放资源,关闭数据库连接
   }

  }

//这是一个工具类,用于保存管理员和密码,异常处理和加载驱动等
public final class JdbcUtil {
 private static String url="jdbc:mysql://localhost:3306/test";
 private static String user="root";
 private static String password="846512890";
 private JdbcUtil(){
  
 }
//使用静态代码块,加载驱动只需一次就够了
 static {
  try {
   Class.forName("com.mysql.jdbc.Driver");
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   throw new ExceptionInInitializerError(e);
  }
 }
 public static Connection getConnection() throws SQLException{
  return DriverManager.getConnection(url, user, password);
 }
//最后所有资源释放
 public static void free(ResultSet rs,Statement st,Connection conn){
  try{
   if(rs!=null)
    rs.close();
  }catch(SQLException e){
   e.printStackTrace();
  }
  finally
  {
   try{
    if(st!=null);
     st.close();
   }catch(SQLException e){
    e.printStackTrace();
   }finally{
    try{
     if(conn!=null)
     conn.close();
    }catch(SQLException e){
     e.printStackTrace();
    }
   }
  }
 }
}

© 著作权归作者所有

共有 人打赏支持
lindaliving
粉丝 1
博文 10
码字总数 3043
作品 0
广州
程序员
Java 8新特性探究(五)重复注解(repeating annotations)

知识回顾 前面介绍了: lambda表达式和默认方法 (JEP 126) 批量数据操作(JEP 107) 类型注解(JEP 104) 注:JEP=JDK Enhancement-Proposal (JDK 增强建议 ),每个JEP即一个新特性。 在j...

OSC闲人
2013/12/03
0
1
bboss persistent通过jndi引用外部数据源(datasource)方法

关于bboss-persistent持久层框架通过jndi引用外部数据源(datasource)的说明 bboss persistent框架可以引用外部数据源,例如tomcat,weblogic和WebSphere平台提供的datasource,需要在poolm...

bboss
2009/03/21
0
0
反驳:Threadlocal存在内存泄露

最近看到网上的一篇文章,分析说明ThreadLocal是如何内存泄露的. 但我不这么认为. ThreadLocal设计的很好,根本不存在内存泄露问题. 本文就结合图和代码的例子来验证我的看法. 网上的代码例子普...

xpbug
2013/03/13
0
14
Spring框架笔记(二十四)——Spring中的JDBC的两种使用方式

为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架. 作为 Spring JDBC 框架的核心, JDBC 模板的设计目的是为不同类型的 JDBC 操作提供模板方法...

HappyBKs
2015/08/26
0
0
反驳:Threadlocal存在内存泄露

最近看到网上的一篇文章,分析说明ThreadLocal是如何内存泄露的. 但我不这么认为. ThreadLocal设计的很好,根本不存在内存泄露问题. 本文就结合图和代码的例子来验证我的看法. 网上的代码例子普...

GM_LV
2013/03/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

idea 通过jpa自动生成实体类

引入jpa包 打开persistence窗口 右键选择连接数据库 如果数据库没配置,则可以在下图选项中配置 选择好数据库和实体类的生成地址

斩神魂
28分钟前
1
0
tcpdump 命令

TCPDUMP简介 tcpdump 是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络的数据包。tcpdump 使用 libpcap 库来抓取网络报,这个库在几乎在所有的 Linu...

寰宇01
35分钟前
2
0
软件的Alpha、Beta、RC、GA版本的区别

Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。 Beta:也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出。 RC:(Release Candidate) 顾名思义...

乔老哥
36分钟前
2
0
慢雾安全海贼王:从DApp亡灵军团,细说区块链安全

本文转载自微信公号“万向区块链”,为慢雾安全负责人海贼王在万向区块链实验室举办的2018上海区块链国际周-技术开放日上的演讲速记整理。 这张图总结了智能合约攻防的各个方面,分为两大部分...

万向区块链
42分钟前
13
0
Matlab编程之——卷积神经网络CNN代码解析

卷积神经网络CNN代码解析 deepLearnToolbox-master是一个深度学习matlab包,里面含有很多机器学习算法,如卷积神经网络CNN,深度信念网络DBN,自动编码AutoE ncoder(堆栈SAE,卷积CAE)的作...

酒逢知己千杯少
42分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部