zoukankan      html  css  js  c++  java
  • java实现的JDBCTemplate工具

    1.DButil

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ResourceBundle;
    
    /**
     * 数据库操作工具类
     * @author xrhou
     *
     */
    public class DBUtils {
    	
    	//数据库连接地址
    	public static String URL;
    	//用户名
    	public static String USERNAME;
    	//密码
    	public static String PASSWORD;
    	//mysql的驱动类
    	public static String DRIVER;
    	
    	private static ResourceBundle rb = ResourceBundle.getBundle("com.xrhou.util.db.db-config");
    	
    	private DBUtils(){}
    	
    	//使用静态块加载驱动程序
    	static{
    		URL = rb.getString("jdbc.url");
    		USERNAME = rb.getString("jdbc.username");
    		PASSWORD = rb.getString("jdbc.password");
    		DRIVER = rb.getString("jdbc.driver");
    		try {
    			Class.forName(DRIVER);
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
    	//定义一个获取数据库连接的方法
    	public static Connection getConnection(){
    		Connection conn = null;
    		try {
    			conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
    		} catch (SQLException e) {
    			e.printStackTrace();
    			System.out.println("获取连接失败");
    		}
    		return conn;
    	}
    	
    	/**
    	 * 关闭数据库连接
    	 * @param rs
    	 * @param stat
    	 * @param conn
    	 */
    	public static void close(ResultSet rs,Statement stat,Connection conn){
    		try {
    				if(rs!=null)rs.close();
    				if(stat!=null)stat.close();
    				if(conn!=null)conn.close();
    		} catch (SQLException e) {
    				e.printStackTrace();
    		}
    	}
    	
    }
    

     2.JdbcTemplete

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class JdbcTemplete {
    	/**
    	 * 实现增删改的抽象
    	 * @param sql
    	 * @param args
    	 */
    	public int update(String sql,Object... args){
    		Connection conn = null;
    		PreparedStatement ps = null;
    		try{
    			conn = DBUtils.getConnection();
    			ps = conn.prepareStatement(sql);
    			//设置占位符的参数
    			if(args!=null){
    				for (int i = 0; i < args.length; i++) {
    					ps.setObject(i+1, args[i]);
    				}
    			}
    			return ps.executeUpdate();
    		}catch(SQLException e){
    			e.printStackTrace();
    			return -1;
    		}finally{
    			DBUtils.close(null, ps, conn);
    		}
    	}
    	/**
    	 * 查询方法的抽象
    	 * @param sql
    	 * @param handler
    	 * @param args
    	 * @return
    	 */
    	public Object query(String sql,ResultSetHandler handler,Object... args){
    		Connection conn  = null;
    		PreparedStatement ps = null;
    		ResultSet rs = null;
    		try {
    			conn = DBUtils.getConnection();
    			ps = conn.prepareStatement(sql);
    			if(args!=null){
    				for (int i = 0; i < args.length; i++) {
    					ps.setObject(i+1, args[i]);
    				}
    			}
    			rs = ps.executeQuery();
    			return handler.doHandler(rs);
    		} catch (SQLException e) {
    			e.printStackTrace();
    			return null;
    		}
    		
    	}
    }
    

      3.ResultSetHandler处理

    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public interface ResultSetHandler {
    
    	public Object doHandler(ResultSet rs) throws SQLException;
    }
    

      4.属性文件

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/friends
    jdbc.username=root
    jdbc.password=root
    

      

  • 相关阅读:
    人一生最后悔五件事
    C# 实现程序只启动一次(多次运行激活第一个实例,使其获得焦点,并在最前端显示)
    socket 编程 学习2
    Linux内核源码阅读以及工具(转)
    迭代法
    C语言程序设计 C语言中的时间函数(转)
    线段的平移
    数独(sudoku)的生成与破解(转)
    PageBase,ControlBase,Base Class
    Oracle “万年虫”
  • 原文地址:https://www.cnblogs.com/xrhou12326/p/4335606.html
Copyright © 2011-2022 走看看