mysql的数据库池的使用_MySQL数据库使用及连接池

1、回顾数据库的基本用法

* 加载驱动:Class.forName().newInstance;//在JVM内加载了驱动

e.g:Class.forName("com.mysql.jdbc.Driver").newInstance;

* 获取连接对象:

java.sql.Connection conn = DriverManager.getConnection(url,userName,pwd);

其中:url="jdbc:mysql://localhost/"+dbName;  //在本机器上的配置

若是Oracle数据库:url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";

* 获取处理对象:

java.sql.Statement stmt = conn.createStatement();

java.sql.preparedStatement pstmt = conn.preparedStatement(sql);

* ResultSet遍历记录

java.sql.ResultSet rs = stmt.excuteQuery(sql);//查询

while(rs.next()){//rs.next()每次被调用将指向下一条记录,第一次调用将指向第一条记录

rs.getString("goods_id");//使用列名访问

rs.getDouble("price");

rs.getString(1);//使用序列号访问

rs.getDouble(2);

}

2、数据库连接池

基本步骤:

* 创建数据源对象:

BasicDataSource ds = new BasicDataSource();

* 设定数据源的相关参数:

ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");

ds.setUsername("admin");

ds.setPassword("123456");

ds.setInitialSize(10);//线程池容量

ds.setMaxActive(20);

* 生成连接池(连续多个连接):

DataSource ds = setupDataSource();

Connection conn = ds.getConnection();

* 数据库操作:

* 关闭数据源:

ds.close();

注意:数据库连接池技术是Apache的一个项目,在使用中必须用到两个外部类库。

commons-dbcp-1.2x.zip  、 commons-pool-1.4.1.zip

还要注意一下,有ds获得的conn使用后调用conn.close()将其休眠。

3、批处理:

/** * 获取数据源,注意:org.apache.commons.dbcp.BasicDataSource中的一些方法 * 如下函数中的set方法都不是实现接口方法。 * @return 数据源 */ private static javax.sql.DataSource getDS(){ BasicDataSource ds = new org.apache.commons.dbcp.BasicDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver");//加载驱动 ds.setUsername("netjavablog");//数据库用户名 ds.setPassword("netjavablog");//密码 ds.setUrl("jdbc:mysql://localhost:3306/netjavablog");//数据库url ds.setInitialSize(5);//线程池容量,即连接个数。 return ds; } for(int i=0;i<10;i++){ //每次循环,从线程池取出一个连接对象。 java.sql.Connection conn= ds.getConnection(); String sql="select * from userinfo"; try{ java.sql.Statement stmt=conn.createStatement(); java.sql.ResultSet rs= stmt.executeQuery(sql); while(rs.next()){ UserInfo user=new UserInfo();// int id=rs.getInt(1); String name=rs.getString(2); String pwd=rs.getString(3); user.setId(id); user.setName(name); user.setPwd(pwd); System.out.println("user: "+user.toString()); Thread.sleep(3000); } rs.close(); }catch(Exception ef){ ef.printStackTrace(); } conn.close();//注意:该close方法并不是关闭了连接,而是 //将连接放到连接池休眠。

953f3babed3089ad2b6eed512ce704f8.png

ca87981ba8fd01df955fb0be346a7aaa.png

大小: 55.2 KB

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2009-12-29 22:42

浏览 1996

分类:数据库

评论

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值