學生管理系統(dao層)
阿新 • • 發佈:2018-12-23
登陸dao層介面。
package com.wh.dao;
import com.wh.entity.Student;
public interface LoginDao {
public Boolean login(Student student);
}
登陸dao層實現類。
package com.wh.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.wh.entity.Student; import com.wh.utils.DBUtil; public class LoginDaoImpl implements LoginDao { @SuppressWarnings("unused") @Override public Boolean login(Student student) { // TODO Auto-generated method stub Boolean result=false; Connection connection=null; PreparedStatement preparedStatement=null; ResultSet resultSet=null; try { connection=DBUtil.getConnection(); String sql=" select*from user where username=? and password=? "; preparedStatement=connection.prepareStatement(sql); preparedStatement.setString(1, student.getUsername()); preparedStatement.setString(2, student.getPassword()); resultSet=preparedStatement.executeQuery(); if(resultSet.next()){ return result=true; } else { return result=false; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); return result=false; } finally { try { resultSet.close(); preparedStatement.close(); connection.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
註冊dao層介面。
package com.wh.dao;
import com.wh.entity.Student;
public interface RegisterDao {
/*
* 判斷使用者是否註冊
*/
@SuppressWarnings("rawtypes")
public Enum registered(Student student);
/*
* 使用者註冊是否成功
*/
@SuppressWarnings("rawtypes")
public Enum register(Student student);
}
註冊dao層實現類。
package com.wh.dao; import java.sql.Connection; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.wh.entity.Student; import com.wh.utils.DBUtil; import com.wh.utils.DateUtil; import com.wh.utils.RegisterStatus; public class RegisterDaoImpl implements RegisterDao { Connection con = null; PreparedStatement ps = null; ResultSet rs = null; @SuppressWarnings("rawtypes") @Override public Enum registered(Student student) { // TODO Auto-generated method stub con = DBUtil.getConnection(); String sql = " select*from user where username=? "; try { ps = con.prepareStatement(sql); ps.setString(1, student.getUsername()); rs = ps.executeQuery(); if (rs.next()) { return RegisterStatus.REAISTERED; } else { return RegisterStatus.SUCCESS; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return RegisterStatus.FAILURE; } finally { DBUtil.closeConnection(con, ps, rs); } } @SuppressWarnings("rawtypes") @Override public Enum register(Student student) { // TODO Auto-generated method stub con=DBUtil.getConnection(); String sql=" insert into user(username,password,name,gender,age,address,regdate) values(?,?,?,?,?,?,?) "; try { ps=con.prepareStatement(sql); ps.setString(1, student.getUsername()); ps.setString(2, student.getPassword()); ps.setString(3, student.getName()); ps.setString(4, student.getGender()); ps.setInt(5, student.getAge()); ps.setString(6, student.getAddress()); ps.setDate(7, new Date(student.getRegdate().getTime())); int ud=ps.executeUpdate(); if(ud>0) { return RegisterStatus.SUCCESS; }else { return RegisterStatus.FAILURE; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); return RegisterStatus.FAILURE; }finally { try { ps.close(); con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
學生增刪改查dao層介面。
package com.wh.dao; import java.util.List; import com.wh.entity.Student; //獲取所有學生資訊 public interface StudentDao { public List<Student> getStudents(); public void delStudent(int id); public void addStudent(Student student); /** * 操作資料庫獲得指定id的資訊 */ public Student alterStudent(int id); /** * 傳入已經修改的學生資訊到資料庫中 */ public void alteredStudent(Student student); }
學生增刪改查dao層實現類。
package com.wh.dao;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.wh.entity.Student;
import com.wh.utils.DBUtil;
public class StudentDaoImpl implements StudentDao {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
/**
* 獲得所有學生的資訊
*/
@Override
public List<Student> getStudents() {
// TODO Auto-generated method stub
List<Student> students = new ArrayList<>();
connection = DBUtil.getConnection();
String sql = "select*from user";
try {
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
Student student = new Student();
student.setId(resultSet.getInt("id"));
student.setUsername(resultSet.getString("username"));
student.setPassword(resultSet.getString("password"));
student.setName(resultSet.getString("name"));
student.setGender(resultSet.getString("gender"));
student.setAge(resultSet.getInt("age"));
student.setAddress(resultSet.getString("address"));
student.setRegdate(resultSet.getDate("regdate"));
students.add(student);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBUtil.closeConnection(connection, preparedStatement, resultSet);
}
return students;
}
@Override
public void delStudent(int id) {
// TODO Auto-generated method stub
connection = DBUtil.getConnection();
String sql = " delete from user where id=? ";
try {
connection.setAutoCommit(false);
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, id);
preparedStatement.executeUpdate();
connection.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
try {
connection.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
} finally {
DBUtil.closeConnection(connection, preparedStatement, null);
}
}
/**
* dao向資料庫新增資料
*/
@Override
public void addStudent(Student student) {
// TODO Auto-generated method stub
connection = DBUtil.getConnection();
String sql = " insert into user (username,password,name,gender,age,address,regdate) values (?,?,?,?,?,?,?) ";
try {
connection.setAutoCommit(false);
// 設定手動提交事務
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, student.getUsername());
preparedStatement.setString(2, student.getPassword());
preparedStatement.setString(3, student.getName());
preparedStatement.setString(4, student.getGender());
preparedStatement.setInt(5, student.getAge());
preparedStatement.setString(6, student.getAddress());
preparedStatement.setDate(7, new Date(student.getRegdate().getTime()));
preparedStatement.executeUpdate();
connection.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
connection.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} finally {
DBUtil.closeConnection(connection, preparedStatement, null);
}
}
@Override
public Student alterStudent(int id) {
// TODO Auto-generated method stub
connection = DBUtil.getConnection();
Student student = null;
String sql = " select*from user where id=? ";
try {
connection.setAutoCommit(false);
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, id);
resultSet = preparedStatement.executeQuery();
connection.commit();
while (resultSet.next()) {
student = new Student();
student.setId(resultSet.getInt("id"));
student.setUsername(resultSet.getString("username"));
student.setPassword(resultSet.getString("password"));
student.setName(resultSet.getString("name"));
student.setGender(resultSet.getString("gender"));
student.setAge(resultSet.getInt("age"));
student.setAddress(resultSet.getString("address"));
student.setRegdate(resultSet.getDate("regdate"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
connection.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
return student;
}
@Override
public void alteredStudent(Student student) {
// TODO Auto-generated method stub
connection=DBUtil.getConnection();
String sql=" update user set username=?,password=?,name=?,gender=?,age=?,address=?,regdate=? where id=? ";
try {
connection.setAutoCommit(false);
preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1, student.getUsername());
preparedStatement.setString(2, student.getPassword());
preparedStatement.setString(3, student.getName());
preparedStatement.setString(4, student.getGender());
preparedStatement.setInt(5, student.getAge());
preparedStatement.setString(6, student.getAddress());
preparedStatement.setDate(7, new Date(student.getRegdate().getTime()));
preparedStatement.setInt(8, student.getId());
preparedStatement.executeUpdate();
connection.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
connection.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
finally {
DBUtil.closeConnection(connection, preparedStatement, null);
}
}
}