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. 《Python编程》课程报告 python技术在数据分析中的应用之网络爬虫

      摘要:... 2 1       引言 :... 2 1.1课题研究背景和研究现状... 2 1.1.1课题背景和目的... 3 1.1.2研究现状... 4 1.1.2.1语言... 4 1.1 ...

  2. Excel GET.DOCUMENT说明

    GET.DOCUMENT(type_num, name_text) Type_num    指明信息类型的数.下表列出 type_num 的可能值与对应结果. Type_num        返回 1 ...

  3. 树莓派3 之 安装Mysql服务

    需求 在树莓派上 安装Mysql 服务,并开启远程访问 步骤 安装 mysql server $ sudo apt-get install mysql-server 我以为中间会让我提示输入 数据库r ...

  4. Linux sed命令 以行为单位编辑文本,或替换文本中的文字

    sed -e 4a\newLine testfile 首先查看testfile中的内容如下: $ cat testfile #查看testfile 中的内容 HELLO LINUX! Linux is ...

  5. Django中一个项目使用多个数据库

    在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接. 参考:http://blog.csdn.net/songfree ...

  6. 数据库join操作(MySQL)

    左连接,右连接,内连接 1.原始表:左表user_t,右表user_info 2.执行连接 #LEFT JOIN ; #RIGHT JOIN ; #INNER JOIN ; 2.1左连接:以左边为主 ...

  7. kafka7 探索生产者同步or异步发送消息

    1.生产者:在发送完消息后,收到回执确认. 主要是在SimpleProducer.java中修改了发送消息的2行代码,用到了回调函数,修改如下: //发送消息 ProducerRecord<St ...

  8. 【UML】NO.53.EBook.5.UML.1.013-【UML 大战需求分析】- 组合结构图(Composition Structure Diagram)

    1.0.0 Summary Tittle:[UML]NO.52.EBook.1.UML.1.012-[UML 大战需求分析]- 交互概览图(Interaction Overview Diagram) ...

  9. 家庭记账本之微信小程序(三)

    继上篇注册阶段后,经过查阅资料学习后,以下介绍开发阶段 1.登录微信公众平台就能在菜单“开发”---“基本配置”中看到小程序的AppID了. 小程序的 AppID 相当于小程序平台的一个身份证,后续你 ...

  10. Docker:从引擎和运行框架理解Docker(3)

    Docker是GO语言编写的. 1.Docker发挥的作用: 1.快速.一致.标准化的交付应用.从开发.测试.到部署交付到成产环境都可以使用docker命令处理image到不同的环境 2.部署和扩展: ...