实训6.18:连接数据库及单元测试

1.创建表的实体在这里插入图片描述
例:
package net.lcn.student.bean.bean;
import java.util.Date;
public class College {
private int id;
private String name;
private String president;
private Date startTime;
private String telephone;
private String email;
private String address;
private String profile;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getPresident() {
    return president;
}

public void setPresident(String president) {
    this.president = president;
}

public Date getStartTime() {
    return startTime;
}

public void setStartTime(Date startTime) {
    this.startTime = startTime;
}

public String getTelephone() {
    return telephone;
}

public void setTelephone(String telephone) {
    this.telephone = telephone;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

public String getProfile() {
    return profile;
}

public void setProfile(String profile) {
    this.profile = profile;
}

@Override
public String toString() {
    return "College{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", president='" + president + '\'' +
            ", startTime=" + startTime +
            ", telephone='" + telephone + '\'' +
            ", email='" + email + '\'' +
            ", address='" + address + '\'' +
            ", profile='" + profile + '\'' +
            '}';
}

}

2.连接数据库实现类,完成数据库的连接,感觉很复杂但是最终还是成功的弹出了“恭喜连接成功”窗口。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190618163449574.png?xoss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpc2FtZWFs,size_16,color_FFFFFF,t_70连接数据库实现类,完成数据库的连接,感觉很复杂但是最终还是成功的弹出了“恭喜连接成功”窗口。在这里插入图片描述
3.创建数据访问接口

在这里插入图片描述
例:
package net.lcn.student.bean.dao;

import net.lcn.student.bean.bean.Student;

import java.util.List;
import java.util.Vector;

public interface StudentDao {
int insert(Student student);
int deleteById(Student id);
int deleteByClass(Student clazz);
int deleteByDepartment(Student department);
int update(Student student);
Student finById(String id);
List findByname(String name);
List findByClass(String clazz);
List findByDepartment(String department);
List findAll();
Vector findRowsBySex();
Vector findRowsByclass();
Vector findRowsByDepartment();

}
4.测试学校数据库访问接口实现类,打印输出college表中第一条数据,并更新一条数据,完成单元测试开始与结束功能
跟着老师的脚步一步一步学习及修改,最终效果达到理想效果!

如下:

package net.lcn.student.bean.test;

import com.sun.tracing.dtrace.ArgsAttributes;
import net.lcn.student.bean.bean.College;
import net.lcn.student.bean.dao.CollegeDao;
import net.lcn.student.bean.dao.impl.CollegeDaoImpl;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

/**

  • 功能:测试学校数据库访问接口实现类
  • 2019.6.18
    */

public class TestCollegeDaoImpl {
@Before
public void beforeTest() {
System.out.println(“单元测试开始了!”);
}

@After
public void afterTest() {
    System.out.println("单元测试结束了!");
}

@Test
public void testFindById() {
    CollegeDao dao = new CollegeDaoImpl();
    College college = dao.finfById(1);//第一条记录
    System.out.println(college);
}

@Test
public void testUpdate() {
    CollegeDao dao = new CollegeDaoImpl();
    College college = dao.finfById(1);
    college.setPresident("王狗屎");
    dao.update(college);
    college = dao.finfById(1);
    int count = dao.update(college);
    System.out.println(college);
    if (count > 0) {
        System.out.println("恭喜,学校记录更新");
    }else {
        System.out.println("遗憾,学校记录更新失败");
    }
}

}

运行结果:
在这里插入图片描述
5.状态数据访问接口实现类StatusDaoImpl

代码如下:
package net.lcn.student.bean.dao.impl;

import net.lcn.student.bean.bean.Status;
import net.lcn.student.bean.dao.StatusDao;
import net.lcn.student.bean.dbutil.ConnectionManager;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**

  • 功能:状态数据访问接口实现类
    */

public class StatusDaoImpl implements StatusDao {

@Override
public Status finfById(int id) {
    //声明状态对象
    Status status = null;


    //1.获取数据库连接对象
    Connection conn = ConnectionManager.getConnection();
    //2.定义SQL字符串
    String strSQL = "select * from t_status where id = ?";
    try {
        //3.创建预备语句对象
        PreparedStatement pstmt = conn.prepareStatement(strSQL);
        //4.设置占位符的值
        pstmt.setInt(1,id);
        //5.执行SQL查询,返回结果集
        ResultSet rs = pstmt.executeQuery();
        //6.判断结果集是否有记录
        if(rs.next()) {
            //实例化状态
            status = new Status();
            //利用当前记录字段值去设置状态对象的属性
            status.setId(rs.getInt("id"));
            status.setCollege(rs.getString("college"));
            status.setVersion(rs.getString("version"));
            status.setAuthor(rs.getString("author"));
            status.setTelephone(rs.getString("telephone"));
            status.setEmail(rs.getString("email"));
        }
        //7.关闭预备语句对象
        pstmt.close();
        //8.关闭结果集对象
        rs.close();
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        //关闭结果集对象
        ConnectionManager.closeConnection(conn);
    }
    //返回状态对象
    return status;
}

@Override
public int updatr(Status status) {
    //定义更新记录数
    int count = 0;
    //1.获取数据库连接
    Connection conn = ConnectionManager.getConnection();
    //2.定义SQL字符串
    String strSQL = "update t_status set college = ?, version = ?, author = ?,"
            + "telephone = ?, address = ?, emaile = ? where id = ?";
    try {
        //3.创建预备语句
        PreparedStatement pstmt = conn.prepareStatement(strSQL);
        //4.设置占位符的值
        pstmt.setString(1,status.getCollege());
        pstmt.setString(2,status.getVersion());
        pstmt.setString(3,status.getAuthor());
        pstmt.setString(4,status.getTelephone());
        pstmt.setString(5,status.getAddress());
        pstmt.setString(6,status.getEmail());
        pstmt.setInt(7,status.getId());
        //5.执行更新操作,更新记录
        count = pstmt.executeUpdate();
        //6.关闭预备语句对象
        pstmt.close();
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        //关闭数据库
        ConnectionManager.closeConnection(conn);
    }


    //返回更新数据库
    return count;
}

}

6.加粗样式在net.lcn.student.test包里创建测试类TestStatusDaoImpl:
在这里插入图片描述
运行结果如下:
在这里插入图片描述
更新数据:
在这里插入图片描述
运行更新结果如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值