一般数据库访问代码放在一个数据库访问的工具包中。
DBCP的使用步骤:
(1)加载三个包进入java项目:三个包分别为:commons-collections-x.x.jar,commons-dbcp-x.x.x.jar 和commons-pool.jar。
(2)申明一个DataSource(例如:DataSource myDataSource=null);
(3)实例化申明的DataSource,使用BasicDataSourceFactory工厂申城一个实例, myDataSource = BasicDataSourceFactory.createDataSource(prop); 注意参数为属性对象,生成工厂可用的属性对象有两种方法:
方法一(代码实现):
Properties prop = new Properties();
prop.setProperty("driver", "com.mysql.jdbc.Driver");
prop.setProperty("url", "jdbc:mysql://localhost:3306/jdbc");
prop.setProperty("username", "root");
prop.setProperty("password", "123");
myDataSource = BasicDataSourceFactory.createDataSource(prop);
方法二(配置文件实现,推荐方法):
Properties prop = new Properties();
InputStream inputStream = JdbcUtils.class.getClassLoadera().getResourceAsStream("dbcpconfig.properties");
prop.load(inputStream);
myDataSource = BasicDataSourceFactory.createDataSource(prop);
具体代码实现:
import java.util.*;
import java.io.InputStream;
import java.sql.*;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class JdbcUtils
{
private static DataSource myDataSource = null;
public JdbcUtils()
{}
Static //静态代码块优先于构造方法之前执行
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Properties prop = new Properties();
InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
prop.load(inputStream);
myDataSource = BasicDataSourceFactory.createDataSource(prop);
}
catch (Exception e)
{
throw new ExceptionInInitializerError(e);
}
}
public static Connection getConnection() throws SQLException
{
return myDataSource.getConnection();
}
public static void free(ResultSet rs, Statement st, Connection conn)
{
try
{
if (rs != null) rs.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
try
{
if (st != null)
st.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
try
{
if (conn != null) conn.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
}
此文章由 http://www.ositren.com 收集整理 ,地址为:
http://www.ositren.com/htmls/70235.html