Java实训日志5

八,项目实训实现步骤

(7)创建数据访问接口实现类

  • package net.zhao.student.dao包中建impl子包
    在这里插入图片描述

1,创建学校数据访问接口实现类

  • 在net.zi里创建mplhao.student.dao.impl创建CollegeDaoImpl类
    在这里插入图片描述
  • 实现接口CollegeDao接口
    在这里插入图片描述
  • 选择要实现抽象实现的类
    在这里插入图片描述
  • 单击ok按钮
  • 方法的空实现
public class CollegeDaoImpl implements CollegeDao {
    @Override
    public College findByID(int id) {
        return null;
    }

    @Override
    public int update(College college) {
        return 0;
    }
}
(1)编写标识符

在这里插入图片描述

package net.zhao.student.dao.impl;

import net.zhao.student.bean.College;
import net.zhao.student.dao.CollegeDao;
import net.zhao.student.dbutil.ConnectionManager;

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

/**
 * 功能:学校数据访问接口实现类
 * 作者:zhao
 * 日期:2023年06月2023/6/14日
 */
public class CollegeDaoImpl implements CollegeDao {
    @Override
    public College findByID(int id) {
        //定义一个学校对象
        College college = null;
        //获取数据库链接
        Connection conn = ConnectionManager.getConnection();
        //定义sql字符串
        String strSQL = "SELECT*FROM t_college WHERE id = ?";
        try {
            //创建预备语句对象
            PreparedStatement pstmt = conn.prepareStatement(strSQL);
            //设置占位符的值
            pstmt.setInt(1, id);
            //执行查询操作,返回结果集
            ResultSet rs=pstmt.executeQuery();
            //判断结果集是否为空
            if(rs.next()) {
                //创建对象
                college=new College();
                //利用当前记录字段值设置学校对象属性值
                college.setId(rs.getInt("id"));
                college.setName(rs.getString("name"));
                college.setPresident(rs.getString("president"));
                college.setStartTime(rs.getTimestamp("start_time"));
                college.setEmail(rs.getString("email"));
                college.setAddress(rs.getString("address"));
                college.setProfile(rs.getString("profile"));
//

            }
            rs.close();

        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            ConnectionManager.closeConnection(conn);//关闭数据链接
        }


        //返回学校对象
    return college;
    }

    @Override
    public int update(College college) {
        return 0;

    }

}

(2)编写更新学校记录
 @Override
    public int update(College college) {
        int count = 0;
        Connection conn =ConnectionManager.getConnection();
    String strSQL="UPDATE t_college SET id=?,name=?, president=?,start_time=email=?,address=?,profile=? WHERE id=?";
        //创建
        try {
            PreparedStatement pstemt = conn.prepareStatement(strSQL);
            //设置占位符
            pstemt.setString(1,college.getName());
            pstemt.setString(2,college.getPresident());
            pstemt.setTimestamp(3,new Timestamp(college.getStartTime().getTime()));
            pstemt.setString(4,college.getEmail());
            pstemt.setString(5,college.getAddress());
            pstemt.setString(6,college.getProfile());
            pstemt.setInt(7,college.getId());
            //更行操作
            count=pstemt.executeUpdate();
            //
            pstemt.close();

        } catch (SQLException e) {
            System.err.println(e.getMessage());

        } finally {
        }
        return count;

    }

}

1_,测试数据库访问

  • 在test目录里创建net.zhao.student.bean.dao.impl
    在这里插入图片描述
(1)编写测试
package net.zhao.student.bean.dao.impl;

import net.zhao.student.bean.College;
import net.zhao.student.dao.CollegeDao;
import net.zhao.student.dao.impl.CollegeDaoImpl;
import org.junit.Test;

/**
 * 功能:测试学校数据访问接口实现类
 * 作者:zhao
 * 日期:2023年06月2023/6/14日
 */
public class TestCollegeDaoImpl {
    @Test
    public void testFindById(){
        int id =1;
        CollegeDao collegeDao = new CollegeDaoImpl();
        //调用按标识符查询学校记录方法
        College college=collegeDao.findByID(id);
        //判断是否找到
        if(college!=null){
            System.out.println("标识符:"+college.getId());
            System.out.println("学校名称:"+college.getName());
            System.out.println("校长"+college.getPresident());
            System.out.println("建校时间"+college.getStartTime());
            System.out.println("电子邮箱"+college.getEmail());
            System.out.println("通讯地址"+college.getAddress());
            System.out.println("学校概况"+college.getProfile());

        }else {
            System.out.println("标识符为["+id+"]的学校记录不在");
        }
    }
}

  • 运行测试方法
    在这里插入图片描述
  • 修改标识符变量值,测试方法,查看结果
    在这里插入图片描述
(2)更新学校测试方法
  • 代码块
@Test//测试更新学校记录
    public void testUpdate(){
        CollegeDao collegeDao =new CollegeDaoImpl();
        College college =collegeDao.findByID(1);
        //输出更新前的学校信息
        System.out.println("更新前:"+college);
        college.setName("泸职院");
        college.setPresident("***");
        college.setProfile("泸职院是省双高建设单位.....");
        //调用更新学校记录
        int count =collegeDao.update(college);
        if (count>0){
            System.out.println("恭喜学校记录更新成功");
            System.out.println("更新后:"+collegeDao.findByID(1));
        }else {
            System.out.println("遗憾,学校记录更新失败");
        }



    }
  • 运行结果
    在这里插入图片描述

2,创建状态数据访问接口实现类

  • 创建状态数据访问接口实现类StatusDaoImpl
    在这里插入图片描述
  • 实现两个空实现
    在这里插入图片描述
(1)编写标识状态查询方法
public class StatusDaoImpl implements StatusDao{
    @Override
    public Status findByID(int id) {
        Status status =null;
        //获取数据库链接
        Connection conn= ConnectionManager.getConnection();
        //定义查询字符串
        String strSQL="SELECT*FROM t_status WHERE id=?";
        //创建预备语句对象
        try {
            PreparedStatement pstet =conn.prepareStatement(strSQL);
            //设置占位符的值
            pstet.setInt(1, id);
            //执行查询操作,返回结果集
            ResultSet rs=pstet.executeQuery();
            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.setAddress(rs.getString("address"));
                status.setEmail(rs.getString("email"));

            }
            //关闭预备语句对象
            pstet.close();
            //关闭结果对象
            rs.close();
        } catch (SQLException e) {
            System.err.println(e.getMessage());

        } finally {
            ConnectionManager.closeConnection(conn);
        }
        return status;
    }

(2)编写更新记录方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值