第四次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();
    @Before
    public void beforeTest(){ System.out.println("温馨提示:单元测绘开始咯~"); }
    @After
    public void afterTest(){ System.out.println("温馨提示:单元测试结束咯~"); }
    @Test
    public 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());


    }
    @Test
    public 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();
    @Test
    public 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());

    }
    @Test
    public void testUpdate(){
        //调用状态数据访问对象的查找方法
        Status status = dao.findById(1);
        //修改状态对象的属性
        status.setAuthor("独孤求败");
        status.setTelephone("18384566545");
        status.setEmail("2418361578@qq.com");
        //调用状态数据访问对象的更新方法
        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();
    @Test
    public 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("遗憾,学生记录插入失败!");
        }
    }
    @Test
    public void testDeleteById(){
        String id ="18102501";
        //调用学生数据访问对象的按id删除方法
        int count = dao.deleteById(id);
        //判断学生记录是否删除成功
        if(count>0){
            System.out.println("恭喜,学生记录删除成功!");

        }else{
            System.out.println("遗憾,学生记录删除失败!");
        }

    }
    @Test
    public void testDeleteByClass(){
        String clazz="19小教1班";
        //调用学生数据访问对象的按班级删除方法
        int count=dao.deleteByClass(clazz);
        if(count>0){
            System.out.println("恭喜,["+clazz+"]学生记录删除成功!");

        }else{
            System.out.println("遗憾,["+clazz+"]学生记录删除失败!");
        }
    }
    @Test
    public 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("温馨提示:查无此人!");
            }
        }

        @Test
    public void testFindAll(){
        //调用学生数据访问对象的查找全部方法
            List<Student> students=dao.findAll();
            //通过增强for循环遍历学生列表
            for(Student student:students){
                System.out.println(student);
            }
        }
        @Test
    public void testFindRowsBySex(){
        //调用学生数据访问对象的按性别统计人数方法
            Vector rows=dao.findRowsBySex();
            //获取向量的迭代器
            Iterator iterator =rows.iterator();
            //遍历迭代器
            while(iterator.hasNext()){
                System.out.println(iterator.next());
            }
        }
    @Test
    public void testDeleteByDepartment(){
        String department="人文学院";
        //调用学生数据访问对象的按班级删除方法
        int count=dao.deleteByDepartment(department);
        if(count>0){
            System.out.println("恭喜,["+department+"]学生记录删除成功!");

        }else{
            System.out.println("遗憾,["+department+"]学生记录删除失败!");
        }
    }
    @Test
    public 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("遗憾,学生记录更新失败!");
        }
    }
@Test
    public 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());
    }
    @Test
    public 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("温馨提示:查无此人!");
        }
    }
    @Test
    public 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("温馨提示:查无此人!");
        }
    }
    @Test
    public void testFindRowsByClass(){
        //调用学生数据访问对象的按班级统计人数方法
        Vector rows=dao.findRowsByClass();
        //获取向量的迭代器
        Iterator iterator =rows.iterator();
        //遍历迭代器
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }

    @Test
    public 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();
    @Test
    public 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());

    }
    @Test
    public void testLogin(){
        String username,password;
        username="魏无羡";
        password="00000000";
        //调用用户数据访问对象的登录方法
        User user =dao.login(username,password);
        //判断用户登录是否成功
        if(user != null){
            System.out.println("恭喜,用户名与密码正确,登陆成功!");

        }else{
            System.out.println("遗憾,用户名或密码错误,登录失败!");
        }
    }
    @Test
    public void testIsUsernameExisted(){
        //定义用户名
        String username="张伟";
        //调用用户数据访问对象的用户名存在与否方法
        boolean result =dao.isUsernameExisted(username);
        //判断用户名是否存在
        if(result){
            System.out.println("温馨提示:["+username+"]已存在,不可用此名注册!");
        }else{
            System.out.println("温馨提示:["+username+"]不存在,可用此名注册!");
        }

    }
    @Test
    public 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("遗憾,用户记录插入失败!");
        }
    }
    @Test
    public void testDeleteById(){
        int id =1;
        //调用用户数据访问对象的按id删除方法
        int count = dao.deleteById(id);
        //判断用户记录是否删除成功
        if(count>0){
            System.out.println("恭喜,用户记录删除成功!");

        }else{
            System.out.println("遗憾,用户记录删除失败!");
        }

    }
    @Test
    public 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的用户,最后修改,更新成功:在这里插入图片描述
用户测试完成:
在这里插入图片描述
以上内容不只是用一天来做的,感觉很累,但是收获很多的,期待下一次实训。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

learn_on

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值