完整代码以及junit,mysql--connector包下载地址 : https://github.com/CasterWx/MyStudentDao
表信息:
![]()
代码:
![]()
dao包----impl包----StudentDAOImpl.java
1 package dao.impl;
2
3 import dao.IStudentDAO;
4 import domain.Student;
5
6 import java.sql.*;
7 import java.util.ArrayList;
8 import java.util.List;
9
10 public class StudentDAOImpl implements IStudentDAO {
11 public static Connection connection = null ;
12
13 public void setConnection() {
14 try {
15 Class.forName("com.mysql.jdbc.Driver");
16 System.out.println("连接成功");
17 }catch (Exception e){
18 System.out.println("连接失败");
19 }
20 try{
21 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/JavaJDBC","root","root");
22 }catch (Exception e){
23 }
24 }
25
26 public void shutdownConnection(){
27 try {
28 if(connection!=null){
29 connection.close();
30 }
31 }catch (Exception e){
32 }
33 }
34 @Override
35 public void save(Student student) {
36 setConnection();
37 Statement statement = null ;
38 try {
39 statement = connection.createStatement();
40 // sql语句:查询对应id
41 String sql = "INSERT INTO t_student(id,name,age) VALUES(" + student.getId()+",'"+student.getName()+"',"+student.getAge()+")";
42 statement.executeUpdate(sql);
43 }catch (Exception e){
44 }finally {
45 try{
46 if (statement!=null){
47 statement.close();
48 }
49 }catch (Exception e){
50 }
51 }
52 shutdownConnection();
53 }
54
55 @Override
56 public void delete(Student student) {
57 Long id = student.getId() ;
58 delete(id);
59 }
60
61 @Override
62 public void delete(Long id) {
63 setConnection();
64 Statement statement = null ;
65 try {
66 statement = connection.createStatement();
67 // sql语句:查询对应id
68 String sql = "DELETE FROM t_student WHERE id="+id;
69 statement.executeUpdate(sql);
70 }catch (Exception e){
71 }finally {
72 try{
73 if (statement!=null){
74 statement.close();
75 }
76 }catch (Exception e){
77 }
78 }
79 shutdownConnection();
80 }
81
82 @Override
83 public void update(Long id, Student student) {
84 setConnection();
85 Statement statement = null ;
86 try {
87 statement = connection.createStatement();
88 // sql语句:查询对应id
89 String sql = "UPDATE t_student SET name='"+ student.getName() +"',age="+student.getAge() +" WHERE id="+id;
90 statement.executeUpdate(sql);
91 }catch (Exception e){
92 }finally {
93 try{
94 if (statement!=null){
95 statement.close();
96 }
97 }catch (Exception e){
98 }
99 }
100
101 shutdownConnection();
102 }
103
104 @Override
105 public void update(Student student) {
106 Long id = student.getId() ;
107 update(id,student);
108 }
109
110 @Override
111 public Student get(Long id) {
112 setConnection();
113 Statement statement = null ;
114 ResultSet resultSet = null ;
115 Student student = null ;
116 try {
117 statement = connection.createStatement();
118 // sql语句:查询对应id
119 String sql = "SELECT * FROM t_student where id="+id ;
120 resultSet = statement.executeQuery(sql);
121 if(resultSet.next()){
122 student = new Student() ;
123 student.setId(resultSet.getLong("id"));
124 student.setName(resultSet.getString("name"));
125 student.setAge(resultSet.getLong("age"));
126 return student ;
127 }
128 }catch (Exception e){
129 }finally {
130 try{
131 if (statement!=null){
132 statement.close();
133 }
134 }catch (Exception e){
135 }finally {
136 try{
137 if(resultSet!=null){
138 resultSet.close();
139 }
140 }catch (Exception e){
141 }
142 }
143 }
144 shutdownConnection();
145 return null;
146 }
147
148 @Override
149 public ArrayList<Student> list() {
150 ArrayList<Student> list = new ArrayList<Student>() ;
151 setConnection();
152 Statement statement = null ;
153 ResultSet resultSet = null ;
154 Student student = null ;
155 try {
156 statement = connection.createStatement();
157 // sql语句:查询对应id
158 String sql = "SELECT * FROM t_student" ;
159 resultSet = statement.executeQuery(sql);
160
161 while(resultSet.next()){
162 student = new Student() ;
163 student.setId(resultSet.getLong("id"));
164 student.setName(resultSet.getString("name"));
165 student.setAge(resultSet.getLong("age"));
166 list.add(student) ;
167 }
168 return list ;
169 }catch (Exception e){
170 }finally {
171 try{
172 if (statement!=null){
173 statement.close();
174 }
175 }catch (Exception e){
176 }finally {
177 try{
178 if(resultSet!=null){
179 resultSet.close();
180 }
181 }catch (Exception e){
182 }
183 }
184 }
185 shutdownConnection();
186 return list;
187 }
188
189 }
dao包----IStudentDAO接口
1 package dao;
2
3 import domain.Student;
4
5 import java.util.ArrayList;
6 import java.util.List;
7
8 /**
9 * Student对象的CRUD操作
10 * */
11 public interface IStudentDAO {
12 // ----------------------------------增--------------------------------------------
13
14 /**
15 * 保存学生对象
16 * @param student
17 * */
18 void save(Student student);
19
20 // ----------------------------------删--------------------------------------------
21
22 /**
23 * 根据删除指定学生
24 * @param student 学生对象
25 * */
26
27 void delete(Student student) ;
28 /**
29 * 根据主键删除指定学生
30 * @param id 学生对象主键
31 * */
32 void delete(Long id) ;
33
34 // ----------------------------------改--------------------------------------------
35 /**
36 * 更新指定学生信息
37 * @param id 学生对象主键
38 * @param student 学生对象
39 * */
40 void update(Long id,Student student) ;
41 /**
42 * 根据主键删除指定学生
43 * @param student 学生对象
44 * */
45 void update(Student student);
46
47 // ----------------------------------查--------------------------------------------
48
49 /**
50 * 查询指定id的学生对象
51 * @param id 学生对象主键
52 * @return Student if id存在,返回Student对象,否则返回null
53 */
54 Student get(Long id) ;
55 /**
56 * 查询所有学生对象
57 * @return 所有学生对象
58 * */
59 ArrayList<Student> list() ;
60 }
domain包-----Student.java
1 package domain;
2
3 public class Student {
4 private long id ;
5 private String name ;
6 private long age ;
7 public void getString(){
8 System.out.println("Student(id="+id+",name="+name+",age="+age+")");
9 }
10 public void setId(long id){
11 this.id = id ;
12 }
13 public void setName(String name){
14 this.name = name ;
15 }
16 public void setAge(long age){
17 this.age = age ;
18 }
19
20 public long getId() {
21 return id;
22 }
23
24 public long getAge() {
25 return age;
26 }
27
28 public String getName() {
29 return name;
30 }
31 }
test包----StudentDAOTest
1 package test;
2
3 import dao.IStudentDAO;
4 import dao.impl.StudentDAOImpl;
5 import domain.Student;
6 import org.junit.Test;
7
8 import java.util.ArrayList;
9 import java.util.List;
10
11 public class StudentDAOTest {
12 IStudentDAO iStudentDAO = new StudentDAOImpl();
13 @Test
14 public void testSave() {
15 Student student = new Student() ;
16 student.setId(164L);
17 student.setName("Wber");
18 student.setAge(100L);
19 iStudentDAO.save(student);
20 }
21 @Test
22 public void testDelete() {
23 iStudentDAO.delete(161L);
24 }
25 @Test
26 public void testUpdate() {
27 Student student = new Student() ;
28 student.setId(161L);
29 student.setName("wa");
30 student.setAge(15L);
31 iStudentDAO.update(161L,student);
32 }
33 @Test
34 public void testGet() {
35 iStudentDAO.get(162L).getString();
36 }
37 @Test
38 public void testList() {
39 ArrayList<Student> list = iStudentDAO.list() ;
40 for(int i=0;i<list.size();i++){
41 list.get(i).getString();
42 }
43 }
44 }