抽取basedao类

master
丁业林-17050417 3 years ago
parent 5634c56f9a
commit fced6a0cdc

@ -1,18 +1,26 @@
package com.msb.dao; package com.msb.dao;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.sql.Connection; import java.sql.*;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public abstract class BaseDao { public abstract class BaseDao {
public List baseQuery(Connection connection, Class clazz, String sql, Object ... args) { public static String driver = "com.mysql.cj.jdbc.Driver";
public static String url = "jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
public static String user = "root";
public static String password = "Fnst1234";
public List baseQuery(Class clazz, String sql, Object ... args) {
Connection connection = null;
List list = new ArrayList(); List list = new ArrayList();
PreparedStatement statement = null; PreparedStatement statement = null;
try { try {
Class.forName(driver);
connection = DriverManager.getConnection(url, user, password);
statement = connection.prepareStatement(sql); statement = connection.prepareStatement(sql);
for (int i = 0; i < args.length; i++) { for (int i = 0; i < args.length; i++) {
statement.setObject(i + 1, args[i]); statement.setObject(i + 1, args[i]);
@ -38,15 +46,31 @@ public abstract class BaseDao {
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
} }
try {
if (connection != null) {
connection.close();
}
}
catch (SQLException e) {
e.printStackTrace();
}
} }
return list; return list;
} }
public int baseUpdate(Connection connection, String sql,Object ... args){ public int baseUpdate(String sql,Object ... args) {
Connection connection = null;
PreparedStatement preparedStatement=null; PreparedStatement preparedStatement=null;
int rows=0; int rows=0;
try{ try{
// 选择数据库
Class.forName(driver);
// 建立连接
connection = DriverManager.getConnection(url, user, password);
preparedStatement = connection.prepareStatement(sql); preparedStatement = connection.prepareStatement(sql);
//设置参数 //设置参数
for (int i = 0; i <args.length ; i++) { for (int i = 0; i <args.length ; i++) {
@ -65,6 +89,15 @@ public abstract class BaseDao {
e.printStackTrace(); e.printStackTrace();
} }
} }
try {
if (connection != null) {
connection.close();
}
}
catch (SQLException e) {
e.printStackTrace();
}
} }
return rows; return rows;
} }

@ -4,48 +4,13 @@ import com.msb.bean.Dept;
import com.msb.dao.BaseDao; import com.msb.dao.BaseDao;
import com.msb.dao.DeptDao; import com.msb.dao.DeptDao;
import java.sql.*;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class DeptDaoImp extends BaseDao implements DeptDao { public class DeptDaoImp extends BaseDao implements DeptDao {
public static String driver = "com.mysql.cj.jdbc.Driver";
public static String url = "jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
public static String user = "root";
public static String password = "Fnst1234";
@Override @Override
public List<Dept> findAll() { public List<Dept> findAll() {
Connection connection = null; String sql = "select * from dept";
return baseQuery(Dept.class, sql);
List<Dept> list =null;
try {
// 选择数据库
Class.forName(driver);
// 建立连接
connection = DriverManager.getConnection(url, user, password);
// 执行sql
String sql = "select * from dept";
list = baseQuery(connection, Dept.class, sql);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (connection != null) {
connection.close();
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
return list;
} }
@Override @Override

@ -4,81 +4,19 @@ import com.msb.bean.Emp;
import com.msb.dao.BaseDao; import com.msb.dao.BaseDao;
import com.msb.dao.EmpDao; import com.msb.dao.EmpDao;
import java.sql.*;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class EmpDaoImp extends BaseDao implements EmpDao { public class EmpDaoImp extends BaseDao implements EmpDao {
public static String driver = "com.mysql.cj.jdbc.Driver";
public static String url = "jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
public static String user = "root";
public static String password = "Fnst1234";
@Override @Override
public List<Emp> findAll() { public List<Emp> findAll() {
Connection connection = null; String sql = "select * from emp";
return baseQuery(Emp.class, sql);
List<Emp> list =null;
try {
// 选择数据库
Class.forName(driver);
// 建立连接
connection = DriverManager.getConnection(url, user, password);
// 执行sql
String sql = "select * from emp";
list = baseQuery(connection, Emp.class, sql);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (connection != null) {
connection.close();
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
return list;
} }
@Override @Override
public int deleteByEmpno(int empno) { public int deleteByEmpno(int empno) {
Connection connection = null; String sql = "delete from emp where empno = ?";
return baseUpdate(sql, empno);
int rows = 0;
try {
// 选择数据库
Class.forName(driver);
// 建立连接
connection = DriverManager.getConnection(url, user, password);
// 执行sql
String sql = "delete from emp where empno = ?";
rows = baseUpdate(connection, sql, empno);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (connection != null) {
connection.close();
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
return rows;
} }
@Override @Override
@ -88,34 +26,7 @@ public class EmpDaoImp extends BaseDao implements EmpDao {
@Override @Override
public int addEmp(Emp emp) { public int addEmp(Emp emp) {
Connection connection = null; String sql = "insert into emp values(?,?,?,?,?,?,?,?)";
return baseUpdate(sql, emp.getEmpno(), emp.getEname(), emp.getJob(),emp.getMgr(),emp.getHiredate(),emp.getSal(),emp.getComm(),emp.getDeptno());
int rows = 0;
try {
// 选择数据库
Class.forName(driver);
// 建立连接
connection = DriverManager.getConnection(url, user, password);
// 执行sql
String sql = "insert into emp values(?,?,?,?,?,?,?,?)";
rows = baseUpdate(connection, sql, emp.getEmpno(), emp.getEname(), emp.getJob(),emp.getMgr(),emp.getHiredate(),emp.getSal(),emp.getComm(),emp.getDeptno());
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (connection != null) {
connection.close();
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
return rows;
} }
} }

Loading…
Cancel
Save