TMP文件夹
DBUtil
package tmp;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class DBUtil {
static DataSource dataSource;
static ThreadLocal<Connection>threadLocal;
static {
try {
threadLocal = new ThreadLocal<>();
Properties p = new Properties();
p.load(DBUtil.class.getResourceAsStream("driver.properties"));
dataSource = BasicDataSourceFactory.createDataSource(p);
}catch(Exception e) {
e.printStackTrace();
throw new RuntimeException("DBUtil初始化错误"+e);
}
}
public static Connection getConnection() {
Connection con =threadLocal.get();
if(con ==null) {
try {
con = dataSource.getConnection();
threadLocal.set(con);
}catch(Exception e) {
e.printStackTrace();
throw new RuntimeException("产生数据库连接失败",e);
}
}
return con;
}
public static void Close(Connection con,Statement st,ResultSet rs){
try {
if(rs!=null) {
rs.close();
}
if(st!=null) {
st.close();
}
if(con!=null) {
if(con.getAutoCommit()) {
con.close();
threadLocal.remove();
}
}
}catch(SQLException e) {
e.printStackTrace();
System.out.println("数据库关闭错误:");
}
}
public static void closeTrs(Connection con) {
try {
con.close();
threadLocal.remove();
}catch(Exception e) {
e.printStackTrace();
}
}
TMP
package tmp;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class TMP {
//增删改
public static int update(String sql,Object...args) throws SQLException {
int rs=0;
Connection con = DBUtil.getConnection();
PreparedStatement ps = con.prepareStatement(sql);
if(args!=null) {
for(int i=0;i<args.length;i++) {
ps.setObject(i+1, args[i]);
}
}
ps.executeUpdate();
DBUtil.Close(con, ps, null);
return rs;
}
//查询
public static <T>List<T> Query(String sql,RowMapper<T> rm,Object...args) throws SQLException{
List<T> list = new ArrayList<T>();
Connection con = DBUtil.getConnection();
PreparedStatement ps = con.prepareStatement(sql);
if(args!=null) {
for(int i=0;i<args.length;i++) {
ps.setObject(i+1, args[i]);
}
}
ResultSet rs = ps.executeQuery();
while(rs.next()) {
T t = rm.mapRow(rs);
list.add(t);
}
DBUtil.Close(con, ps, null);
return list;
}
}
driver.properties
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost/abc?&useSSL=false&serverTimezone=UTC
username=root
password=123456
//MySQL版本问题可以更改。
//5.0.X版本连接的驱动地址为:“com.mysql.jdbc.Driver”,而8.0.X版本的更改为:“com.mysql.cj.jdbc.Driver”
//建立连接时url增加了一些参数: 5.0.X版本的url为String url = “jdbc:mysql://localhost:3306/student”
//而8.0.X版本的需要在后面加上一串字母变为:String url = “jdbc:mysql://local:3306/student?//&useSSL=false&serverTimezone=UTC”
RowMapper
package tmp;
import java.sql.ResultSet;
import java.sql.SQLException;
public interface RowMapper <T>{
public T mapRow(ResultSet rs)throws SQLException;
}
test文件夹
Emp
package tmp.test;
public class Emp {
int id;
String name;
String pass;
public Emp(int id, String name, String pass) {
super();
this.id = id;
this.name = name;
this.pass = pass;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
@Override
public String toString() {
return "Emp [id=" + id + ", name=" + name + ", pass=" + pass + "]";
}
}
EmpRow
package tmp.test;
import java.sql.ResultSet;
import java.sql.SQLException;
import tmp.RowMapper;
public class EmpRow implements RowMapper<Emp>{
@Override
public Emp mapRow(ResultSet rs) throws SQLException {
return new Emp(rs.getInt("id"),rs.getString("name"),rs.getString("pass"));
}
}
test
package tmp.test;
import java.sql.SQLException;
import java.util.List;
import tmp.TMP;
public class test {
public static void main(String[] args) {
try {
//TMP.update("insert into login (id,name,pass)values(?,?,?)",4,"admin","admin");
//TMP.update("delete from login where id =?", 3);
List<Emp>list = TMP.Query("Select * from login where id>?", new EmpRow(), 1);
System.out.println(list);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
文件夹图片格式:
最后可以打成JAR包以便以后使用