Apache—DBUtils框架开发
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Apache—DBUtils框架开发,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4302字,纯文字阅读大概需要7分钟。
内容图文
java编程学习有一段时间了,今天突然发现以前比较基础的东西掌握的不牢固了,所以特意回顾下DBUtils架构的数据开发
QueryRunner类
该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。 QueryRunner类提供了两个构造方法: •默认的构造方法 •需要一个 javax.sql.DataSource 来作参数的构造方法。 QueryRunner类的主要方法 public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和 ResultSet 的创建和关闭。 public Object query(String sql, Object[] params, ResultSetHandler rsh) throws SQLException: 几乎与第一种方法一样;唯一的不同在于它不将数据库连接提供给方法,并且它是从提供给构造方法的数据源(DataSource) 或使用的setDataSource 方法中重新获得 Connection。 public Object query(Connection conn, String sql, ResultSetHandler rsh) throws SQLException : 执行一个不需要置换参数的查询操作。 public int update(Connection conn, String sql, Object[] params) throws SQLException:用来执行一个更新(插入、更新或删除)操作。 public int update(Connection conn, String sql) throws SQLException:用来执行一个不需要置换参数的更新操作。 ResultSetHandler接口 该接口用于处理 java.sql.ResultSet,将数据按要求转换为另一种形式。 ResultSetHandler 接口提供了一个单独的方法:Object handle (java.sql.ResultSet .rs)。 ResultSetHandler 接口的实现类 ArrayHandler:把结果集中的第一行数据转成对象数组。 ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。 BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。 BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。 ResultSetHandler 接口的实现类 ColumnListHandler:将结果集中某一列的数据存放到List中。 KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。 MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。 MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List java实现数据操作底层代码private static ComboPooledDataSource ds;
//线程数据连接管理器
private static ThreadLocal<Connection> map = new ThreadLocal<Connection>();
static{
try{
//使用3cp0数据连接池获取数据资源
ds = new ComboPooledDataSource();
}catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public static Connection getConnection() throws SQLException{
Connection conn = map.get(); //获取到当前线程上绑定的链接
if(conn==null){
conn = ds.getConnection();
map.set(conn); //把链接绑定到当前线程上
}
return conn;
}
//开启事务
public static void startTransaction(){
try{
Connection conn = map.get(); //获取到当前线程上绑定的链接
if(conn==null){
conn = ds.getConnection();
map.set(conn);
}
conn.setAutoCommit(false);
}catch (Exception e) {
throw new RuntimeException(e);
}
}
//提交事务
public static void commitTransaction(){
try{
Connection conn = map.get(); //获取到当前线程上绑定的链接
if(conn!=null){
conn.commit();
}
}catch (Exception e) {
throw new RuntimeException(e);
}
}
//回滚事务
public static void rollbackTransaction(){
try{
Connection conn = map.get(); //获取到当前线程上绑定的链接
if(conn!=null){
conn.rollback();
conn.commit();
}
}catch (Exception e) {
throw new RuntimeException(e);
}
}
//关闭连接
public static void closeConnection(){
try{
Connection conn = map.get(); //获取到当前线程上绑定的链接
if(conn!=null){
try{
conn.close(); //求求大家,千万注意
}finally{
map.remove();//解除当前线程绑定的资源
}
}
}catch (Exception e) {
throw new RuntimeException(e);
}
}
public static DataSource getDataSource(){
return ds;
}
c3p0配置文件
<named-config name="mysql">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/day16</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">30</property>
</named-config>
Apache—DBUtils框架开发
标签:
本文系统来源:http://www.cnblogs.com/huy360/p/4513346.html
内容总结
以上是互联网集市为您收集整理的Apache—DBUtils框架开发全部内容,希望文章能够帮你解决Apache—DBUtils框架开发所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。