第四次Java实训心得

编程入门 行业动态 更新时间:2024-10-19 16:38:43

<a href=https://www.elefans.com/category/jswz/34/1768132.html style=第四次Java实训心得"/>

第四次Java实训心得

第四次Java实训开始咯,上一次实现了用Java对数据库用户表的增删改查,这次老师让我们创建数据访问接口,我的实训内容如下:
第一步:
在net.zxl.student里创建dao包,在包内创建学校数据访问接口,状态数据访问接口,学生数据访问接口,用户数据访问接口

第二步:
创建数据访问接口实现类
在net.zxl.student.dao包里创建impl包,然后在里面创建学校数据访问接口实现类,然后创建测试类进行测试。

测试代码如下:


package net.zxl.student.test;import net.zxl.student.bean.College;
import net.zxl.student.dao.CollegeDao;
import net.zxl.student.dao.impl.CollegeDaoImpl;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;public class TestCollegeDaoImpl {//创建学校数据访问接口对象CollegeDao dao = new CollegeDaoImpl();@Beforepublic void beforeTest(){ System.out.println("温馨提示:单元测绘开始咯~"); }@Afterpublic void afterTest(){ System.out.println("温馨提示:单元测试结束咯~"); }@Testpublic void testFindById(){//调用学校数据访问对象的查找方法,获取学校对象College college = dao.findById(1);//输出学校信息System.out.println("校名:"+college.getName());System.out.println("校长:"+college.getPresident());System.out.println("地址:"+college.getAddress());System.out.println("邮箱:"+college.getEmail());System.out.println("电话:"+college.getTelephone());}@Testpublic void testUpdate() {//调用学校数据访问对象的查询方法College college = dao.findById(1);//修改学校信息college.setPresident("王洪礼");//调用学校数据访问对象的更新方法int count = dao.update(college);//判断是否更新成功if (count > 0) {System.out.println("学校记录更新成功!");System.out.println("新校长:" + dao.findById(1).getPresident());} else {System.out.println("学校记录更新失败!");}}}

效果图如下:

然后在里面创建状态数据访问接口实现类,然后创建测试类进行测试。
测试代码如下:

package net.zxl.student.test;import net.zxl.student.bean.Status;
import net.zxl.student.dao.StatusDao;
import net.zxl.student.dao.impl.StatusDaoImpl;
import org.junit.Test;public class TestStatusDaoImpl {//声明状态数据访问对象StatusDao dao = new StatusDaoImpl();@Testpublic void testFindById(){//调用状态数据访问对象的查询方法Status status=dao.findById(1);//输出状态信息System.out.println("作者:"+status.getAuthor());System.out.println("学校:"+status.getCollege());System.out.println("版本:"+status.getVersion());System.out.println("地址:"+status.getAddress());System.out.println("电话:"+status.getTelephone());System.out.println("邮箱:"+status.getEmail());}@Testpublic void testUpdate(){//调用状态数据访问对象的查找方法Status status = dao.findById(1);//修改状态对象的属性status.setAuthor("独孤求败");status.setTelephone("18384566545");status.setEmail("2418361578@qq");//调用状态数据访问对象的更新方法int count =dao.update(status);//判断状态更新是否成功if(count > 0){System.out.println("状态记录更新成功!");System.out.println(dao.findById(1));}else{System.out.println("状态记录更新失败!");}}
}

运行结果如下:

然后在里面创建学生数据访问接口实现类,然后创建测试类进行测试。
测试代码如下:

package net.zxl.student.test;
import net.zxl.student.bean.Student;
import net.zxl.student.dao.StudentDao;
import net.zxl.student.dao.impl.StudentDaoImpl;
import org.junit.Test;import java.util.Iterator;
import java.util.List;
import java.util.Vector;public class TestStudentDaoImpl {//定义学生数据访问对象StudentDao dao=new StudentDaoImpl();@Testpublic void testInsert(){//创建学生对象Student student =new Student();//设置学生对象属性student.setId("19242091");student.setName("张晓辉");student.setSex("19");student.setDepartment("人文学院");student.setClazz("2019数媒3班");student.setTelephone("13456897454");//调用学生数据访问对象的插入方法int count = dao.insert(student);//判断学生记录是否插入成功if (count>0){System.out.println("恭喜,学生记录插入成功!");System.out.println(dao.findById(student.getId()));}else{System.out.println("遗憾,学生记录插入失败!");}}@Testpublic void testDeleteById(){String id ="18102501";//调用学生数据访问对象的按id删除方法int count = dao.deleteById(id);//判断学生记录是否删除成功if(count>0){System.out.println("恭喜,学生记录删除成功!");}else{System.out.println("遗憾,学生记录删除失败!");}}@Testpublic void testDeleteByClass(){String clazz="19小教1班";//调用学生数据访问对象的按班级删除方法int count=dao.deleteByClass(clazz);if(count>0){System.out.println("恭喜,["+clazz+"]学生记录删除成功!");}else{System.out.println("遗憾,["+clazz+"]学生记录删除失败!");}}@Testpublic void testFindByName(){String name="赵";//调用学生数据访问对象的按姓名查找方法List<Student> students=dao.findByName(name);//判断列表里是否有元素if(students.size()>0){//通过增强for循环遍历学生列表for(Student student:students){System.out.println(student);}}else{System.out.println("温馨提示:查无此人!");}}@Testpublic void testFindAll(){//调用学生数据访问对象的查找全部方法List<Student> students=dao.findAll();//通过增强for循环遍历学生列表for(Student student:students){System.out.println(student);}}@Testpublic void testFindRowsBySex(){//调用学生数据访问对象的按性别统计人数方法Vector rows=dao.findRowsBySex();//获取向量的迭代器Iterator iterator =rows.iterator();//遍历迭代器while(iterator.hasNext()){System.out.println(iterator.next());}}@Testpublic void testDeleteByDepartment(){String department="人文学院";//调用学生数据访问对象的按班级删除方法int count=dao.deleteByDepartment(department);if(count>0){System.out.println("恭喜,["+department+"]学生记录删除成功!");}else{System.out.println("遗憾,["+department+"]学生记录删除失败!");}}@Testpublic void testUpdate(){//创建学生对象Student student =new Student();//设置学生对象属性student.setId("19242091");student.setName("张晓文");student.setSex("19");student.setDepartment("人文学院");student.setClazz("2019数媒3班");student.setTelephone("13456897454");//调用学生数据访问对象的更新方法int count = dao.insert(student);//判断学生记录是否更新成功if (count>0){System.out.println("恭喜,学生记录更新成功!");System.out.println(dao.findById(student.getId()));}else{System.out.println("遗憾,学生记录更新失败!");}}
@Testpublic void testFindById(){//调用用户数据访问对象的查找方法Student student=dao.findById("18102502");//输出用户信息System.out.println("学号:"+student.getId());System.out.println("姓名:"+student.getName());System.out.println("年龄:"+student.getSex());System.out.println("系部:"+student.getDepartment());System.out.println("班级:"+student.getClazz());System.out.println("电话:"+student.getTelephone());}@Testpublic void testFindByClass(){String clazz="19计应3班";//调用学生数据访问对象的按姓名查找方法List<Student> students=dao.findByClass(clazz);//判断列表里是否有元素if(students.size()>0){//通过增强for循环遍历学生列表for(Student student:students){System.out.println(student);}}else{System.out.println("温馨提示:查无此人!");}}@Testpublic void testFindByDepartment(){String department="信息工程学院";//调用学生数据访问对象的按姓名查找方法List<Student> students=dao.findByDepartment(department);//判断列表里是否有元素if(students.size()>0){//通过增强for循环遍历学生列表for(Student student:students){System.out.println(student);}}else{System.out.println("温馨提示:查无此人!");}}@Testpublic void testFindRowsByClass(){//调用学生数据访问对象的按班级统计人数方法Vector rows=dao.findRowsByClass();//获取向量的迭代器Iterator iterator =rows.iterator();//遍历迭代器while(iterator.hasNext()){System.out.println(iterator.next());}}@Testpublic void testFindRowsByDepartment(){//调用学生数据访问对象的按系部统计人数方法Vector rows=dao.findRowsByDepartment();//获取向量的迭代器Iterator iterator =rows.iterator();//遍历迭代器while(iterator.hasNext()){System.out.println(iterator.next());}}
}

在创建学生数据访问接口实现类StudentDaoImpl中,要测试的东西很多,有对结果集的遍历,有设置占位符的值,有设置学生实体属性等等很多东西,很繁琐,要编写的代码也很多,出的错也不少。我分了几天时间来敲的。
运行效果图如下:
若这些整体测试,有可能会出错,因为运行一遍后再运行,会出现不能插入记录,原因是有主键存在。
然后创建用户数据访问接口实现类,然后进行测试,测试代码如下:

package net.zxl.student.test;import net.zxl.student.bean.User;
import net.zxl.student.dao.UserDao;
import net.zxl.student.dao.impl.UserDaoImpl;
import org.junit.Test;import java.util.Date;
import java.util.List;public class TestUserDaoImpl {//定义用户数据访问对象UserDao dao = new UserDaoImpl();@Testpublic void testFindById(){//调用用户数据访问对象的查找方法User user =dao.findById(3);//输出用户信息System.out.println("用户名:"+user.getUsername());System.out.println("密码:"+user.getPassword());System.out.println("电话:"+user.getTelephone());System.out.println("注册时间:"+user.getRegisterTime());}@Testpublic void testLogin(){String username,password;username="魏无羡";password="00000000";//调用用户数据访问对象的登录方法User user =dao.login(username,password);//判断用户登录是否成功if(user != null){System.out.println("恭喜,用户名与密码正确,登陆成功!");}else{System.out.println("遗憾,用户名或密码错误,登录失败!");}}@Testpublic void testIsUsernameExisted(){//定义用户名String username="张伟";//调用用户数据访问对象的用户名存在与否方法boolean result =dao.isUsernameExisted(username);//判断用户名是否存在if(result){System.out.println("温馨提示:["+username+"]已存在,不可用此名注册!");}else{System.out.println("温馨提示:["+username+"]不存在,可用此名注册!");}}@Testpublic void testInsert(){//定义用户对象User user=new User();//设置用户属性user.setUsername("张新");user.setPassword("123321");user.setTelephone("13645542210");user.setRegisterTime(new Date());//调用用户数据访问对象的插入方法int count=dao.insert(user);//判断用户记录是否插入成功if(count>0){System.out.println("恭喜,用户记录插入成功!");System.out.println(dao.findById(dao.findAll().size()));}else{System.out.println("遗憾,用户记录插入失败!");}}@Testpublic void testDeleteById(){int id =1;//调用用户数据访问对象的按id删除方法int count = dao.deleteById(id);//判断用户记录是否删除成功if(count>0){System.out.println("恭喜,用户记录删除成功!");}else{System.out.println("遗憾,用户记录删除失败!");}}@Testpublic void testUpdate() {//调用用户数据访问对象的查询方法User user = dao.findById(6);//修改用户信息user.setPassword("123");//调用用户数据访问对象的更新方法int count = dao.update(user);//判断是否更新成功if (count > 0) {System.out.println("学校记录更新成功!");} else {System.out.println("学校记录更新失败!");}}
@Test
public void testFindAll(){//调用用户数据访问对象的查找全部方法List<User> users=dao.findAll();//通过增强for循环遍历用户列表for(User user:users){System.out.println(user);}
}}

在运行过程中,出现如下错误:

最后发现是数据库记录里没有用户编号为6的用户,最后修改,更新成功:
用户测试完成:

以上内容不只是用一天来做的,感觉很累,但是收获很多的,期待下一次实训。

更多推荐

第四次Java实训心得

本文发布于:2024-02-07 00:12:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1751706.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:第四次   实训   心得   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!