dbcp、c3p0、properties实现数据库连接的操作

今天与大家分享几种方式与数据库建立连接
第一种:基础版
首先得有数据库,然后采用class.forname();加载驱动
通过connection接口创建连接对象
这种方法比较笨拙,当要使用另外的数据库时不方便修改

public void insertTest(){
	Connection co =null;
	Statement st = null;
	try{
	Class.forName("com.mysql.jdbc.Driver");
   	co = DriverManager.getConnection("jdbc:mysql://localhost:3306/huangguizhao", "root", "123456");
   	}catch (ClassNotFoundException | SQLException e) {
 		  e.printStackTrace();
 	 }finally {
  	 CloseUtils.closeAll(st,co);
  }

第二种:使用properties接收关键路径
首先我们在工程目录下创建一个文本文件,里面放入数据库关键路径
在这里插入图片描述
这时候实例化properties对象,更具key获取对应的values值

static private String drive;
static private String usl;
static private String username;
static private String password;
static{
 	 try {
   		Properties pre = new Properties();
  		 pre.load(new FileInputStream("co.properties"));
		   drive = pre.getProperty("drivename");
  		 usl =pre.getProperty("url");
 		  username =pre.getProperty("username");
  		 password =pre.getProperty("password");
 	 } catch (FileNotFoundException e1) {
 		  e1.printStackTrace();
 	 } catch (IOException e1) {
 		  e1.printStackTrace();
 	 }
 	 try {
 		  Class.forName(drive);
  	} catch (ClassNotFoundException e) {
  		 e.printStackTrace();
  	}
 }
 public static Connection Conn(){
  	Connection conn = null;
		  try {
  			 conn = DriverManager.getConnection(usl, username, password);
  			} catch (SQLException e) {
 			  e.printStackTrace();
 		 }
 		 return conn;
 	}
 

这是一个工具包,当我们要用这个数据库时,只需要调用这个工具包,让connection去接受即可完成数据库运用
使用properties接收的优点在于:使程序更灵活,以后变更数据库信息,只需更改配置文件

第三种:Dbcp连接池实现
将需要的jar导包放入lib文件中,然后建立连接
在这里插入图片描述
同时将dbcpconfig.properties文本放到工程目录下,
文本中的大致内容:

在这里插入图片描述
这时候我们只需要通过DataSource接口实现即可

static DataSource dataSource = null;
 	static{
  		Properties pre = new Properties();
  	try {
   		pre.load(new FileInputStream("dbcpconfig.properties"));
   		dataSource=BasicDataSourceFactory.createDataSource(pre);
  	} catch (FileNotFoundException e) {
  		 e.printStackTrace();
  	} catch (IOException e) {
  		 e.printStackTrace();
 	 } catch (Exception e) {
  		 e.printStackTrace();
  	}
 }

同样的我们需要创建一个方法去接收dataSource.getConnection();
当我们需要用到时,调用这个方法就可以

第四种:C3p0连接池实现
同样的我们需要通过Datasource这个接口,并且导入jar包
在这里插入图片描述
但是在这里需要注意,我们创建的文本文档必须放在 src/ 资源目录下,才能实现

private static DataSource dataSource = null;
 	static{
  		dataSource = new ComboPooledDataSource();
 	}
 		public static Connection connection(){
  	try {
   		return dataSource.getConnection();
  	} catch (SQLException e) {
   		e.printStackTrace();
  	}
  	return null;
 }

代码相对简单,但注意使用条件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值