欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库连接工具类----JdbcUtil的写法集合

程序员文章站 2024-03-23 08:00:57
...

连接数据库需要的包jar
数据库连接工具类----JdbcUtil的写法集合

1.初级者:完成连接效果即可。

public class Util {
	/**
	 * 得到连接
	 * @return 连接对象
	 * @throws Exception
	 */
	public static Connection getcon() throws Exception{
		Class.forName("com.mysql.jdbc.Driver");
		String url="jdbc:mysql://localhost:3306/library";
		Connection con=DriverManager.getConnection(url,"root","123456");
		return con;
	}
	/**
	 * 释放资源
	 * @param rs 结果集对象
	 * @param ps 语句对象
	 * @param con 连接对象
	 * @throws Exception
	 */
	public static void close(ResultSet rs,PreparedStatement ps,Connection con) throws Exception{
		rs.close();
		ps.close();
		con.close();
	}


}

2.中级者:外部文件更改连接数据库的数据源。

数据源写在properties文件里面(一般写在src文件夹下面)
数据库连接工具类----JdbcUtil的写法集合

在这里插入代码片public class DBUtils {
	/**
	 * 0. 设置数据源的四要素:驱动、连接、用户名、密码
	 */
	private static String DRIVER;
	private static String URL;
	private static String UNAME;
	private static String UPWD;


	/**
	 * 1. 加载数据库驱动
	 * 高内聚,低耦合
	 * 
	 */
	static {
		try {
			//1.加载外部的db.properties文件
			InputStream is = DBUtils.class.getResourceAsStream("/db.properties");
			//2.实例化一个properties对象
			Properties prop = new Properties();
			//3.properties对象加载is流
			prop.load(is);
			//4.通过properties对象,获得db.properties文件中的值
			DRIVER = prop.getProperty("driver");  //从properties对象中找名叫driver的参数
			URL = prop.getProperty("url");
			UNAME = prop.getProperty("name");
			UPWD = prop.getProperty("pass");
		
			Class.forName(DRIVER);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 2. 获得数据库连接
	 */
	public static Connection getConnection() {
		Connection conn = null;
		try {
			conn = DriverManager.getConnection(URL, UNAME, UPWD);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}

	/**
	 * 3. 关闭数据库连接,释放资源
	 */
	public static void close(Connection conn, PreparedStatement ps, ResultSet rs) {
		try {
			if (conn != null) {
				conn.close();
			}

			if (ps != null) {
				ps.close();
			}

			if (rs != null) {
				rs.close();
			}

		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static void close(Connection conn, PreparedStatement ps) {
		close(conn, ps, null);
	}

	public static void close(Connection conn) {
		close(conn, null, null);
	}

}

3.高级者:使用数据库连接池。(德鲁伊连接池为例)

德鲁伊的properties文件
数据库连接工具类----JdbcUtil的写法集合

public class DruidUtils {

	// 1.声明druid数据源工厂对象
	private static DataSource dataSource;
	
	/**
	 * 1. 加载数据库驱动
	 */
	static {
		try {
		//2.加载druid文件
			InputStream is = DruidUtils.class.getResourceAsStream("/druid.properties");
			Properties prop = new Properties();
			prop.load(is);
			//3.调用德鲁伊数据源工厂函数创建数据源
			dataSource = DruidDataSourceFactory.createDataSource(prop);
		
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

	/**
	 * 2. 获得数据库连接
	 */
	public static Connection getConnection() {
		Connection conn = null;
		try {
			conn = dataSource.getConnection();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}

	/**
	 * 3. 关闭数据库连接,释放资源
	 */
	public static void close(Connection conn, PreparedStatement ps, ResultSet rs) {
		try {
			if (conn != null) {
				conn.close();
			}

			if (ps != null) {
				ps.close();
			}

			if (rs != null) {
				rs.close();
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public static void close(Connection conn, PreparedStatement ps) {
		close(conn, ps, null);
	}

	public static void close(Connection conn) {
		close(conn, null, null);
	}

}

4.大神级:使用Spring Jdbc框架。

在3的基础是加一个返回数据源的方法即可!!!

//返回数据源
	public static  DataSource getDateSource() {
		return dataSource;
	}

完整代码如下:

public class JDBCTemplateUtils {

	// 声明druid数据源工厂对象
	private static DataSource dataSource;
	
	/**
	 * 1. 加载数据库驱动
	 */
	static {
		try {
			InputStream is = JDBCTemplateUtils.class.getResourceAsStream("/druid.properties");
			Properties prop = new Properties();
			prop.load(is);
			
			dataSource = DruidDataSourceFactory.createDataSource(prop);
		
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	//2.返回数据源
	public static  DataSource getDateSource() {
		return dataSource;
	}
	

	/**
	 * 2. 获得数据库连接
	 */
	public static Connection getConnection() {
		Connection conn = null;
		try {
			conn = dataSource.getConnection();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}

	/**
	 * 3. 关闭数据库连接,释放资源
	 */
	public static void close(Connection conn, PreparedStatement ps, ResultSet rs) {
		try {
			if (conn != null) {
				conn.close();
			}

			if (ps != null) {
				ps.close();
			}

			if (rs != null) {
				rs.close();
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public static void close(Connection conn, PreparedStatement ps) {
		close(conn, ps, null);
	}

	public static void close(Connection conn) {
		close(conn, null, null);
	}

}

相关标签: jdbc工具类 jdbc