首先在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、后期可以加上数据库连接池配置