ComboPooledDataSource连接mysql
Dbutils学习(介绍和入门)


1 <? xml version ="1.0" encoding= "UTF-8" ?> 2 < c3p0-config> 3 <!-- 默认配置,c3p0框架默认加载这段默认配置 --> 4 < default-config> 5 <!-- 配置JDBC 四个基本属性 --> 6 < property name ="driverClass" > com.mysql.jdbc.Driver</ property > 7 < property name ="jdbcUrl" > jdbc:mysql:///数据库名</ property > 8 < property name ="user" > 数据库用户名</ property > 9 < property name ="password" > 数据库密码</ property > 10 </ default-config> <!-- This app is massive! --> 11 </ c3p0-config>



1 package cn.utils;
2
3 import java.sql.Connection;
4 import java.sql.SQLException;
5
6 import javax.sql.DataSource;
7
8 import com.mchange.v2.c3p0.ComboPooledDataSource;
9
10 public class JDBCUtils {
11
12 // 获得c3p0连接池对象
13 private static ComboPooledDataSource ds = new ComboPooledDataSource();
14
15 /**
16 * 获得数据库连接对象
17 *
18 * @return
19 * @throws SQLException
20 */
21 public static Connection getConnection() throws SQLException {
22 return ds.getConnection();
23 }
24
25 /**
26 * 获得c3p0连接池对象
27 * @return
28 */
29 public static DataSource getDataSource() {
30 return ds;
31 }
32 }


1 drop database if exists jdbc; 2 CREATE DATABASE IF NOT EXISTS jdbc; 3 USE jdbc; 4 5 drop table if exists user ; 6 CREATE TABLE IF NOT EXISTS `user ` ( 7 `id` int(11) NOT NULL AUTO_INCREMENT, 8 ` name` varchar(50) DEFAULT NULL , 9 `pwd` varchar(50) DEFAULT NULL , 10 PRIMARY KEY (`id`) 11 ) ; 12 #数据初始化 13 insert into user values (null ,'zhangsan' ,'123456' ); 14 insert into user values (null ,'lisi' ,'123456' );


1 //需求:向user表插入一条数据
2
3 @Test
4
5 public void test1(){
6
7 //第一步:创建queryRunner对象,用来操作sql语句
8
9 QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
10
11 //第二步:创建sql语句
12
13 String sql = "insert into user values(null,?,?)";
14
15 //第三步:执行sql语句,params:是sql语句的参数
16
17 //注意,给sql语句设置参数的时候,按照user表中字段的顺序
18
19 try {
20
21 int update = qr.update(sql, "狗蛋","123456");
22
23 System.out.println(update);
24
25 } catch (SQLException e) {
26
27 e.printStackTrace();
28
29 }
30
31 }
32
33 //需求:修改id==7的数据
34
35 @Test
36
37 public void test2(){
38
39 //第一步:创建queryRunner对象,用来操作sql语句
40
41 QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
42
43 //第二步:创建sql语句
44
45 String sql = "update user set name = ? where id = ?";
46
47 //第三步:执行sql语句,params:是sql语句的参数
48
49 //注意,给sql语句设置参数的时候,按照user表中字段的顺序
50
51 try {
52
53 int update = qr.update(sql, "柳岩",7);
54
55 System.out.println(update);
56
57 } catch (SQLException e) {
58
59 e.printStackTrace();
60
61 }
62
63 }
64
65 //需求:删除id==7的数据
66
67 @Test
68
69 public void test3(){
70
71 //第一步:创建queryRunner对象,用来操作sql语句
72
73 QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
74
75 //第二步:创建sql语句
76
77 String sql = "delete from user where id = ?";
78
79 //第三步:执行sql语句,params:是sql语句的参数
80
81 //注意,给sql语句设置参数的时候,按照user表中字段的顺序
82
83 try {
84
85 int update = qr.update(sql, 7);
86
87 System.out.println(update);
88
89 } catch (SQLException e) {
90
91 e.printStackTrace();
92
93 }
94
95 }
96


