java学习笔记—第三方数据库连接池包1(29)

第一步:导入dbcp包

第二步:通过核心类连接数据

BasicDataSource它是javax.sql.DataSrouce的子类。

一个工具类:BasicDataSourceFactory。



手工通过代码连接数据库:

    BasicDataSource ds = new BasicDataSource();

       //设置driver

       ds.setDriverClassName("com.mysql.jdbc.Driver");

       //设置url

       ds.setUrl("jdbc:mysql:///db909?characterEncoding=UTf8");

       ds.setPassword("1234");

       ds.setUsername("root");

       ds.setMaxActive(5) ;//设置最多有几个连接

       ds.setInitialSize(2);//设置在开始时创建几个连接  手工连接,不建议这么做。

第三步:创建一个资源文件

在dbcp中一个类专门用于读取资源文件的:

BasicDataSourceFactory

#以下所有属性,都来自于BaiscDataSource的setXxxx//增加一个配置文件jdbc.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///db909
username=root
password=1234
maxActive=3

Properties p = new Properties();
        p.load(DbcpPool.class.getResourceAsStream("jdbc.properties"));
        DataSource ds =
                new BasicDataSourceFactory().createDataSource(p) ;

第四步、使用连接池

在一个项目中,就只能拥有一个DataSource的实例。在这个dataqSource3中有多个Connectioin。

声明一个工厂类,创建维护唯一的一个DataSource

package cn.itcast.utils;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class DataSourceUtils {
    private DataSourceUtils(){}
    private static DataSource ds;
    static{
        try{
            Properties p =
                    new Properties();
            p.load(DataSourceUtils
.class.getClassLoader()
.getResourceAsStream("jdbc.properties"));
            ds =
                    new BasicDataSourceFactory().createDataSource(p);
        }catch(Exception e){}
    }
    //返回一个唯一的连接
    public static Connection getCon(){
        Connection con = null;
        try {
            con = ds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return con;
    }
    //提供一个方法返回DataSource
    public static DataSource getDs(){
        return ds;
    }
}
时间: 2024-08-25 19:50:28

java学习笔记—第三方数据库连接池包1(29)的相关文章

【转】JDBC学习笔记(8)——数据库连接池(dbcp&C3P0)

转自:http://www.cnblogs.com/ysw-go/ JDBC数据库连接池的必要性 一.在使用开发基于数据库的web程序时,传统的模式基本是按一下步骤: 1)在主程序(如servlet/beans)中建立数据库连接 2)进行sql操作 3)断开数据库连接 二.这种模式开发,存在的问题: 1)普通的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载进内存中,再验证用户名和密码(得花费0.05s~1s的时间).需要数据库连接

java学习笔记—c3p0连接池与元数据分析(42)

第一步:导入c3p0包 第二步:在classpath目录下,创建一个c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- 默认配置,只可以出现一次 --> <default-config> <!-- 连接超时设置30秒 --> <property name="checkoutTimeout"

java学习笔记:1205班包一*:尚硅谷的培训模式颠覆了培训行业

来尚硅谷北京java培训也将近有四个月了,感慨颇多,要说的话太多太多了,有的可以用文字来表达出来,但是有的却不能,能够表达出来的,我尽力要说,表达不出的,就用身心去体会,因为尚硅谷给我的感受太不一样了.首先要说明的是,本人才疏学浅,所写内容不乏有病句之类的错误,还请老师们海涵,在这里先谢谢了. 带着疑问还有猜忌,我来到这个陌生的城市--北京,为的是对自己命运的抗争,与其说是改变自己的命运,不如说实现自己小小的梦想.社会很乱,不过从来到现在,至少我看到了,就是,尚硅谷不是忽悠人的,而是实打实的做事

JAVA学习笔记 -- 把资源文件打包到jar包

初学GUI,用Eclipse导出jar包,设定的最小化图标不能显示(hello.png文件放在项目的根目录下).代码如下: import javax.swing.JFrame; import java.awt.Toolkit; import java.awt.Image; import java.net.URL; public class GUITest { public static void main(String[] args) { JFrame frame = new JFrame();

java学习笔记14--多线程编程基础1

本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为一个进程,例如:用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程 进程要占用相当一部分处理器时间和内存资源 进程具有独立的内存空间 通信很不方便,编程模型比较复杂 多线程 一个程序中多段代码同时并发执行,称为多线程,线程比进程开销小,协作和数据交换容易

在Java中开源的数据库连接池

在Java中开源的数据库连接池有以下几种 : 1, C3P0 C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象. https://github.com/swaldman/c3p0 2,Proxool 这是一个Java SQL Driver驱动程序,提供了对你选择的其它类型的驱动程序的连接池封装.可以非常简单的移植到现存的代码中.完全可配

Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver

此文主要讲述在初学 Java 时,常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-1-31 10:46:48,请知悉. 所需的 jar 包下载链接为:http://yunpan.cn/cKEWbBntAjtKy  访问密码 bd58 以下为初学 Java 常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码,敬请参阅! MyS

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

java学习笔记(三)java中的修饰符abstract、static与final

一.四种访问级别的访问范围 访问级别 访问修饰符 同类 同包 子类 不同的包 公开 public 受保护 protected 默认 没有访问修饰符 私有的 private 二.使用abstract修饰符需要遵守的语法规则 1.抽象类中可以没有抽象方法,但是包含抽象方法的类必须定义为抽象类,即用abstract修饰: 2.抽象类跟抽象方法不能被final修饰符修饰: 3.抽象类中可以有非抽象方法,因为继承抽象类的子类必须重写父类中所有的抽象方法,因此抽象类中不能有抽象构造方法和抽象静态方法: 4.