栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据库连接池和DBUtils工具

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据库连接池和DBUtils工具

1.通过BasicDataSource类直接创建数据源对象
在使用BasicDataSource类创建一个数据源对象时,需要手动给数据源对象设置属性值,然后获取数据库连接对象。
例:

package chapter10;

import java.sql.Connection;
import java.sql.DatabasemetaData;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;



public class example01 {
	
	
   public static DataSource ds=null;
   static {
	   BasicDataSource b=new BasicDataSource();
	   b.setDriverClassName("com.mysql.jdbc.Driver");
	   b.setUrl("jdbc:mysql://localhost:3306/jdbc");
	   b.setUsername("root");
	   b.setPassword("123456");
	   
	   b.setInitialSize(5);
	   b.setMaxActive(10);
	   
	   ds=b;
	   
   }
   public static void main(String[] args) throws SQLException {
	Connection conn=ds.getConnection();
	DatabasemetaData m=conn.getmetaData();
	System.out.println(m.getURL());
	System.out.println(m.getUserName());
	System.out.println(m.getDriverName());
}
}

运行结果:

2.通过ComboPooledDataSource()构造方法创建数据源对象
使用ComboPooledDataSource()构造方法创建数据源对象,需要手动给数据源对象设置属性值,然后获取数据库连接对象。
例:

package chapter10;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.DatabasemetaData;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;


public class example03 {
   public static DataSource ds=null;
   static {
	   ComboPooledDataSource c=new ComboPooledDataSource();
	   
	   try {
		   c.setDriverClass("com.mysql.jdbc.Driver");
		   c.setJdbcUrl("jdbc:mysql://localhost:3306/jdbc");
           c.setUser("root");
           c.setPassword("123456");
           
           c.setInitialPoolSize(5);
           c.setMaxPoolSize(10);
           ds=c;
           
	   }catch(PropertyVetoException e) {
		  e.printStackTrace(); 
	   }
   }
   public static void main(String[] args) throws SQLException {
	Connection conn=ds.getConnection();
	DatabasemetaData m=conn.getmetaData();
	
	System.out.println(m.getURL());
	System.out.println(m.getUserName());
	System.out.println(m.getDriverName());
}
}

运行结果:

DBUtils工具
1.BeanultSetHandler实现类
先创建一个名为baseDao的类该类中编写了一个通用查询方法

package chapter10;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import org.apache.commons.dbutils.ResultSetHandler;

public class baseDao {
  public static Object query(String sql,ResultSetHandler rsh,Object... params) {
	  Connection conn=null;
	  PreparedStatement ps=null;
	  ResultSet rs=null;
	  try {
		  conn=JDBCUtils.getConnection();
		  ps=conn.prepareStatement(sql);
		  for(int i=0;params!=null && i 

在包下创建一个User类,用来封装User对象

package chapter10;

public class User {
private int id;
private String name;
private String password;
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getPassword() {
	return password;
}
public void setPassword(String password) {
	this.password = password;
}
}

在包下创建一个名为ResultSetTest1的类,用于演示BeanHandler类对结果集的处理

package chapter10;

import org.apache.commons.dbutils.handlers.BeanHandler;

public class ResultSetTest1 {
public static void testBeanHandler() {
	baseDao baseDao=new baseDao();
	String sql="select * from users where id=?";
	Object object=baseDao.query(sql, new BeanHandler(User.class), 12);
    if(object!=null && object instanceof User) {
    User user=(User) object;
    System.out.println("id为12的User对象的name值为:"+user.getName());
    }else {
    	System.out.println("查询结果为空:"+object);
    }
    }
public static void main(String[] args) {
	testBeanHandler();
}
}

运行结果:

可以看出BeanHandler已成功将id为12的数据存入到了实体user对象中。

在包下建一个名为ResultSetTest2的类用来演示BeanListHandler类对结果集的处理

package chapter10;

import java.util.ArrayList;

import org.apache.commons.dbutils.handlers.BeanListHandler;

public class ResultSetTest2 {
public static void testBeanHandler() {
	baseDao b=new baseDao();
	String sql="select * from users";
	ArrayList list = (ArrayList) b.query(sql, new BeanListHandler(User.class));
	
	for(int i=0;i 

运行结果:

从运行结果可以看出testBeanHandler()方法可以将每一行的数据都封装到user实体对象中,并将其存放到list中。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/658330.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号