文档章节

数据库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();
    }
   }
  }
 }
}

© 著作权归作者所有

共有 人打赏支持
上一篇: ADSL
lindaliving
粉丝 1
博文 10
码字总数 3043
作品 0
广州
程序员
私信 提问
Spring框架笔记(二十四)——Spring中的JDBC的两种使用方式

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

HappyBKs
2015/08/26
0
0
十个JDBC的最佳实践

JDBC是Java为多种关系型数据库提供的统一的访问接口,以下是我长期使用JDBC总结的十个最佳实践。 JDBC最佳实践1:使用PrearedStatement 任何一个使用过JDBC的Java程序员几乎都知道这个,Pre...

王振威
2012/09/08
6.3K
12
Java 8新特性探究(五)重复注解(repeating annotations)

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

OSC闲人
2013/12/03
0
1
JDBC 使用经验之谈

written by chenshu,郭春晓 为什么选择JDBC SSH架构在中国很流行,可是很多人都觉得Hibernate太慢了,所以有了MyBatis.从数据库开发技术上,EJB3大幅度借鉴了Hibernate技术,因此性能也不高。...

长平狐
2012/08/28
146
1
sharding-jdbc 1.2.1 发布,当当的 JDBC 增强驱动

sharding-jdbc 1.2.1 发布了。改进记录如下: 结构调整 ISSUE #60 API调整,抽离ShardingDataSource,使用工厂代替 ISSUE #76 ShardingRule和TableRule调整为Builder模式 ISSUE #77 Sharding...

淡漠悠然
2016/05/26
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
1
0
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少...

程序猿DD
昨天
2
0
Java并发编程:深入剖析ThreadLocal

ThreadLocal 的理解 ThreadLocal,很多地方叫线程本地变量,或线程本地存储。ThreadLocal为变量在每个线程中都创建了一个副本,每个线程可以访问自己内部的副本变量。===》解决的问题是线程间...

细节探索者
昨天
1
0
【Python3之异常处理】

一、错误和异常 1.错误 代码运行前的语法或者逻辑错误 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) def test: ^SyntaxError: invalid...

dragon_tech
昨天
2
0
编写可维护的 JavaScript

几乎每个程序员都有接手维护别人遗留项目的经历。或者,有可能一个老项目某一天又被重新启动。 通常情况下,接手老项目都会让人恨不得抛弃掉整个代码库从头开始。老代码凌乱、文档缺失、需要...

前端小攻略
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部