怎么自行封装一个数据库连接类

由于每次进行查询或更新数据库的时候都要连接一遍数据库,操作会重复好多次,干脆直接给这些东西封装成一个类就好了。

 封装后就能直接愉快的getconnection()了

package com.baidu.util;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;


/** 
* @Classname: JdbcUtils
* @author Firedance
* @version 2018年5月16日 下午8:04:55
* 
*/
public class JdbcUtils {

	private static String driver;
	private static String url;
	private static String user;
	private static String password;
	
	static {
			Properties prop = new Properties();
			try {
				//获取外部文件"jdbc.properties"的资源流
				prop.load(JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"));
				//从资源流里获取各个属性的值
				driver=prop.getProperty("driver");
				url=prop.getProperty("url");
				user=prop.getProperty("user");
				password=prop.getProperty("password");
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		try {
			//加载数据库驱动
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	//get链接方法
	public static Connection getConnection(){		
		Connection conn = null;
		try {
			//获取数据库链接
			conn = DriverManager.getConnection(url,user,password);

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	
	//关流方法
	public static void close(ResultSet res,PreparedStatement pst,Connection conn) {
		if(null !=res) {
			try {
				res.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(null !=pst) {
			try {
				pst.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(null !=conn) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

-----------------------------------------------------------

“jdbc.properties”文件就给放在src里,还有“jdbc.properties”文件里面要这样写:这里我连接的是MySQL

driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/写你的数据库名字
user=写你的用户名
password=写你的登录密码
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
。首先,我们需要将数据库连接封装一个单例,确保整个系统只有一个连接池实例。然后,在单例中,我们可以定义一个连接池的列表,用于存储指定个数的数据库连接对象。客户端代码可以通过随机获取连接池中的一个连接对象来连接数据库。 以下是一个简单的实现: ```python import random class DatabaseConnectionPool: __instance = None __pool = [] def __new__(cls, num_connections): if not cls.__instance: cls.__instance = super().__new__(cls) for i in range(num_connections): connection = DatabaseConnection() cls.__pool.append(connection) return cls.__instance def get_connection(self): return random.choice(self.__pool) class DatabaseConnection: def __init__(self): # connect to the database pass def query(self, sql): # execute a SQL query pass def close(self): # close the database connection pass ``` 在上面的示例中,我们定义了一个 `DatabaseConnectionPool` 作为连接池的单例。在其 `__new__` 方法中,我们通过传入的 `num_connections` 参数创建指定个数的数据库连接对象,并将它们存储在连接池中。在 `get_connection` 方法中,我们通过随机选择连接池中的一个连接对象来返回,以便客户端代码使用。 另外,我们还定义了一个 `DatabaseConnection` 作为数据库连接对象。在其 `__init__` 方法中,我们可以实现与数据库的连接操作,而在 `query` 和 `close` 方法中,我们可以实现 SQL 查询和关闭连接的操作。 使用时,我们可以这样调用: ```python pool = DatabaseConnectionPool(3) # get a database connection connection = pool.get_connection() # execute a SQL query connection.query("SELECT * FROM users") # close the connection connection.close() ``` 在上面的示例中,我们创建了一个包含 3 个连接对象的连接池,并从中获取一个随机的数据库连接对象。然后,我们可以使用该连接对象执行 SQL 查询并关闭连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值