1. 程式人生 > >學生管理系統(dao層)

學生管理系統(dao層)

登陸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);
		}
	}

}