MVC案例之DAO层实现
文章目录
MVC案例之DAO层实现
操作步骤
概述
- 加入C3P0数据源
- C3P0
- 数据库驱动的jar包
- 编写DAO,JdbcUtils工具类和CustomerDAO接口
- 提供CustomerDAO接口的实现类:CustomerDAOJDBCImpl
实际操作
- step1:
导入包
- step2:
在src目录下新建c3p0-config.xml文件,并写入以下代码
<?xml version="1.0" encoding="utf-8"?>
<c3p0-config>
<!-- 命名的配置 -->
<named-config name="mvcapp">
<!-- 连接数据库的4项基本参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/info</property>
<property name="user">root</property>
<property name="password">0025</property>
<!-- 如果池中数据连接不够时一次增长多少个 -->
<property name="acquireIncrement">5</property>
<!-- 初始化连接数 -->
<property name="initialPoolSize">10</property>
<!-- 最小连接数 -->
<property name="minPoolSize">10</property>
<!-- 最大连接数 -->
<property name="maxPoolSize">20</property>
<!-- JDBC的标准参数,用以控制数据源内加载的PrepareStatements数量 -->
<property name="maxStatements">200</property>
<!-- 连接池内单个连接所拥有的最大缓存statements数 -->
<property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config>
数据库的连接要用自己的奥
- step3:
编写JdbdUtils代码,并且编写测试类。
JdbcUtils的代码
package db;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/*
* Jdbc操作的工具类
*/
public class JdbcUtils {
//释放Connection连接
public static void releaseConnection(Connection connecton) {
}
private static DataSource dataSource=null;
static {
dataSource =new ComboPooledDataSource("mvcapp");
}
/*
* 返回数据源的一个Connection对象
*/
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
}
测试类
package test;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import java.sql.Connection;
import java.sql.SQLException;
import db.JdbcUtils;
class JdbcUtilsTest {
@Test
void testGetConnection() throws SQLException {
Connection connection =JdbcUtils.getConnection();;
System.out.println(connection);
}
}
显示连接成功
遇到的问题
- java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
解决方法:
在工程的lib中导入mchange-commons-java-0.2.3.4.jar包,并且记得buildPath奥。
https://blog.csdn.net/swift2010/article/details/78944306
下载的地址如上面的链接。