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数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...
随机推荐
- centos 禁用ip v6
# sysctl -w net.ipv6.conf.all.disable_ipv6=1 # sysctl -w net.ipv6.conf.default.disable_ipv6=1 # s ...
- linux7 安装Docker
Docker:用白话文简单介绍就是一个集装箱,可以将其运行环境及依赖打包,方便各种场合使用.Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机 ...
- 【pwnable.tw】 seethefile
一开始特别懵的一道题. main函数中一共4个功能,openfile.readfile.writefile.closefile. 其中,在最后退出时有一个明显的溢出,是scanf("%s&q ...
- css - flex 定义排列方向
flex-direction定义伸缩项目放置在伸缩容器的排列方向,对应有四个值: (1)row:从左到右或从右到左 (2)row-reverse:与row属性相反 (3)column:从上到下排列 ( ...
- Day 4 -E - Catenyms POJ - 2337
A catenym is a pair of words separated by a period such that the last letter of the first word is th ...
- mysql悲观锁处理赠品库存超卖的情况
处理库存超卖的情况前,先了解下什么是乐观锁和悲观锁,下面的几篇博客已经介绍的比较详细了,我就不在赘述其原理了 [MySQL]悲观锁&乐观锁 对mysql乐观锁.悲观锁.共享锁.排它锁.行锁.表 ...
- GDI4
前几篇我已经向大家介绍了如何使用GDI+来绘图,并做了一个截图的实例,这篇我向大家介绍下如何来做一个类似windows画图的工具.个人认为如果想做一个功能强大的绘图工具,那么单纯掌握GDI还远远不够, ...
- springmv返回JSON数据格式
1.先导入依赖 <!-- springmvc使用@responseBody start--> <dependency> <groupId>com.fasterxml ...
- 编写程序,实现在带头结点的单链表L中删除一个最小值节点的算法。
算法复杂度0(n) #!/usr/bin/env python3 class LNode(object): def __init__(self, elem, next_=None): self.ele ...
- 《方方格子》(WPS版) _v3.6.6.0
<方方格子>(WPS版) 下载地址(b2a7) SHA1:35AE4D99B77613D9E2BAF912477DC74C5C2B8389 版本信息 发行版本 3.6.6.0 ...