Java实训日志05

news2024/11/27 4:31:04

文章目录

  • 八、项目开发实现步骤
    • (七)创建数据访问接口实现类
      • 1、创建学校数据访问接口实现类
        • (1)编写按标识符查询学校记录方法
        • (2)编写更新学校记录方法
      • 1_、测试学校数据访问接口实现类
        • (1)编写测试按标识符查询学校记录方法
        • (2)编写测试更新学校记录方法
      • 2、创建状态数据访问接口实现类
        • (1)编写按标识符查询状态记录方法
        • (2)编写更新状态记录方法
      • 2_、测试状态数据访问接口实现类
        • (1)编写测试按标识符查询状态记录方法
        • (2)编写测试更新状态记录方法
      • 3、创建学生数据访问接口实现类
      • 3_、测试学生数据访问接口实现类
      • 4、创建用户数据访问接口实现类
      • 4_、测试用户数据访问接口实现类

八、项目开发实现步骤

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

  • net.huawei.student.dao包里创建impl子包(impl: implementation)
    在这里插入图片描述

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

  • net.huawei.student.dao.impl包里创建CollegeDaoImpl
    在这里插入图片描述
  • 实现CollegeDao接口
    在这里插入图片描述
  • 选择要实现的抽象方法
    在这里插入图片描述
  • 单击【OK】按钮
    在这里插入图片描述

(1)编写按标识符查询学校记录方法

@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();                                                                    
        // 关闭预备语句对象                                                                    
        pstmt.close();                                                                 
    } catch (SQLException e) {                                                         
        System.err.println(e.getMessage());                                            
    } finally {                                                                        
        ConnectionManager.closeConnection(conn); // 关闭数据库连接                            
    }                                                                                  
                                                                                       
                                                                                       
    // 返回学校对象                                                                          
    return college;                                                                    
}                                                                                      

(2)编写更新学校记录方法

@Override // 更新学校记录                                                                                                                      
public int update(College college) {                                                                                                     
    // 定义更新记录数                                                                                                                           
    int count = 0;                                                                                                                       
                                                                                                                                         
    // 获取数据库连接                                                                                                                           
    Connection conn = ConnectionManager.getConnection();                                                                                 
    // 定义SQL语句对象                                                                                                                         
    String strSQL = "UPDATE t_college SET name = ?, president = ?, start_time = ?, email = ?, address = ?, profile = ? WHERE id = ?";    
    try {                                                                                                                                
        // 创建预备语句对象                                                                                                                      
        PreparedStatement pstmt = conn.prepareStatement(strSQL);                                                                         
        // 设置占位符的值                                                                                                                       
        pstmt.setString(1, college.getName());                                                                                           
        pstmt.setString(2, college.getPresident());                                                                                      
        pstmt.setTimestamp(3, new Timestamp(college.getStartTime().getTime()));                                                          
        pstmt.setString(4, college.getEmail());                                                                                          
        pstmt.setString(5, college.getAddress());                                                                                        
        pstmt.setString(6, college.getProfile());                                                                                        
        pstmt.setInt(7, college.getId());                                                                                                
        // 执行更新操作,返回更新记录数                                                                                                                
        count = pstmt.executeUpdate();                                                                                                   
        // 关闭预备语句对象                                                                                                                      
        pstmt.close();                                                                                                                   
    } catch (SQLException e) {                                                                                                           
        System.err.println(e.getMessage());                                                                                              
    } finally {                                                                                                                          
        ConnectionManager.closeConnection(conn); // 关闭数据库连接                                                                              
    }                                                                                                                                    
                                                                                                                                         
    // 返回更新记录数                                                                                                                           
    return count;                                                                                                                        
}                                                                                                                                        

1_、测试学校数据访问接口实现类

  • test目录里创建net.huawei.student.dao.impl包,在包里创建TestCollegeDaoImpl
    在这里插入图片描述

(1)编写测试按标识符查询学校记录方法

package net.huawei.student.dao.impl;

import net.huawei.student.bean.College;
import net.huawei.student.dao.CollegeDao;
import org.junit.Test;

