用java的DAO模式实现对一个学生实体的增加,查询操作。
1.建立一个学生实体类 Student.java
- public class Student {
- private String sid;
- private String sname;
- private int age;
- private int banji;
- private int score;
- public Student(String sid, String sname, int age, int banji, int score) {
- this.sid = sid;
- this.sname = sname;
- this.age = age;
- this.banji = banji;
- this.score = score;
- }
- public String getSid() {
- return sid;
- }
- public void setSid(String sid) {
- this.sid = sid;
- }
- public String getSname() {
- return sname;
- }
- public void setSname(String sname) {
- this.sname = sname;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public int getBanji() {
- return banji;
- }
- public void setBanji(int banji) {
- this.banji = banji;
- }
- public int getScore() {
- return score;
- }
- public void setScore(int score) {
- this.score = score;
- }
- @Override public String toString() {
- return "student [sid=" + sid + ", sname=" + sname + ", age=" + age + ", banji=" + banji + ", score=" + score + "]";
- }
- }
2.数据库连接工具类 ConnectionUtil.java
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- public class ConnectionUtil {
- ConnectionUtil() {}
- private static Connection con;
- static {
- try {
- Class.forName("com.mysql.jdbc.Driver");
- String url = "jdbc:mysql://localhost:3306/shiyan";
- String username = "root";
- String password = "1234";
- con = DriverManager.getConnection(url, username, password);
- } catch(Exception ex) {
- throw new RuntimeException(ex + "数据库连接失败!");
- }
- }
- public static Connection getConnection() {
- return con;
- }
- /*关闭数据库连接操作*/
- public static void close(Connection con, Statement stat, ResultSet rs) {
- if (rs != null) {
- try {
- rs.close();
- } catch(SQLException ex) {}
- }
- if (stat != null) {
- try {
- stat.close();
- } catch(SQLException ex) {}
- }
- if (con != null) {
- try {
- con.close();
- } catch(SQLException ex) {}
- }
- }
- }
3.DAO接口 UpdateDao.java
- import java.util.List;
- public interface UpdateDao {
- /*查询所有的学生,返回一个List集合中*/
- public List < Student > findAllStudent();
- /*增加学生*/
- public void addStudent(Student stu);
- }
4.DAO接口实现类 UpdateDaoImpl.java
- 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 UpdateDaoImpl implements UpdateDao {
- @Override public List < Student > findAllStudent() {
- List < Student > list = new ArrayList < Student > ();
- Connection conn = ConnectionUtil.getConnection();
- String sql = "select * from student";
- PreparedStatement pst;
- try {
- pst = conn.prepareStatement(sql);
- ResultSet rs = pst.executeQuery();
- while (rs.next()) {
- Student s = new Student(rs.getString("sid"), rs.getString("sname"), rs.getInt("age"), rs.getInt("banji"), rs.getInt("score"));
- list.add(s);
- }
- } catch(SQLException e) {
- e.printStackTrace();
- }
- return list;
- }
- @Override public void addStudent(Student stu) {
- Connection conn = ConnectionUtil.getConnection();
- try {
- String sql = "insert into student values(?,?,?,?,?)";
- PreparedStatement pst = conn.prepareStatement(sql);
- pst.setString(1, stu.getSid());
- pst.setString(2, stu.getSname());
- pst.setInt(3, stu.getAge());
- pst.setInt(4, stu.getBanji());
- pst.setInt(5, stu.getScore());
- pst.executeUpdate();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- }
5.建立一个Junit类进行测试 TestDao.java
- import java.util.List;
- import org.junit.Test;
- import test3001.Student;
- import test3001.UpdateDao;
- import test3001.UpdateDaoImpl;
- public class testDao {
- @Test
- /*测试增加学生*/
- public void testaddStudent() {
- UpdateDao dao = new UpdateDaoImpl();
- Student stu = new Student("8", "蓝猫", 20, 2, 98);
- dao.addStudent(stu);
- }
- @Test
- /*测试查询所有学生信息*/
- public void testfindAllStudent() {
- UpdateDao dao = new UpdateDaoImpl();
- List < Student > list = null;
- list = dao.findAllStudent();
- for (Student stu: list) {
- System.out.println(stu);
- }
- }
- }
-----------泛型DAO是什么鬼 -_- ---------------------------
来源: http://www.cnblogs.com/Mhang/p/7818560.html