DBUtil教程(二)配置连接和分页查询

本文介绍了一个名为DBUtil的工具类,该工具类用于多数据库配置,并通过XML文件加载数据库连接配置信息。文章详细解释了如何配置C3P0连接池参数,并演示了如何使用DBUtil进行数据库查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     DBUtil是一个多数据库的配置模式,主要方式之一是通过xml来加载数据。其中对c3p0的连接池进行封装。

     配置xml:

    

<Resource jndi="jdbc/Default" driverClass="com.mysql.jdbc.Driver"
		dbUserName="root" dbPassWord="root"
		jdbcUrl="jdbc:mysql://127.0.0.1:3306/nms4?useUnicode=true&characterEncoding=utf-8"
		initSize="2" minPoolSize="1" maxPoolSize="10" maxStatements="50"
		maxIdleTime="60" />

    jndi:是数据库的连接的id,用来标识唯一的连接器

   driverClass:数据库驱动class

   dbUserName/dbPassWord:帐户/密码

   jdbcUrl:jdbcurl

   initSize/minPoolSize/maxPoolSiz/maxStatements/maxIdleTime:连接池的特性

   先写把数据库xml建立,然后用DButil加载数据库连接的配置信息:

DBUtil.getInstance().init("E:\\workspace\\JavaFramework2.5\\src\\com\\shine\\DBUtil\\config\\dbXml.xml");
  加载了xml后,就可以查询,查询是要你操作的jndi和sql语句:

DBModel dbModel = DBUtil.getInstance().executeQuery("jdbc/test","select * from test1");

查询的结果会放在一个DBModel的对象中,这个对象是一个Arraylist的对象,每一行的数据使用一个map来存放。

如果我们需要获取第一行的test列的数据库中的值:

dbModel.next();
String s=dbModel.get(0).getString("test");


    next()是用来加载缓冲的数据,dbModel默认只是一次缓冲1000行的数据,不会一次从一个数据库表中加载大量的数据,如果遇到100w的数据库表,一次把数据库表数据全部加载到一个list会造成数据的不稳定。

    输出DBModel的xml数据,如果继续要加载下一页就继续执行多一次next的方法:

dbModel.next(10);
System.out.println(dbModel.getDataXml());

   xml输出结果:

<?xml version="1.0" encoding="UTF-8"?>

<nodes>
   <node>
      <key label="test">502</key>
   </node>
   <node>
      <key label="test">503</key>
   </node>
   <node>
      <key label="test">504</key>
   </node>
   <node>
      <key label="test">505</key>
   </node>
   <node>
      <key label="test">506</key>
   </node>
   <node>
      <key label="test">507</key>
   </node>
   <node>
      <key label="test">508</key>
   </node>
   <node>
      <key label="test">509</key>
   </node>
   <node>
      <key label="test">510</key>
   </node>
   <node>
      <key label="test">511</key>
   </node>
   <node>
      <key label="test">512</key>
   </node>
</nodes>
   在用完查询后,记得关闭连接

dbModel.close();







    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值