/**
 * 功能:测试学校数据访问接口实现类
 * 作者:华卫
 * 日期:2023年06月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 + "]的学校记录不存在~");
        }
    }
}
  • 运行testFindById()方法,查看结果
    在这里插入图片描述
  • 修改标识符变量值,再运行测试方法,查看结果
    在这里插入图片描述

(2)编写测试更新学校记录方法

@Test // 测试更新学校记录                                                 
public void testUpdate() {                                        
    // 创建学校数据访问接口对象                                               
    CollegeDao collegeDao = new CollegeDaoImpl();                 
    // 获取标识符为1的学校记录                                               
    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("遗憾,学校记录更新失败~");                       
    }                                                             
}                                                                 
  • 运行testUpdate()方法,查看结果
    在这里插入图片描述

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

  • net.huawei.student.dao.impl包里创建StatusDaoImpl
    在这里插入图片描述
  • 实现StatusDao接口,空实现两个抽象方法
    在这里插入图片描述

(1)编写按标识符查询状态记录方法

package net.huawei.student.dao.impl;

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

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

/**
 * 功能:状态数据访问接口实现类
 * 作者:华卫
 * 日期:2023年06月14日
 */
public class StatusDaoImpl implements StatusDao {
    @Override // 按标识符查询状态记录
    public Status findById(int id) {
        // 定义状态对象
        Status status = null;
        
        // 获取数据库连接
        Connection conn = ConnectionManager.getConnection();
        // 定义SQL字符串
        String strSQL = "SELECT * FROM t_status WHERE id = ?";
        try {
            // 创建预备语句对象
            PreparedStatement pstmt = conn.prepareStatement(strSQL);
            // 设置占位符的值
            pstmt.setInt(1, id);
            // 执行查询操作,返回结果集
            ResultSet rs = pstmt.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"));                
            }
            // 关闭结果集
            rs.close();
            // 关闭预备语句对象
            pstmt.close();
        } catch (SQLException e) {
            System.err.println(e.getMessage());
        } finally {
            ConnectionManager.closeConnection(conn); // 关闭数据库连接
        }

        // 返回状态对象
        return status;
    }

    @Override
    public int update(Status status) {
        return 0;
    }
}

(2)编写更新状态记录方法

@Override // 更新状态记录                                                                                                                       
public int update(Status status) {                                                                                                        
    // 定义更新记录数                                                                                                                            
    int count = 0;                                                                                                                        
                                                                                                                                          
    // 获取数据库连接                                                                                                                            
    Connection conn = ConnectionManager.getConnection();                                                                                  
    // 定义SQL字符串                                                                                                                           
    String strSQL = "UPDATE t_status SET college = ?, version = ?, author = ?, telephone = ?, address = ?, email = ? WHERE id = ?";       
    try {                                                                                                                                 
        // 创建预备语句对象                                                                                                                       
        PreparedStatement pstmt = conn.prepareStatement(strSQL);                                                                          
        // 设位置占位符的值                                                                                                                       
        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());                                                                                                  
        // 执行更新操作,返回更新记录数                                                                                                                 
        count = pstmt.executeUpdate();                                                                                                    
        // 关闭预备语句对象                                                                                                                       
        pstmt.close();                                                                                                                    
    } catch (SQLException e) {                                                                                                            
        System.err.println(e.getMessage());                                                                                               
    } finally {                                                                                                                           
        ConnectionManager.closeConnection(conn); // 关闭数据库连接                                                                               
    }                                                                                                                                     
                                                                                                                                          
    // 返回更新记录数                                                                                                                            
    return count;                                                                                                                         
}                                                                                                                                         

2_、测试状态数据访问接口实现类

(1)编写测试按标识符查询状态记录方法

  • test目录的net.huawei.student.dao.impl包里创建TestStatusDaoImpl
    在这里插入图片描述
package net.huawei.student.dao.impl;

import net.huawei.student.bean.Status;
import net.huawei.student.dao.StatusDao;
import org.junit.Test;

/**
 * 功能:测试状态数据访问接口实现类
 * 作者:华卫
 * 日期:2023年06月14日
 */
public class TestStatusDaoImpl {
    @Test // 测试按标识符查询状态记录
    public void testFindById() {
        // 定义标识符变量
        int id = 1;
        // 创建状态数据访问接口对象
        StatusDao statusDao = new StatusDaoImpl();
        // 调用按标识符查询状态记录方法
        Status status = statusDao.findById(id);
        // 判断查询是否成功
        if (status != null) {
            System.out.println(status);
        } else {
            System.out.println("标识符为[" + id + "]的状态记录不存在~");
        }
    }
}
  • 运行testFindById()方法,查看结果
    在这里插入图片描述

