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数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...
随机推荐
- R 《回归分析与线性统计模型》page140,5.1
rm(list = ls()) library(car) library(MASS) library(openxlsx) A = read.xlsx("data140.xlsx") ...
- Day6 - A - HH的项链 HYSBZ - 1878
------------恢复内容开始------------ HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义.H ...
- putty Linux 自动补全
用putty连接Ubuntu16.04后,输入命令后按tab键,不自动补全,对上下键无历史命令,$符号顶格显示,无用户名.主机名, 这是由于默认用的sh,可以直接调用bash,进入bash:
- JSON数组序列化C#方法
/// <summary> /// dataTable转换成Json格式 JSON对应关系 三层数组 /// </summary> /// <param name=&qu ...
- springboot - 返回xml error 从自定义的 ErrorController
1.概览 2.在<springboot - 返回JSON error 从自定义的 ErrorController>基础上,做如下调整: 1).新增Attribute类和Error类 pac ...
- 【剑指Offer】面试题32 - I. 从上到下打印二叉树
题目 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3 ...
- POJ 1458:Common Subsequence
Common Subsequence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 41957 Accepted: 16 ...
- 福州大学2020年春软工实践W班第二次作业
作业描述 这个作业属于哪个课程 福州大学2020年春软工实践W班 这个作业要求在哪里 寒假作业(2/2) 这个作业的目标 开发一个疫情统计程序 作业正文 福州大学2020年春软工实践W班第二次作业 其 ...
- CentOs 后台运行jar
1.启动jar包,后台运行 nohup java -jar xxxx.jar & 2.结束运行 查出正在运行的进程 ps -ef | grep java 杀掉进程 kill pid 上面橙色字 ...
- <强化学习>无模型下计算给定策略对应的价值函数,Model free Prediction,评估一个给定策略的表现
一.Intro Prediction只是评估给定策略的表现,直白的说它是找 “在环境ENV下,AGENT按照给定的策略pai,AGENT的价值函数”. 这篇blog只介绍三种计算方法,没有涉及到 “求 ...