package com.neusoft.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.neusoft.dao.EmpDao;
import com.neusoft.po.Emp;
import com.neusoft.util.CommonUtil;
import com.neusoft.util.DBUtil;
public class EmpDaoImpl implements EmpDao {
// 实现类
private Connection con = null;
private PreparedStatement pst = null;
private ResultSet rs = null;// 全查询
@Override
public List<Emp>selectEmpAll(){
List<Emp> list = new ArrayList<>();// 查询多行,所以准备容器
String sql ="select * from emp order by empno";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
rs = pst.executeQuery();while(rs.next()){
Emp emp = new Emp();
emp.setEmpno(rs.getInt("empno"));
emp.setEname(rs.getString("ename"));
emp.setJob(rs.getString("job"));
emp.setHireDate(rs.getString("hiredate"));
emp.setSal(rs.getDouble("sal"));
emp.setDeptno(rs.getInt("deptno"));
list.add(emp);}} catch (Exception e){
e.printStackTrace();} finally {
DBUtil.closeAll(rs, pst, con);}return list;}// 根据ID查询,返回受影响的
public Emp selectEmpById(int empno){
Emp emp = null;
String sql ="select * from emp where empno=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setInt(1, empno);
rs = pst.executeQuery();if(rs.next()){
emp = new Emp();
emp.setEmpno(rs.getInt("empno"));
emp.setEname(rs.getString("ename"));
emp.setJob(rs.getString("job"));
emp.setHireDate(rs.getString("hiredate"));
emp.setSal(rs.getDouble("sal"));
emp.setDeptno(rs.getInt("deptno"));}} catch (Exception e){
e.printStackTrace();} finally {
DBUtil.closeAll(rs, pst, con);}return emp;}// 添加,返回受影响的行数
public intinsertEmp(Emp emp){
int result =0;
String sql ="insert into emp values(null,?,?,?,?,?)";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setString(1, emp.getEname());
pst.setString(2, emp.getJob());
pst.setString(3, CommonUtil.getCurDate());// 获取系统日期
pst.setDouble(4, emp.getSal());
pst.setInt(5, emp.getDeptno());
result = pst.executeUpdate();} catch (Exception e){
e.printStackTrace();} finally {
DBUtil.closeAll(null, pst, con);}return result;}// 更新工资和职位
public intupdateEmp(Emp emp){
int result =0;
String sql ="update emp set job=?,sal=? where empno=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setString(1, emp.getJob());
pst.setDouble(2, emp.getSal());
pst.setInt(3, emp.getEmpno());
result = pst.executeUpdate();} catch (Exception e){
e.printStackTrace();} finally {
DBUtil.closeAll(rs, pst, con);}return result;}// 删除
public intdeleteEmpById(int empno){
int result =0;
String sql ="delete from emp where empno=?";
try {
con = DBUtil.getConnection();
pst = con.prepareStatement(sql);
pst.setInt(1, empno);
result = pst.executeUpdate();} catch (Exception e){
e.printStackTrace();} finally {
DBUtil.closeAll(rs, pst, con);}return result;}}
package com.neusoft.dao;
import java.util.List;
import com.neusoft.po.Emp;
public interface EmpDao {
public List<Emp>selectEmpAll();//全查询
public Emp selectEmpById(int empno);//根据主键查询
public intinsertEmp(Emp emp);//添加
public intupdateEmp(Emp emp);//修改
public intdeleteEmpById(int empno);//删除}
package com.neusoft.po;
public class Emp {
// 实体类,和数据库数据一一对应
private Integer empno;
private String ename;
private String job;
private String hireDate;
private Double sal;
private Integer deptno;
@Override
public String toString(){
return this.empno +"\t"+ this.ename +"\t"+ this.job +"\t"+ this.hireDate +"\t"+ this.sal +"\t"+ this.deptno;}
public Integer getEmpno(){
return empno;}
public voidsetEmpno(Integer empno){
this.empno = empno;}
public String getEname(){
return ename;}
public voidsetEname(String ename){
this.ename = ename;}
public String getJob(){
return job;}
public voidsetJob(String job){
this.job = job;}
public String getHireDate(){
return hireDate;}
public voidsetHireDate(String hireDate){
this.hireDate = hireDate;}
public Double getSal(){
return sal;}
public voidsetSal(Double sal){
this.sal = sal;}
public Integer getDeptno(){
return deptno;}
public voidsetDeptno(Integer deptno){
this.deptno = deptno;}}
package com.neusoft.util;
import java.text.SimpleDateFormat;
import java.util.Date;
public class CommonUtil {
// 共通的非JDBC的工具类类// 获取系统日期
public static String getCurDate(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");return sdf.format(new Date());}}
package com.neusoft.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtil {
private static final String URL ="jdbc:mysql://localhost:3306/emp?characterEncoding=utf-8";
private static final String DRIVER ="com.mysql.jdbc.Driver";
private static final String USERNAME ="root";
private static final String PASSWORD ="root";// 获取Connection连接
public static Connection getConnection(){
Connection con = null;
try {
Class.forName(DRIVER);
con = DriverManager.getConnection(URL, USERNAME, PASSWORD);} catch (Exception e){
e.printStackTrace();}return con;}// 关闭资源
public staticvoidcloseAll(ResultSet rs, PreparedStatement pst, Connection con){
try {
if(rs != null){
rs.close();}if(pst != null){
pst.close();}if(con != null){
con.close();}} catch (SQLException e){
e.printStackTrace();}}}
package com.neusoft;
import java.util.List;
import com.neusoft.dao.EmpDao;
import com.neusoft.dao.impl.EmpDaoImpl;
import com.neusoft.po.Emp;
public class Test {
public staticvoidmain(String[] args){
EmpDao dao = new EmpDaoImpl();//全查询/*
List<Emp> list = dao.selectEmpAll();
if(list.size()==0){
System.out.println("没有数据");
}
for(Emp emp : list){
System.out.println(emp);
}
*//*
//根据主键查询
Emp emp = dao.selectEmpById(10);
if(emp!=null){
System.out.println(emp);
}else{
System.out.println("查无此人");
}
*//*
Emp emp = new Emp();
emp.setEname("习大大");
emp.setJob("国家主席");
emp.setSal(9000.32);
emp.setDeptno(10);
int result = dao.insertEmp(emp);
if(result>0){
System.out.println("添加成功");
}else{
System.out.println("添加失败");
}
*//*
Emp emp = new Emp();
emp.setEmpno(75);
emp.setJob("国家主席1");
emp.setSal(9000.33);
int result = dao.updateEmp(emp);
if(result>0){
System.out.println("更新成功");
}else{
System.out.println("更新失败");
}
*/int result = dao.deleteEmpById(75);if(result>0){
System.out.println("删除成功");}else{
System.out.println("删除失败");}}}