zoukankan      html  css  js  c++  java
  • JDBC工具类的抽取

    1.1 JDBC的工具类的抽取

    1.1.1 抽取一个JDBC的工具类

    因为传统JDBC的开发,注册驱动,获得连接,释放资源这些代码都是重复编写的。所以可以将重复的代码提取到一个类中来完成。

    package com.xdr630.jdbc.utils;
    
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * JDBC的工具类
     * @author jt
     *
     */
    public class JDBCUtils {
    	private static final String driverClassName;
    	private static final String url;
    	private static final String username;
    	private static final String password;
    	
    	static{
    		
    		
    		driverClassName="com.mysql.jdbc.Driver";
    		url="jdbc:mysql:///web_test3";
    		username="root";
    		password="1234";
    	}
    
    	/**
    	 * 注册驱动的方法
    	 */
    	public static void loadDriver(){
    		try {
    			Class.forName(driverClassName);
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	/**
    	 * 获得连接的方法
    	 */
    	public static Connection getConnection(){
    		Connection conn = null;
    		try{
    			// 将驱动一并注册:
    			loadDriver();
    			// 获得连接
    			conn = DriverManager.getConnection(url,username, password);
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		return conn;
    	}
    	
    	/**
    	 * 释放资源的方法
    	 */
    	public static void release(Statement stmt,Connection conn){
    		if(stmt != null){
    			try {
    				stmt.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			
    			stmt = null;
    		}
    		if(conn != null){
    			try {
    				conn.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			conn = null;
    		}
    	}
    	
    	public static void release(ResultSet rs,Statement stmt,Connection conn){
    		// 资源释放:
    		if(rs != null){
    			try {
    				rs.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			
    			rs = null;
    		}
    		if(stmt != null){
    			try {
    				stmt.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			
    			stmt = null;
    		}
    		if(conn != null){
    			try {
    				conn.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			conn = null;
    		}
    	}
    }
    
    
    

    测试案例:导入工具类,查询用户信息

    package com.xdr630.jdbc.demo03;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import org.junit.Test;
    
    import com.xdr630.jdbc.utils.JDBCUtils;
    
    /**
     * JDBC工具类的测试
     * @author xdr
     *
     */
    public class JDBCDemo3 {
    	@Test
    	/**
    	 * 查询操作:使用工具类
    	 */
    	public void demo1(){
    		Connection conn = null;
    		Statement stmt = null;
    		ResultSet rs = null;
    		try{
    			// 获得连接:
    			conn = JDBCUtils.getConnection();
    			// 创建执行SQL语句的对象:
    			stmt = conn.createStatement();
    			// 编写SQL:
    			String sql = "select * from user";
    			// 执行查询:
    			rs = stmt.executeQuery(sql);
    			// 遍历结果集:
    			while(rs.next()){
    				System.out.println(rs.getInt("id")+" "+rs.getString("username")+" "+rs.getString("password"));
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    		}finally{
    			// 释放资源:
    			JDBCUtils.release(rs, stmt, conn);
    		}
    	}
    }
    
    
    
    
    • 已知表数据
      在这里插入图片描述

    • 控制台输出:
      在这里插入图片描述

    本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15254875.html

  • 相关阅读:
    排序算法的实现(冒泡,选择,插入 O(N*N)--理解方法实现
    HTTPS工作原理和TCP握手机制
    HTTP协议学习
    IP头,TCP头,UDP头,MAC帧头定义
    单链表的实现
    数字图像处理------中值滤波
    对于矩阵的理解-- by 孟岩老师
    java编码问题总结
    jsp数据库连接大全和数据库操作封装到Javabean
    构建一个高可扩展性javabean和jsp连接数据库操作
  • 原文地址:https://www.cnblogs.com/xdr630/p/15254875.html
Copyright © 2011-2022 走看看