1、c3p0相应的架包导入工程中

将以下四个架包导入工程,

  主要有三个架包:c3p0-0.9.5.2.jar

c3p0-oracle-thin-extras-0.9.5.2.jar

mchange-commons-java-0.9.5.2.jar

  记得一定要导入mysql-connector-java-5.1.26-bin.jar架包,这是连接mysql的驱动程序。

2、创建进程池

  主要有三个类:

   C3p0Utils创建连接以及关闭连接;

     DBUtils插入更新等执行语句;

   DBUtil_BO数据库连接对像;

   App测试;

 import com.mchange.v2.c3p0.ComboPooledDataSource;

 import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; /**
* Created by lala on 2017/6/29.
*/ public class C3p0Utils { static org.apache.log4j.Logger logger=org.apache.log4j.Logger.getLogger(C3p0Utils.class.getName()); //通过标识名来创建相应连接池
static ComboPooledDataSource dataSource=new ComboPooledDataSource("mysql");
//从连接池中取用一个连接
public static Connection getConnection(){
try {
String url="jdbc:mysql://localhost:3306/mysql";
//定义连接数据的用户名
String user="root";
//定义连接数据库的密码
String password="";
return dataSource.getConnection(); } catch (Exception e) {
logger.error("Exception in C3p0Utils!", e);
System.out.println("数据库连接出错!"+e);
return null;
}
}
//释放连接回连接池
public static void close(Connection conn, PreparedStatement pst, ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
logger.error("Exception in C3p0Utils!", e);
System.out.println("数据库连接关闭出错!"+e);
}
}
if(pst!=null){
try {
pst.close();
} catch (SQLException e) {
logger.error("Exception in C3p0Utils!", e);
System.out.println("数据库连接关闭出错!"+ e);
}
} if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
logger.error("Exception in C3p0Utils!", e);
System.out.println("数据库连接关闭出错!"+ e);
}
}
} }
DBUtils插入更新等执行语句:
 public class DBUtils {

     static org.apache.log4j.Logger logger=org.apache.log4j.Logger.getLogger(DBUtils.class.getName());

     private static void realseSource(Connection _conn, PreparedStatement _st, ResultSet _rs){
C3p0Utils.close(_conn,_st,_rs);
} public static void realseSource(DBUtil_BO _vo){
if(_vo!=null){
realseSource(_vo.conn, _vo.st, _vo.rs);
}
}
//注意:查询操作完成后,因为还需提取结果集中信息,所以仍保持连接,在结果集使用完后才通过DBUtils.realseSource()手动释放连接
public static void executeQuery(DBUtil_BO vo)
{
try{
vo.rs = vo.st.executeQuery();
}catch (SQLException e){
realseSource(vo); logger.error("SQL语法有误: ",e);
System.out.println("err.user.dao.jdbc"+e);
}
} //而update操作完成后就可以直接释放连接了,所以在方法末尾直接调用了realseSourse()
public static void executeUpdate(DBUtil_BO vo)
{ Connection conn = vo.conn;
PreparedStatement st = vo.st;
try {
st.executeUpdate();
} catch (SQLException e) {
realseSource(conn, st, null);
logger.error(" SQL语法有误: ",e);
System.out.println("err.user.dao.jdbc"+e);
}
realseSource(conn, st,null );
}
}
DBUtil_BO数据库连接对像:
 package org.test.maven;

 import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet; /**
* Created by lala on 2017/6/29.
*/
public class DBUtil_BO { public Connection conn = null;
public PreparedStatement st = null;
public ResultSet rs = null;
public DBUtil_BO() {
super();
} }

Obj方便插入的某一对象(scala)

 package org.test.maven

 /**
* Created by lala on 2017/7/1.
*/
class Obj {
private var usr = -1
private var name = "" def setUsr(usr:Int)={
this.usr=usr
} def setName(name:String)={
this.name=name
}
def getUsr()=this.usr
def getName()=this.name
}

App测试:

 package org.test.maven;

 import java.sql.SQLException;
import org.apache.log4j.Logger; /**
* Hello world!
*
*/
public class App
{ private static Logger logger = Logger.getLogger(App.class); public static void main( String[] args ) throws SQLException {
System.out.println( "Hello World!" );
DBUtil_BO dbBo = new DBUtil_BO();
dbBo.conn=C3p0Utils.getConnection();//取用一个连接
String sql = "select id from usr where usr_name = ? ";
try{
dbBo.st=dbBo.conn.prepareStatement(sql);//预处理sql语句
}catch (SQLException e){
logger.error("查询预处理出错!",e);
System.out.println("查询预处理出错!"+e);
}
Obj ob=new Obj();
ob.setName("bgngh");
System.out.println(ob.getName());
dbBo.st.setString(1,ob.getName());
DBUtils.executeQuery(dbBo);
String name = null;
//从dbBo类提取操作结果
int id = 0;
if (dbBo.rs.next()) {
try{ id = dbBo.rs.getInt("id");
id = 5;
}catch(SQLException e){
logger.error("查询返回结果出错!",e);
} }
System.out.println(id);
//结果集遍历完了,手动释放连接回连接池
DBUtils.realseSource(dbBo);
}
}

