JavaEE:JDBC连接池用法

说明:

也叫数据源,实现了DataSoruce接口。

一、DBCP使用:

依赖jia包:commons-dbcp2-x.x.x.jar、commons-logging-x.x.jar、commons-pool2-x.x.x.jar

1.创建DBCP配置文件,在"工程/WebContent/WEB-INF/config/dbcpconfig.properties"中增加:

#连接设置
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC
username=root
password=root

#初始化连接数
initialSize=10
#最大连接数
maxActive=50
#最大空闲连接数
maxIdle=20
#最小空闲连接数
minIdle=5
#超时等待时间,毫秒为单位
maxWait=60000
connectionProperties=useUnicode=true;characterEncoding=utf-8
#指定自动提交
defaultAutoCommit=true
#指定事务级别
defaultTransactionIsolation=READ_UNCOMMITTED

2.获取DBCP创建的Connection:

/**
* 获取DBCP创建的Connection
*/
public Connection getDBCPConnection(ServletContext context) throws Exception {
    //1.获取DBCP配置文件路经
    String fileName = "dbcpconfig.properties";
    String filePath = context.getRealPath("WEB-INF/config/" + fileName);
		
    //2.加载DBCP配置文件
    Properties prop = new Properties();
    prop.load(new FileInputStream(filePath));
		
    //3.创建DataSource对象
    BasicDataSourceFactory factory = new BasicDataSourceFactory();
    DataSource ds = factory.createDataSource(prop);// 得到数据源对象
		
    //4.返回Connection
    Connection conn = ds.getConnection();
    return conn;
}

3.拿到Connection后,进行增删改查操作,和JDBC操作一样。

二、C3P0使用:

依赖jia包:c3p0-x.x.x.x.jar、mchange-commons-java-x.x.x.jar

1.创建C3P0配置文件,在"工程/src/c3p0-config.xml"中增加:

<c3p0-config>
    <default-config>
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC</property>
        <property name="user">root</property>
        <property name="password">root</property>
		
        <property name="initialPoolSize">10</property>
        <property name="maxIdleTime">30</property>
        <property name="maxPoolSize">100</property>
        <property name="minPoolSize">10</property>
        <property name="maxStatements">200</property>
    </default-config>
</c3p0-config>

2.获取C3P0创建的Connection:

/**
* 获取C3P0创建的Connection
*/
public Connection getC3P0Connection(ServletContext context) throws Exception {
    // 1.自动加载DBCP配置文件c3p0-config.xml,此文件要放在src目录下,默认会找xml中的default-config节点
    ComboPooledDataSource ds = new ComboPooledDataSource();

    // 2.返回Connection
    Connection conn = ds.getConnection();
    return conn;
}

3.拿到Connection后,进行增删改查操作,和JDBC操作一样。


三、Tomcat的连接池:
1.此种配置下,驱动jar文件需放置在tomcat的lib下:
在WebRoot/META-INF/建军一个context.xml文件,写如下代码:

<Context>
    <Resource name="jdbc/任意名称a"  //为了让程序可以拿到这个配置文件
        auth="Container"
        type="javax.sql.DataSource"
        username="数据库用户名"
        password="数据库密码"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/数据库名"
        maxActive="8"
        maxIdle="4"/>
</Context>

2.用JNDI(Java Naming and Directory Interface)技术拿到Tomcat的连接池:
在javax.naming包下,其核心API为Context,它代表JNDI容器,其lookup方法为检索容器中对应名称的对象。

// 1.JNDI初始化
Context initCtx = new InitialContext(); //jndi初始化
Context envCtx = (Context) initCtx.lookup("java:comp/env");//得到tomcat中的JNDI容器

// 2.获取DataSource,context.xml中配置的数据库连接池
DataSource ds = (DataSource) envCtx.lookup("jdbc/任意名称a");

// 3.返回Connection
ds.getConnection();

3.拿到Connection后,进行增删改查操作,和JDBC操作一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下步骤来使用JDBC连接数据库并验证数据: 1. 加载数据库驱动程序:在Java代码中使用Class.forName()方法来加载数据库驱动程序。例如,如果您使用的是MySQL数据库,则可以使用以下代码加载驱动程序: ``` Class.forName("com.mysql.jdbc.Driver"); ``` 2. 建立数据库连接:使用DriverManager类的getConnection()方法来建立数据库连接。例如,如果您使用的是MySQL数据库,则可以使用以下代码建立数据库连接: ``` String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "myuser"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password); ``` 3. 创建Statement对象:使用Connection对象的createStatement()方法来创建Statement对象。例如,可以使用以下代码创建Statement对象: ``` Statement stmt = conn.createStatement(); ``` 4. 执行SQL查询:使用Statement对象的executeQuery()方法来执行SQL查询语句。例如,可以使用以下代码来执行一个查询,并将结果存储在ResultSet对象中: ``` String sql = "SELECT * FROM mytable WHERE id = 1"; ResultSet rs = stmt.executeQuery(sql); ``` 5. 处理结果集:使用ResultSet对象的next()方法来遍历结果集,并使用getXXX()方法来获取每个结果行中的数据。例如,可以使用以下代码来遍历结果集并将结果输出到控制台: ``` while(rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); } ``` 6. 关闭连接和Statement对象:使用Connection对象的close()方法来关闭连接,使用Statement对象的close()方法来关闭Statement对象。例如,可以使用以下代码来关闭连接和Statement对象: ``` rs.close(); stmt.close(); conn.close(); ``` 通过以上步骤,您可以使用JDBC连接数据库并验证数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值