JDBC一般流程及优化过程
2014-12-12 17:35
302 查看
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Base { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { template(); } static void template() throws SQLException, ClassNotFoundException { // 1.注册驱动 //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver"); Class.forName("com.mysql.jdbc.Driver");// 推荐方式 // 2.建立连接 String url = "jdbc:mysql://localhost:3306/jdbc"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); // 3.创建语句 Statement st = conn.createStatement(); // 4.执行语句 ResultSet rs = st.executeQuery("select * from user"); // 5.处理结果 while (rs.next()) { System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) + "\t" + rs.getObject(3) + "\t" + rs.getObject(4)); } // 6.释放资源 rs.close(); st.close(); conn.close(); } }
由上面的代码可知:JDBC一般的处理过程分为六个步骤
注册驱动
建立连接
创建语句
执行语句
处理结果
释放资源
上面的代码不够严谨,需要优化。
优化后的代码如下:抽出可重复性使用的代码工具类
public final class JdbcUtils { private static String url = "jdbc:mysql://localhost:3306/jdbc"; private static String user = "root"; private static String password = "123456"; private JdbcUtils() { } //JVM加载类时就进行驱动注册 static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { 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 { if (conn != null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
优化模板代码如下:
public class Base { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { template(); } static void template() throws Exception { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 st = conn.createStatement(); // 4.执行语句 rs = st.executeQuery("select * from user"); // 5.处理结果 while (rs.next()) { // 参数中的1,2,3,4是指sql中的列索引 System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) + "\t" + rs.getObject(3) + "\t" + rs.getObject(4)); } } finally { JdbcUtils.free(rs, st, conn); } }
相关文章推荐
- JDBC调用存储过程基本流程(SXT)
- 网站架构的一般演化过程以及一些网站性能优化的方法
- 建立自优化流程框架,推动全员过程改进
- 新手必须掌握的基础Servlet,jsp,jdbc开发一般流程
- SQL优化【基础08】 - 耗能SQL分析一般流程思路
- mysql数据库优化一般流程
- 【转】产品优化过程中流程零阻力策略
- Google优化一般流程和一些常识
- Hive创建表一般流程(优化)
- JDBC学习笔记——JDBC性能优化
- 关于JDBC的优化之一
- 存储过程编写经验和优化措施
- JDBC优化数据库连接
- 存储过程编写经验和优化措施
- UG的一般建模过程
- 存储过程编写经验和优化措施(转贴)
- 存储过程编写经验和优化措施
- 用TD的Requirements模块来整理测试需求的一般过程
- 存储过程编写经验和优化措施 选择自 swazn_yj 的 Blog
- JSP数据库操作例程 - 存储过程 - JDBC-ODBC - SQL Server - 1.1版本