当前位置 : 主页 > 编程语言 > java >

maven下DBUtils建立数据库连接,增删改查基础代码

来源:互联网 收集:自由互联 发布时间:2021-06-28
首先在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
首先在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.commons
  
    
  
   commons-dbcp2
  
    
  
   2.1.1
  

 
5、pool

 
    
  
   org.apache.commons
  
    
  
   commons-pool2
  
    
  
   2.4.2
  

 
添加本地仓库地址
 
    
   
   
    abc
    
   
    http://www.baidu.com/repository/public/
    
    
    
     true
     
    
    
    
     true
     
    
  

 
buildpath--Junit,编写数据库连接配置文件
#连接设置
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、后期可以加上数据库连接池配置
网友评论