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数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...
随机推荐
- MySQL导出数据库和导入数据库
一.导出: 语法:mysqldump --default-character-set=utf8 -u用户名 -p密码 数据库名 -d --add-drop-table > 导出文件名.sql 注 ...
- define可变参数,float数据传输
define可变参数 一般在调试打印Debug信息的时候, 需要可变参数的宏. 从C99开始可以使编译器标准支持可变参数宏(variadic macros), 另外GCC也支持可变参数宏, 但是两种在 ...
- [前端] Vue封装播放器、打包、上传NPM
一.使用icomoon 1.生成和下载图标相关文件 先使用icomoon获取我们要使用的图标,例如播放.暂停.停止.全屏等图标. icomoon网站:https://icomoon.io/app/#/ ...
- 058、Java中定义一个没有参数没有返回值的方法
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- H5页面,百度地图点击事件
需求:用户点击地图的时候获取地址街道,编码等详细信息. 然后看百度API文档,看到了click事件,关键时候还是需要看文档的. 实现 这样子虽然在浏览器的手机模拟器下是没有问题的 但是放在机器上测试的 ...
- 微信浏览器 UA
mozilla/5.0 (linux; android 5.1.1; mi note pro build/lmy47v) applewebkit/537.36 (khtml, like gecko) ...
- OPENCV2.46 与2.4.10以上版本的区别
本人系统环境: CPU:Intel(R)Core(TM) i3-4160 CPU @ 3.60GHz 内存:4G 接两路摄像机,一路海康,一路艾普视达.CPU占有率95%.发现opencv2.4.10 ...
- 3D打印技术的火爆,真的会让传统模具行业没落吗?
当一种新生事物出现时,人们除了赞美它带来的新畅想外,往往还会对"旧事物"贬低几分--各种淘汰观点总是不绝于耳.但可惜的是,新生事物取代旧事物的事儿并不会必然发生.比如,直到现在广播 ...
- NRF52840与NRF52832的性能区别
蓝牙版本的不断更新,大部分客户慢慢都向往着蓝牙5.0.当然对于前不久NORDIC刚出的蓝牙5.0 NRF52840,很多人都还不是很了解.NRF52840可以说是NRF52832的超强升级版,虽然同样 ...
- C++面试常见问题——07容器和迭代器
容器和迭代器 vector.list.deque #include<iostream> #include<vector> #include<deque> #incl ...