(2)编写测试更新状态记录方法

@Test // 测试更新状态记录                                                          
public void testUpdate() {                                                 
    // 创建状态数据访问接口对象                                                        
    StatusDao statusDao = new StatusDaoImpl();                             
    // 获取标识符为1的状态记录                                                        
    Status status = statusDao.findById(1);                                 
    // 输出更新的状态记录                                                           
    System.out.println("更新前:" + status);                                   
    // 设置状态对象属性                                                            
    status.setCollege("泸州职业技术学院");                                         
    status.setVersion("2.0");                                              
    status.setVersion("无心剑");                                              
    status.setTelephone("15834345670");                                    
    status.setEmail("375912360@qq.com");                                   
    status.setAddress("泸州江阳区上平远路10号");                                     
    // 调用更新状态记录方法                                                          
    int count = statusDao.update(status);                                  
    // 判断更新是否成功                                                            
    if (count > 0) {                                                       
        System.out.println("恭喜,状态记录更新成功~");                                
        System.out.println("更新后:" + statusDao.findById(1));                
    } else {                                                               
        System.out.println("遗憾,状态记录更新失败~");                                
    }                                                                      
}                                                                          
  • 运行testUpdate()方法,查看结果
    在这里插入图片描述
  • 说明:参看《Java实训项目10:GUI学生信息管理系统 - 实现步骤 - 创建数据访问接口实现类》完成下面两个数据访问接口实现类的编写与测试工作。

3、创建学生数据访问接口实现类

3_、测试学生数据访问接口实现类

4、创建用户数据访问接口实现类

4_、测试用户数据访问接口实现类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Nginx服务器如何安装SSL证书

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言提示:我用的是阿里云的产品,就以阿里云进行的: 一、下载SSL证书二、安装SSL证书 前言 提示:我用的是阿里云的产…

多元回归预测 | Matlab遗传算法(GA)优化核极限学习机回归,GA-KELM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab遗传算法(GA)优化核极限学习机回归,GA-KELM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变量…

设计模式(十六):行为型之责任链模式

设计模式系列文章 设计模式(一):创建型之单例模式 设计模式(二、三):创建型之工厂方法和抽象工厂模式 设计模式(四):创建型之原型模式 设计模式(五):创建型之建造者模式 设计模式(六):结构型之代理模式 设计模式…

2.链表的实现:带哨兵