1 package cn.handler;
2
3 import java.sql.ResultSet;
4 import java.sql.SQLException;
5 import java.util.ArrayList;
6 import java.util.List;
7
8 import org.apache.commons.dbutils.ResultSetHandler;
9
10 import cn.itcast.domain.User;
11 // ResultSetHandler<T>,<T>表示封装结果的类型
12 //MyHandler 是自定义的ResultSetHandler封装结果集策略对象
13 public class MyHandler implements ResultSetHandler<List<User>>{
14
15 @Override
16 public List<User> handle(ResultSet rs) throws SQLException {
17 // 封装数据,数据从 Resultset 中获取
18 List<User> list = new ArrayList<User>();
19 while(rs.next()){
20 User u = new User();
21 u.setId(rs.getInt( "id"));
22 u.setName(rs.getString( "name"));
23 u.setPwd(rs.getString( "pwd"));
24
25 list.add(u);
26 }
27 return list;
28 }
29
30 }
31


1 //需求:获取user表中所有的数据
2
3 @Test
4
5 public void test4(){
6
7 //第一步:创建queryRunner对象,用来操作sql语句
8
9 QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
10
11 //第二步:创建sql语句
12
13 String sql = "select * from user";
14
15 //第三步:执行sql语句,params:是sql语句的参数
16
17 //注意,给sql语句设置参数的时候,按照user表中字段的顺序
18
19 try {
20
21 List<User> list = qr.query(sql, new MyHandler());
22
23 System.out.println(list);
24
25 } catch (SQLException e) {
26
27 e.printStackTrace();
28
29 }
30
31 }


1 //需求:测试BeanHandler策略
2
3 //BeanHandler:将查询结果的第一行数据,封装到user对象
4
5 @Test
6
7 public void test7(){
8
9 //第一步:创建queryRunner对象,用来操作sql语句
10
11 QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
12
13 //第二步:创建sql语句
14
15 String sql = "select * from user";
16
17 //第三步:执行sql语句,params:是sql语句的参数
18
19 //注意,给sql语句设置参数的时候,按照user表中字段的顺序
20
21 try {
22
23 User user = qr.query(sql, new BeanHandler<User>(User.class));
24
25 System.out.println(user);
26
27 } catch (SQLException e) {
28
29 e.printStackTrace();
30
31 }
32
33 }


1 //需求:测试BeanListHandler策略
2
3 //BeanListHandler:将查询结果的每一行封装到user对象,然后,再存入list集合
4
5 @Test
6
7 public void test8(){
8
9 //第一步:创建queryRunner对象,用来操作sql语句
10
11 QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
12
13 //第二步:创建sql语句
14
15 String sql = "select * from user";
16
17 //第三步:执行sql语句,params:是sql语句的参数
18
19 //注意,给sql语句设置参数的时候,按照user表中字段的顺序
20
21 try {
22
23 List<User> list = qr.query(sql, new BeanListHandler<User>(User.class));
24
25 System.out.println(list);
26
27 } catch (SQLException e) {
28
29 e.printStackTrace();
30
31 }
32
33 }
34