spark streaming将处理结果存入mysql中(使用c3p0连接池)的更多相关文章

  1. Spring框架中 配置c3p0连接池 完成对数据库的访问

    开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...

  2. Hibernate的配置中,c3p0连接池相关配置

    一.配置c3p0 1.导入 hibernate-c3po连接池包,Maven地址是:http://mvnrepository.com/artifact/org.hibernate/hibernate- ...

  3. Spring框架中 配置c3p0连接池

    开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...

  4. Java中使用C3P0连接池

    先看官网给的范例: import java.sql.*; import javax.naming.*; import javax.sql.DataSource; import com.mchange. ...

  5. C3P0连接池在hibernate和spring中的配置

    首先为什么要使用连接池及为什么要选择C3P0连接池,这里就不多说了,目前C3P0连接池还是比较方便.比较稳定的连接池,能与spring.hibernate等开源框架进行整合. 一.hibernate中 ...

  6. Mysql 中的SSL 连接

    Mysql 中的SSL 连接 以下来自网络参考和自己测试整理,没有查找相关资料.若有错误之处,欢迎指正. 当前的Mysql 客户端版本基本都不太能支持 caching_sha2_password 认证 ...

  7. Spring中常用的连接池配置

    首先,我们准备Jdbc属性文件 jdbc.properties,用于保存连接数据库的信息,利于我们在配置文件中的使用 jdbc.driver=com.mysql.jdbc.Driver jdbc.ur ...

  8. JAVA中事物以及连接池

    一.事物 什么是事物? 事务,一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元.这些单元要么全都成功,要么全都不成功. 做一件事情,这个一件事情中有多个 ...

  9. 网络协议 finally{ return问题 注入问题 jdbc注册驱动问题 PreparedStatement 连接池目的 1.2.1DBCP连接池 C3P0连接池 MYSQL两种方式进行实物管理 JDBC事务 DBUtils事务 ThreadLocal 事务特性 并发访问 隔离级别

    1.1.1 API详解:注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 原因有2个: >导致驱动被注册2 ...

随机推荐

  1. IDEA创建Spring+SpringMVC+MyBatis(SSM)极简入门(上)

    1.  创建项目 2.  添加Controller 3.  pom+ properties+swager 4.  添加Mysql+ Mybatis 5.  调用Mybatis生成Mapper 1.创建 ...

  2. Golang自定义包导入

    # 文件Tree project -/bin -/pkg -/src -main.go -/test -test1.go -test2.go main.go package main import ( ...

  3. PHP实现数组中每个字符出现次数最多的,并且如果两个字符出现相同,则在前面的先输出功能

    $arr = ['a', 'b', 'a', 'e', 'g', 'g', 'a']; $count_per_values = array_count_values($arr); $res = []; ...

  4. 《nginx - 基本操作/配置》

    一:基本操作 - 开启 Nginx nginx -c nginx.conf -  Nginx 的平滑重启 kill -HUP nginx主进程号(平滑重启) -  停止 Nginx * Kill -Q ...

  5. python框架之Django(11)-中间件

    介绍 在django中,中间件其实就是一个类,在一个请求到来和这个请求结束之前,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings模块中,有一个 M ...

  6. JavaScript基础理解及技巧(入门)

    1.java和JavaScript的区别: (1)js只需要解释就可以执行了,而java需要先编译成字节码文.JavaScript的运行只需要浏览器的支持,而java的运行需要JVM(java虚拟机) ...

  7. 九、使用多线程——NSThread,GCD和NSOperation

    概述 早上起床,你先打开洗衣机,然后用热水把泡面泡上,接着打开电脑开启一天的码农生活.其中“洗衣服”.“泡泡面”和“码代码”3个任务(线程)同时进行,这就是多线程.网上有许多关于多线程的经典解释,此处 ...

  8. safari无法调试iphone提示“无可检查的应用程序”的解决方法

    iphone上打开safari,随便访问一个网站,mac上通过Safari的开发,我的iphone是可以看到的.如果打开APP,就提示“无可检查的应用程序”. 解决方法 使用XCode运行我们的App ...

  9. linux----------centos6.4安装完了以后敲ifconfig,没有局域网ip。解决如下

    1.vim /etc/sysconfig/network-scripts/ifcfg-eth0 进入linux然后进入这个文件里面如下: DEVICE=eth0 HWADDR=00:0C:29:92: ...

  10. Eclipse启动报错An internal error occurred during: "Initializing Java Tooling"

    Eclipse启动报错An internal error occurred during: "Initializing Java Tooling" 解决方案: 删除工作空间work ...