




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DbUtils是apache上的一个开源工具包.对数据库的操作进行了二次的封装.DbUtils提供了三个包,分别是:mons.dbutils;mons.dbutils.handlers;mons.dbutils.wrappers;mons.dbutilsDbUtils 关闭链接等操作QueryRunner 进行查询的操作 mons.dbutils.handlersArrayHandler :将ResultSet中第一行的数据转化成对象数组ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是ObjectBeanHandler :将ResultSet中第一行的数据转化成类对象BeanListHandler :将ResultSet中所有的数据转化成List,List中存放的是类对象ColumnListHandler :将ResultSet中某一列的数据存成List,List中存放的是Object对象KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map。Map中存放的是数据MapHandler :将ResultSet中第一行的数据存成Map映射MapListHandler :将ResultSet中所有的数据存成List。List中存放的是MapScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object mons.dbutils.wrappersSqlNullCheckedResultSet :对ResultSet进行操作,改版里面的值StringTrimmedResultSet :去除ResultSet中中字段的左右空格。Trim() 可以去网上下载官方的测试以及使用实例.今天下午自己闲没有事做,自己写了一些常用方法的测试数据.首先我用的是mysql数据库,创建一个测试用的表,具体的sql语句如下:DROP TABLE IF EXISTS person;CREATE TABLE person ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(10) DEFAULT NULL, age int(11) DEFAULT NULL, address varchar(100) DEFAULT NULL, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;然后创建表对应的javabean:具体的代码如下:package net.ybx.test;public class Person public int id;public String name;public int age;public String address;public int getId() return id;public void setId(int id) this.id = id;public String getName() return name;public void setName(String name) = name;public int getAge() return age;public void setAge(int age) this.age = age;public String getAddress() return address;public void setAddress(String address) this.address = address;public String toString()return id=+id+ name=+name+ address=+address+ age=+age;然后具体的测试类如下:package net.ybx.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.List;import mons.dbutils.DbUtils;import mons.dbutils.ProxyFactory;import mons.dbutils.QueryRunner;import mons.dbutils.handlers.BeanHandler;import mons.dbutils.handlers.BeanListHandler;import mons.dbutils.handlers.ScalarHandler;import mons.dbutils.wrappers.SqlNullCheckedResultSet;import mons.dbutils.wrappers.StringTrimmedResultSet;public class DbUtilsTest private static final String DRIVERCLASS = com.mysql.jdbc.Driver;private static final String CONNECTURL = jdbc:mysql:/localhost/test?useUnicode=true&characterEncoding=utf-8;private static final String USER = root;private static final String PASSWORD = 3769221;public static Connection conn;public static void main(String args) / TODO Auto-generated method stubDbUtils DB = new DbUtils();/ 加载数据库mysql的jdbc驱动DB.loadDriver(DRIVERCLASS);PreparedStatement stmt = null;QueryRunner qr = new QueryRunner();try conn = DriverManager.getConnection(CONNECTURL, USER, PASSWORD);/ 获得PreparedStatement对象stmt = conn.prepareStatement(insert into person(name,age,address) values(?,?,?);Person person = new Person();person.setAddress(上海);person.setName(南信大);person.setAge(50);qr.fillStatementWithBean(stmt, person, new String name,age, address );stmt.execute();/ 删除数据;qr.update(conn, delete from person where id=?,new Object 4 );/ 查询一个bean数据person = (Person) qr.query(conn, select * from person where id=?,new Object 10 , new BeanHandler(Person.class);System.out.println(查询出的数据为: + person.toString();/ 查询一个ListList list = (List) qr.query(conn,select * from person, new BeanListHandler(Person.class);/ 遍历一个listfor (int i = 0; i list.size(); i+)System.out.println(list.get(i).toString();/ 返回刚刚插入数据的ID(自动递增的)Long id = (Long) qr.query(conn, select last_insert_id(),new ScalarHandler(1);System.out.println(最新自动增加的值为: + id.longValue();/ SqlNullCheckedResult 测试System.out.println(-一道华丽的分界线-);Statement stat = conn.createStatement();ResultSet rs = stat.executeQuery(select * from person where id=18);SqlNullCheckedResultSet wrapper = new SqlNullCheckedResultSet(rs);wrapper.setNullString(-N/A-);wrapper.setNullInt(1000);rs = ProxyFactory.instance().createResultSet(wrapper);while (rs.next()System.out.println(rs.getInt(id) + rs.getString(address)+ + rs.getInt(age);System.out.println(-又是一个华丽的分割线-);rs = stat.executeQuery(select * from person where id=17);while (rs.next() System.out.println(长度为:+rs.getString(2).length();rs = StringTrimmedResultSet.wrap(rs);System.out.println(现在长度为:+rs.getString(2).length();System.out.println(rs.getString(2); catch (SQLException e) / TODO Auto-generated catch blockDB.rollbackAndCloseQuietly(conn);e.printStackTrace(); finally Db
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司联谊现场活动方案
- 公司摆摊美食活动方案
- 公司自制活动策划方案
- 公司男女活动策划方案
- 公司春季烧烤活动方案
- 公司旅游活动策划方案
- 公司组员聚会活动方案
- 公司洞头团建活动方案
- 公司聚餐系列活动方案
- 公司组织撕名牌活动方案
- 麻醉意外与并发症处理规范与流程
- 信息技术的前沿动态的试题及答案
- 参股投资合作协议书
- 2025年广东省深圳市南山区多校联考中考英语二模试卷
- 2025至2030中国物理气相沉积(PVD)设备行业行情监测与发展动向追踪报告
- 智能化设备与造价咨询合同
- 工程造价审计服务投标方案(技术方案)
- 安全生产检查咨询服务投标方案(技术方案)
- 2025绿色建筑检验机构能力验证要求
- 全省工会系统经审业务技能大赛含答案
- 2025年上海市安全员C3证(专职安全员-综合类)考试题库
评论
0/150
提交评论