1 //需求:测试ScalarHandler策略
2
3 //ScalarHandler:封装类似count、avg、max、min、sum。。。。函数的执行结果
4
5 @Test
6
7 public void test14(){
8
9 //第一步:创建queryRunner对象,用来操作sql语句
10
11 QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
12
13 //第二步:创建sql语句
14
15 String sql = "select count(*) from user";
16
17 //第三步:执行sql语句,params:是sql语句的参数
18
19 //注意,给sql语句设置参数的时候,按照user表中字段的顺序
20
21 try {
22
23 Object object = qr.query(sql, new ScalarHandler());
24
25 System.out.println(object);
26
27 } catch (SQLException e) {
28
29 e.printStackTrace();
30
31 }
32
33 }
ComboPooledDataSource连接mysql的更多相关文章
- jsp-3 简单的servlet连接mysql数据库 使用mvc的登录注册
简单的servlet连接mysql数据库 使用mvc的登录注册 commons-dbutils-1.6 mysql-connector-java-5.1.40-bin c3p0-0.9.5.2 mch ...
- IDEA用Maven连接MySQL的jdbc驱动,并操作数据库
1.在IDEA里创建Maven项目 1.1.点击Create New Project 1.2.选择Maven,JDK这里用的是1.8,点击Next 1.3.填入“组织名”.“项目名”,版本是默认 ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- 【初学python】使用python连接mysql数据查询结果并显示
因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...
- Node.js Express连接mysql完整的登陆注册系统(windows)
windows学习环境: node 版本: v0.10.35 express版本:4.10.0 mysql版本:5.6.21-log 第一部分:安装node .Express(win8系统 需要&qu ...
- PDO连接mysql数据库
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...
- 使用ABP EntityFramework连接MySQL数据库
ASP.NET Boilerplate(简称ABP)是在.Net平台下一个很流行的DDD框架,该框架已经为我们提供了大量的函数,非常方便与搭建企业应用. 关于这个框架的介绍我就不多说,有兴趣的可以参见 ...
- jmeter之连接mysql和SQL Server配置
下载jdbc驱动 在使用jmeter做性能或自动化测试的时候,往往需要直接对数据库施加压力,或者某些参数只能从数据库获取,这时候就必须使用jmeter连接数据库. 1.下载对应的驱动包 mysql驱动 ...
- Windows操作系统下远程连接MySQL数据库
用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...
随机推荐
- delphi对ZIP解压
Delphi 对GZIP解压 作者:admin 来源:未知 日期:2010/5/9 13:08:46 人气:获取失败 标签: QQ空间新浪微博腾讯微博腾讯朋友QQ收藏百度空间百度贴吧更多0 呵呵,终于 ...
- simplecheck
环境:win10 工具:jadx .夜神模拟器.pycharm 下载好了之后加载到模拟器 输入正确的flag验证 加载到jadx.查看MainAtivity if语句进行验证是否正确,如果正确就输出y ...
- 清北学堂模拟赛2 T2 ball
题目大意: 多组数据,每组给定n,m,表示将n个小球放进m个箱子,每个小球均有两个箱子(可能相同)可放,求所有小球均放好的方案mod998244353的总数. 思路: 算是我和题解思路肥肠相近的一道题 ...
- java不要登录发送邮件noReply
最近在工作中遇到一个问题: 客户需要让我们的系统给他们发邮件,但是不给我们提供用户密码. 这样就导致一个问题,即,一般我们使用的都是smtp方式发邮件,发邮件的时候必须登录,虽然可以修改发件人的邮箱名 ...
- Saul's Blog
2019Falg完成情况 - 脱贫脱单不脱发(已完成) - 买辆帕拉梅拉 (已完成) - 不再是个蒟蒻(已完成) - 来一场说走就走的旅行(已完成) - 停止口嗨(未完成) ᑋᵉᑊᑊᵒ ᵕ̈ ₂₀₂₀ ...
- 07.Delphi接口的生命周期
在Delphi的接口中,是不需要释放的,调用完之后,接口的生命周期就结束了,如下面的例子 unit mtReaper; interface type // 定义一个接口 IBase = interfa ...
- leetcode1162 As Far from Land as Possible
""" Given an N x N grid containing only values and , represents water and represents ...
- lpwizard 生成的 allegro 封装中 .psx 文件使用方法。
lpwizard 有时候生成 allegro 封装的时候会生成 .psx 文件,这个文件其实是脚本文件,用于某些特殊形状焊盘的处理. 具体的使用方法如下: 在Allegro中,选择 File > ...
- 史无前例!一季度Facebook移除22亿假账号
导读 北京时间5月26日上午消息,Facebook表示平台在第一季度移除了22亿虚假账号.这一创纪录的数据显示了这家公司正在与大量试图破坏全球最大社交网络真实性的负面因素进行斗争. 北京时间5月26日 ...
- Visual Studio Code 断点调试配置方法(请按我的步骤 一定可以做到)
1 visual studio code 的 extentions 里安装插件 debugger for chrome2 devtool: 'eval-source-map', cacheBustin ...