C3P0数据库Jar包的使用

0.导入数据库相关jar包

commons-dbutils-1.4.jar

c3p0-0.9.1.2.jar

1.配置C3P0-config.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- 数据库连接池 -->
<default-config>
<property name="user">root</property>
<property name="password">admins</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///shop</property>
</default-config>
</c3p0-config>

2.然后写一个DataSourceUtils工具类

package com.shop.utils;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; /**
* 数据库连接工具
*/
public class DataSourceUtils { private static DataSource dataSource = new ComboPooledDataSource(); private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>(); // 直接可以获取一个连接池
public static DataSource getDataSource() {
return dataSource;
} // 获取连接对象
public static Connection getConnection() throws SQLException {
Connection con = tl.get();
if (con == null) {
con = dataSource.getConnection();
tl.set(con);
}
return con;
} // 开启事务
public static void startTransaction() throws SQLException {
Connection con = getConnection();
if (con != null) {
con.setAutoCommit(false);
}
} // 事务回滚
public static void rollback() throws SQLException {
Connection con = getConnection();
if (con != null) {
con.rollback();
}
} // 提交并且关闭资源及从ThreadLocal中释放
public static void commitAndRelease() throws SQLException {
Connection con = getConnection();
if (con != null) {
con.commit(); // 事务提交
con.close();// 关闭资源
tl.remove();// 从线程绑定中移除
}
} // 关闭资源方法
public static void closeConnection() throws SQLException {
Connection con = getConnection();
if (con != null) {
con.close();
}
} public static void closeStatement(Statement st) throws SQLException {
if (st != null) {
st.close();
}
} public static void closeResultSet(ResultSet rs) throws SQLException {
if (rs != null) {
rs.close();
}
} }

3.最后在相关dao中就可以直接使用了

如:查询商品所有分类

//查询商品所有分类
public List<Category> findAllCategory() throws SQLException {
  QueryRunner runner=new QueryRunner(DataSourceUtils.getDataSource());
  String sql="select * from category";
  return runner.query(sql,new BeanListHandler<Category>(Category.class));
}

如:添加商品分类

//添加商品分类
public void saveProductCategory(Category category) throws SQLException{
QueryRunner runner=new QueryRunner(DataSourceUtils.getDataSource());
String sql="insert into category values(?,?)";
runner.update(sql,category.getCid(),category.getCname());
}

这里查询是用query方法,增删改用update方法;

查询需要映射到一个实体类,而增删改往往需要预编译参数

网上商城_数据库jar包的使用的更多相关文章

  1. maven在windows下的安装配置及手动引入oracle数据库jar包

    一.maven的安装配置 注意:在进行如下配置之前,有个前提是你的java的jdk安装配置正确才行 1.首先,下载maven,网址http://maven.apache.org/download.cg ...

  2. 怎么在spring官网上下载spring的jar包, 源代码和文档?

    现在 http://repo.spring.io/release/org/springframework/spring/第一种,简单粗暴直接 1 http://repo.springsource.or ...

  3. Spring框架针对dao层的jdbcTemplate操作crud之delete删除数据库操作 Spring相关Jar包下载

    首先,找齐Spring框架中IoC功能.aop功能.JdbcTemplate功能所需的jar包,当前13个Jar包 1.Spring压缩包中的四个核心JAR包,实现IoC控制反转的根据xml配置文件或 ...

  4. maven的介绍及如何获取jar包

    本文转载自   https://www.cnblogs.com/whgk/p/7112560.html 该篇文章篇幅较长,大概的思路如下 maven的介绍,初步认识,获取jar包的三个关键属性 --& ...

  5. maven 把本地jar包打进本地仓库

    maven 把本地jar包打进本地仓库 1.本地有自己写的项目jar包,但是需要用maven依赖对其进行引用: 2.某个jar包在远程仓库没有,导致pom.xml报错,此时可以从网上单独下载此jar包 ...

  6. IDEA导出jar包后运行报错 找不到或无法加载主类

    开发工具:IDEA16 运行环境:ubuntu 问题:根据网上的Idea导出jar包的方法,将我的项目导出jar包后运行报错:找不到或无法加载主类.   为了找到这个原因,我重新搭建了一个测试例子,在 ...

  7. IDEA修改jar包中class文件后重新生成jar包

    一.背景 最新想要修改rebeyond大佬的冰蝎项目,特地去网上搜索如何修改jar包中的源码再替换回去的方法,但由于现在的一些文章写的太烂,导致走了很多弯路,因此写下这篇快速使用IDEA修改源码并替换 ...

  8. 如何在网上找MySQL数据库的JDBC驱动jar包?

    当我们在开发程序,涉及数据库时,总是需要用到相应的jar包,这不小编就给大家介绍一下如何下载相应的jar包 方法/步骤   1 在百度搜索栏上搜索MySQL 2 选择Downloads 3 选择 Co ...

  9. 在IDEA中用三个jar包链接MongoDB数据库——实现增删改查

    安装Robo 3T连接MongoDB数据库教程:https://blog.csdn.net/baidu_39298625/article/details/98845789 使用Robo 3T操作Mon ...

随机推荐

  1. (转)python 集合,列表,元组,字符串,文件等操作总结

    原文:http://www.cnblogs.com/songqingbo/tag/python%E5%87%BD%E6%95%B0/

  2. net 总数据中取随机几条数据

    List<string> lstSample = new List<string>(); Random rand = new Random(); List<int> ...

  3. C#中正则表达式的构建与匹配

    使用方法 [1]用用命名空间System.Text.RegularExpressions [2]构造正则表达式 在使用正则表达式时,要先构造正则表达式,这就用到了Regex类,其构建方式有两种: 基本 ...

  4. springboot从入门到精通(三)

    再开始第三节之前,先补充一下第二节里出现的小问题,就是springboot的application.properties,我在文件中添加了server.port=9090这个参数,但是启动项目后并未生 ...

  5. Linux mysql 基础操作

    命令  #查看版本 mysql --version   #进入mysql 命令 mysql -u root -p mysql -u root@localhost  (没有密码的情况)   #创建数据库 ...

  6. gulp 无损压缩图片

    在做项目中,美工有时候会给一些比较大的图片,在做网站的时候,图片太大会影响加载速度.因此,我们需要无损压缩图片. 在尝试过几个压缩图片的方法,发现gulp中的gulp-tinypng-nokey插件是 ...

  7. Sublime Text Emmet插件 : 生成html,css 快捷键

    (输入下面简写,按Tab键可触发效果,或者 ctrl + e) html缩写 输入 !后 按下 ctrl + e : 结果 <!DOCTYPE html><html lang=&qu ...

  8. pc端的企业网站(IT修真院test8)详解1-4

    今天完成的事情:(1,伪元素:before,:after的使用.2.table的使用(collapse的使用)3rgba的高级运用) 今天我主要完成test8-3的页面. header和footer都 ...

  9. ionic3+angular4+cordova 项目实例

    去年年底到现在几个月一直在忙项目,angular已经更新到angular4,ionic也同步更新到ionic3,这几天抽空用ionic3做了个小demo,代码发布到码云, https://gitee. ...

  10. senium

    http://webdriver.googlecode.com 所以CTRL属于Modifier Key,需要这样写: Actions actionObject = new Actions(drive ...