1.带哨兵的单链表的定义 /*** 单向链表----带哨兵*/ public class SinglyLinked {/*** 节点类* 数据域和地址域*/private static class Node {int value; //值Node next; // 指向下一个节点public Node() {}public Node(int value, Node next) {this.value value;this.next …

【linux】在Ubuntu20.04下录制屏幕为视频,并制作成gif动态图片

1、下载软件 录制屏幕软件 sudo apt install simplescreenrecorder视频转图片软件 sudo apt install mplayer图片合成gif动态图片 sudo apt install imagemagick2、录制屏幕 1)运行命令 simplescreenrecorder2)设置:区域、帧率 选择录制的区域; 设置帧率为10(或者更小…

3.vue 指令

3.10 v-text和v-html 更新 DOM 对象的 innerText / innerHTML 语法: v-text"vue数据变量" v-html"vue数据变量" 注意: 会覆盖插值表达式 v-text 把值当成普通字符串显示 v-html 把值当做 html 解析 <template><div><p v-text"str…

关于自动化测试框架pytest的Fixture固件

这篇文章主要介绍了关于自动化测试框架pytest的Fixture固件,Fixture它其实就是一些函数,会在执行测试方法/测试函数前后加载运行它们,需要的朋友可以参考下 目录 什么是固件定义方式调用方式使用fixture传递测试数据conftest.py作用域总结 什么是固件 Fixture 翻译成中文即是固…

无效目标发行版问题解决记录

​ SpringMVC之‘无效目标发行版’ 问题&#xff1a;上死亡截图 问题解决思路&#xff1a;这是由于JDK版本不匹配导致的错误。 首先说一下问题的关键所在&#xff0c;然后再细说解决步骤&#xff1a; 遇到这个问题的朋友大概率都是在写Spring项目时遇到的&#xff0c;这就需要M…

H3C-HCL模拟器常用命令及其操作演示

一、实验拓扑图 二、实验设备 设备1&#xff1a;路由器"MSR36-20"&#xff1b; 设备2&#xff1a;真机&#xff1b; 三、常用命令 1&#xff09;进入用户视图&#xff1a;启动默认就是用户视图 "< >" 2&#xff09;进入系统视图&#xff1a;"…

揭示GPT Tokenizer的工作原理

在GPT模型中&#xff0c;tokenization&#xff08;词元化&#xff09;指的是将用户输入的文本分割成token&#xff08;词元&#xff09;的过程&#xff0c;以让GPT能更好地理解输入文本的词义、句法和语义&#xff0c;以及生成更连贯的输出内容。这是非常重要的预处理操作&…

C++AVL树

目录&#xff1a; AVL树的概念AVL树节点的定义更新平衡因子 AVL树的旋转AVL树的验证AVL的整体实现 AVL树的删除AVL树的性能 总结 AVL树的概念 AVL树&#xff1a;二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&#xff0c;查找…

CAPL硬件控制课程,物理故障注入自动化以及程控电源

&#x1f4d9; CAN/LIN总线物理故障注入&#xff0c;自动化解决方案 车载网络通讯的健壮性和故障恢复能力至关重要&#xff0c;所以我们需要对控制器进行各种物理容错测试&#xff0c;常规情况下我们需要注入如下8种物理故障注入&#xff1a;CANH断路&#xff0c;CANL断路,CANH…

Redux的基础操作和思想

什么是Redux? Redux是JavaScript应用的状态容器&#xff0c;提供可预测的状态管理! Redux除了和React一起用外&#xff0c;还支持其它框架;它体小精悍(只有2kB&#xff0c; 包括依赖)&#xff0c;却有很强大的插件扩展生态! Redux提供的模式和工具使您更容易理解应用程序中的…

管理类联考——英语——趣味篇——完型填空

完型填空解题秘籍 一、答案分配规律 历年完型答案统计 A B C D 2010 DCBAA/BDCBA/CDDAC/BDCAB 5 5 5 5 2011 ACBDD/BACCB/DBACA/ADACD 6 4 5 5 2012 BBAAC/DAACB/DBCDD/ACCBD 5 5 5 5 2013 ADBDC/BBDBA/ADCCC/CABAD 5 5 5 5 2014 BACAD/ACCDB/ABCDB/DADCB 5 5 5 5 2015 CDC…

leetcode199. 二叉树的右视图(java)

二叉树的右视图 leetcode199. 二叉树的右视图题目描述 广度优先遍历二叉树专题 leetcode199. 二叉树的右视图 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/binary-tree-right-side-view 题目描述 给定一个二叉树的 根…

Python之del析构方法_、call__方法、方法没有重载

一、__del__方法(析构函数)和垃圾回收机制 __del__()称为“析构方法”&#xff0c;用于实现对象被销毁时所需的操作。比如&#xff1a;释放对象占用的资源&#xff0c;例如&#xff1a;打开的文件资源、网络连接等。 Python实现自动的垃圾回收&#xff0c;当对象没有被引用时&…

【AUTOSAR】UDS协议的代码分析与解读(四)----UDS 否定应答服务

6 全局信号需求 一些用于诊断功能的全局信号&#xff0c;应通过整车网络广播至所有的电控单元。信号应包含但不限于如下 所有列&#xff1a; 1) 日期和时间&#xff1b; 2) 蓄电池电压&#xff1b; 3) 点火开关信号&#xff0c; 包括OFF、ACC、ON、START&#xff1b; 4) …

【从删库到跑路】MySQL系列——详细讲解SQL的DDL,DML,DQL,DCL语句

&#x1f38a;专栏【MySQL】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 文章目录 &#x1f354;关系型数据库⭐概念⭐特点 &#x1f354;MySQL数…

今天面了个支付宝拿35K出来的测试,真是砂纸擦屁股,给我露了一手啊

今年的春招已经开始了&#xff0c;很多小伙伴收获不错&#xff0c;有的已经拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文&#xff0c;为此咱这里也统一做一次大整理和大归类&#xff0c;这也算是划重点了。 俗话说得好&#xff0…

算法之迷宫解法

系列文章目录 文章目录 系列文章目录前言一、迷宫是什么&#xff1f;二、迷宫的生成迷宫的数据结构二维数组图 Prim算法生成地图什么是Prim算法&#xff1f;使用Prim对迷宫生成的实现 三、迷宫的解法深度优先遍历&#xff08;DFS&#xff09; 前言 前几天刷抖音刷到一个迷宫解…