通过DBUtils和C3P0结合简单实现增删改功能简化使用JDBC

2024-04-22 00:58

本文主要是介绍通过DBUtils和C3P0结合简单实现增删改功能简化使用JDBC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DBUtils的作用:

      DBUtils是Apache旗下的开源组件,对于JDBC来说,通过DBUtils能够简化堆JDBC的操作,因为DBUtils封装了对JDBC的操作。


DBUtils所包含的主要类:

   1.QueryRunner类:主要为了对数据库进行操作。

     2.ResultSetHandler接口:对select的返回后,怎么封装到结果集。

     3.DbUtils类:用于关闭资源与事务处理。


C3P0的介绍:

1.

C3P0开源免费的连接池!
使用它的开源项目有Spring、Hibernate等

    2.C3P0使用时需要添加配置文件c3p0-config.xml和jar包。


注意:在使用时,配置文件的名字必须是c3p0-config.xml。


c3p0-config.xml文件源码:

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


 
<default-config>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///web08</property>
<property name="user">tiantian</property>
<property name="password">123456</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">20</property>
  </default-config>
  
  <named-config name="atlihao"> 
    <property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///web08</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="initialPoolSize">5</property>

<property name="maxPoolSize">20</property>

   </named-config>

 </c3p0-config>


C3P0Utils类的实现源码(仅为测试类提供DataSource对象):


public class C3P0Utils {
//注意:1.使用无参构造器创建对象,就选择c3p0-config.xml中的<default-config>标签中的数据
//2.使用有参构造器创建对象(例如:ComboPooledDataSource("atlihao")),就选择c3p0-config.xml中的 <named-config name="atlihao">标签中的数据

//private static ComboPooledDataSource dataSource=new ComboPooledDataSource();
private static ComboPooledDataSource dataSource=new ComboPooledDataSource("atlihao");
public static DataSource getDataSource() {
return dataSource;
}
public static Connection getConnection() {
try {
return dataSource.getConnection();
} catch (SQLException e) {
            throw new RuntimeException(e);
}
}
}


TestDBUtils类的源码(测试DBUtils工具类):

/**
 * 测试DBUtils工具类
 * @author q'q
 *
 */

public class TestDBUtils {
/**
* 测试删除用户方法
*/

@Test
public void testDeleteUser() {
try {
//1.创建核心类QueryRunner
QueryRunner qr=new QueryRunner(C3P0Utils.getDataSource());
//2.编写sql语句
String sql="delete from tbl_user where uid=?";
//3.为占位符设置值
Object[] params= {9};
//4.执行添加操作
int rows=qr.update(sql,params);
if(rows>0) {
System.out.println("删除成功!");
}else {
System.out.println("删除失败!");
}
} catch (SQLException e) {
            throw new RuntimeException(e);
}
}


这是本人第一次书写属于自己的博客,希望各位多多提建议,我会努力的去改变自己的书写分格,去分享自己学到的东西,编程,需要最多的就是耐心,加油。







这篇关于通过DBUtils和C3P0结合简单实现增删改功能简化使用JDBC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/924466

相关文章

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一