首先在pom.xml下组建相关依赖,注意某些报错是因为各组件版本不同导致 1、Junit junit junit 3.8.1 test 2、dbutils commons-dbutils commons-dbutils 1.6 3、MySQL mysql mysql-connector-java 5.1.6 4、common org.apache
1、Junit添加本地仓库地址2、dbutils junit junit3.8.1 test 3、MySQL commons-dbutils commons-dbutils1.6 4、common mysql mysql-connector-java5.1.6 5、pool org.apache.commons commons-dbcp22.1.1 org.apache.commons commons-pool22.4.2
buildpath--Junit,编写数据库连接配置文件abc http://www.baidu.com/repository/public/ true true
#连接设置 driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://databaseurl?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&allowMultiQueries=true username=root password=root #初始化连接 initialSize=100 #最大连接数量 maxActive=50 #最大空闲连接 maxIdle=20 #最小空闲连接 minIdle=5 #超时等待时间以毫秒为单位6000毫秒/1000等于60秒 maxWait=60000 #JDBC驱动建立连接时附带的连接属性,属性的格式必须为这样:[属性名=property;] #注意:"user"与"password"两个属性会被明确地传递,因此这里不需要包含他们。 connectionProperties=useUnicode=true;characterEncoding=utf8 #指定由连接池所创建的连接的自动提交(auto-commit)状态。 defaultAutoCommit=true #driverdefault指定由连接池所创建的连接的只读(read-only)状态。 #如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix) defaultReadOnly= #driverdefault指定由连接池所创建的连接的事务级别(TransactionIsolation)。 #可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED,READ_COMMITTED,REPEATABLE_READ,SERIALIZABLE defaultTransactionIsolation=READ_COMMITTED编写DBUtils数据库连接类
package com;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
public class JdbcUtils {
private static DataSource ds;
private static ThreadLocal
tl = new ThreadLocal
(); //map public static DataSource getDataSource(){ if(ds == null){ try{ Properties prop = new Properties(); InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties"); prop.load(in); ds = BasicDataSourceFactory.createDataSource(prop); }catch (Exception e) { throw new ExceptionInInitializerError(e); } } return ds; } public static Connection getConnection() throws SQLException{ try{ //得到当前线程上绑定的连接 Connection conn = tl.get(); if(conn==null){ //代表线程上没有绑定连接 conn = ds.getConnection(); tl.set(conn); } return conn; }catch (Exception e) { throw new RuntimeException(e); } } }
添加实体类
package com
import java.util.Date;
/**
* 实体类
*/
public class Abc {
private String id; // 主键ID
private String remarks; // 备注
private String createBy; // 创建者
private Date createDate; // 创建日期
private String updateBy; // 更新者
private Date updateDate; // 更新日期
private String delFlag; // 删除标记(0:正常;1:删除;2:审核)
/* 省去getter、setter方法 */
}
编写测试方法和Junit测试方法
1、main方法
public static void main(String[] args) {
TestDbutils td = new TestDbutils();
try {
List
list = td.getAll();
for (Abc abc : list) {
System.out.println(abc.getCreateBy());
}
} catch (Exception e) {
e.printStackTrace();
}
}
2、Junit测试方法
@Test
public void testGetAll() {
TestDbutils td = new TestDbutils();
try {
td.getAll();
} catch (Exception e) {
fail("Not yet implemented");
e.printStackTrace();
}
}
注意事项
1、各依赖版本需要匹配合适,避免出现一些错误 2、数据库连接配置参数和值要出去空格 3、数据库配置文件需要放置在外目录下 4、后期可以加上数据库连接池配置
