黑马2024AI+JavaWeb开发入门Day06-JDBC-Mybatis飞书作业

news2024/12/4 3:00:29

视频地址:哔哩哔哩

讲义作业飞书地址:day06作业

基础性作业,加油!

1、SQL语句的编写

-- 1. 查询所有的性别为男(gender 为 1)的 讲师 (job 为 2) , 并根据入职时间, 对员工进行升序排序
select * from emp where gender = 1 and job = 2 order by entry_date asc;

-- 2. 根据 入职时间 对公司的员工进行 升序排序 , 入职时间相同 , 再按照 ID 进行降序排序
select * from emp order by entry_date asc,id desc;

-- 3. 查询性别为男(gender 为 1) 且 薪资大于 6000 的员工, 并根据 入职时间 对公司的员工进行 升序排序 , 入职时间相同 , 再按照 ID 进行降序排序
select * from emp where gender = 1 and salary > 6000 order by entry_date asc ,id desc ;

-- 4. 查询性别为男(gender 为 1)的员工 且 在 '2005-10-01' 至 '2018-10-01' 之间入职的员工, 并根据 入职时间 对公司的员工进行 升序排序 , 入职时间相同 , 再按照 ID 进行降序排序
select * from emp where gender = 1 and (entry_date between '2005-10-01' and '2018-10-01') order by entry_date asc ,id desc;

-- 5. 查询姓 '阮' 且 在 '2010-10-01' 之后入职的员工, 并根据入职时间进行升序排序, 并对结果分页操作, 展示第1页员工数据, 每页展示5条记录
select * from emp where name like '阮%' and entry_date > '2010-10-01' order by entry_date asc limit 5;

2、通过JDBC程序,基于预编译SQL,执行更新操作

@Test
    public void testUpdate() throws ClassNotFoundException, SQLException {
        //1.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2.获取数据库连接
        String url = "jdbc:mysql://localhost:3306/web01";
        String username = "root";
        String password = "moon";

        String sql = "update user set password = ?, name = ?, age = ? where id = ?";
        PreparedStatement ps = DriverManager.getConnection(url, username, password).prepareStatement(sql);
        ps.setString(1,"haveagoodluck");
        ps.setString(2,"关羽");
        ps.setInt(3,32);
        ps.setInt(4,4);
        int i = ps.executeUpdate();
        System.out.println(i);
        ps.close();
    }

3、通过JDBC程序,基于预编译SQL,执行查询语句

@Test
    public void select() throws ClassNotFoundException, SQLException {
        //1.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2.获取数据库连接
        String url = "jdbc:mysql://localhost:3306/web01";
        String username = "root";
        String password = "moon";

        String sql = "select id,username,password,name,age from user where age >= ? and id <= ?";
        PreparedStatement ps = DriverManager.getConnection(url, username, password).prepareStatement(sql);
        ps.setInt(1,20);
        ps.setInt(2,4);

        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            User user = new User(
                    rs.getInt("id"),
                    rs.getString("username"),
                    rs.getString("password"),
                    rs.getString("name"),
                    rs.getInt("age")
            );
            System.out.println(user);
        }
        rs.close();
        ps.close();
    }

4、导入项目,基于Mybatis完成SQL语句实现

①导入项目:将文件解压后放在目录里,然后导入xml文件

②创建数据库,创建表

③实现SQL语句(注意更改数据库连接信息,密码更改为自己的,url更改为对应数据库)

  • StudentMapper.java
package com.itheima.mapper;

import com.itheima.pojo.Student;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface StudentMapper {
    @Select("select * from student")
    public List<Student> findAll();

    @Insert("insert into student values(null,#{name},#{no},#{gender},#{phone},#{idCard},#{degree},#{graduationDate},#{createTime},#{updateTime})")
    public void insert(Student s);

    @Update("update student set no = #{no}, phone = #{phone}, id_card = #{idCard} where id = #{id}")
    public void update(Student s);

    //下面两个基于XML配置SQL
    public Student findById(Integer id);

    public void deleteById(Integer id);

}
  • StudentMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.StudentMapper">
    <!--resultType:查询返回的单条记录所封装的类型-->
    <select id="findById" resultType="com.itheima.pojo.Student">
        select * from student where id = #{id}
    </select>
    <select id="deleteById" resultType="com.itheima.pojo.Student">
        delete from student where id = #{id}
    </select>

</mapper>
  • SpringBootMybatisApplicationTests.java
package com.itheima;

import com.itheima.mapper.StudentMapper;
import com.itheima.pojo.Student;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class SpringBootMybatisApplicationTests {
    @Autowired
    public StudentMapper studentMapper;

    @Test
    public void testFindAll(){
        studentMapper.findAll().forEach(System.out::println);
    }

    @Test
    public void testInsert(){
        Student s = new Student(null, "小明", "2019011", 1, "13888888888", "123456789012345678", 1, null, null, null);
        studentMapper.insert(s);
    }

    @Test
    public void testUpdate(){
        Student s = new Student(12, "小明", "2019012", 1, "13888889998", "123456789012345789", 1, null, null, null);
        studentMapper.update(s);
    }

    @Test
    public void testFindById(){
        System.out.println(studentMapper.findById(5));
    }

    @Test
    public void testDeleteById(){
        studentMapper.deleteById(7);
    }

}

有问题可以私信我或者评论~

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

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

相关文章

基于Python制作一个简易UI界面

基于Python制作一个简易UI界面 目录 基于Python制作一个简易UI界面1 原理简介2 编写程序3 程序测试 1 原理简介 这里用到了Python自带的UI库tkinter。 tkinter 是 Python 的标准 GUI&#xff08;图形用户界面&#xff09;库&#xff0c;用于创建和管理图形界面。它提供了一个简…

emp.dll丢失导致游戏/软件无法继续运行:详细描述emp.dll丢失原因并提供解决方案

emp.dll 并不是一个标准的 Windows 系统文件&#xff0c;也不是一个广泛认知的第三方库。因此&#xff0c;它可能是一个特定于某个应用程序或游戏的自定义 DLL 文件。如果 emp.dll 丢失导致了你的软件或游戏无法运行&#xff0c;这通常意味着该文件是程序正常运作所必需的。下面…

IDEA使用HotSwapHelper进行热部署

目录 前言JDK1.8特殊准备DECVM安装插件安装与配置参考文档相关下载 前言 碰到了一个项目&#xff0c;用jrebel启动项目时一直报错&#xff0c;不用jrebel时又没问题&#xff0c;找不到原因&#xff0c;又不想放弃热部署功能 因此思考能否通过其他方式进行热部署&#xff0c;找…

droppath

DropPath 是一种用于正则化深度学习模型的技术&#xff0c;它在训练过程中随机丢弃路径&#xff08;或者说随机让某些部分的输出变为零&#xff09;&#xff0c;从而增强模型的鲁棒性和泛化能力。 代码解释&#xff1a; import torch import torch.nn as nn # 定义 DropPath…

机器学习算法(六)---逻辑回归

常见的十大机器学习算法&#xff1a; 机器学习算法&#xff08;一&#xff09;—决策树 机器学习算法&#xff08;二&#xff09;—支持向量机SVM 机器学习算法&#xff08;三&#xff09;—K近邻 机器学习算法&#xff08;四&#xff09;—集成算法 机器学习算法&#xff08;五…

Ubuntu24.04初始化教程(包含基础优化、ros2)

将会不断更新。但是所有都是基础且必要的操作。 为重装系统之后的环境配置提供便捷信息来源。记录一些错误的解决方案。 目录 构建系统建立系统备份**Timeshift: 系统快照和备份工具****安装 Timeshift****使用 Timeshift 创建快照****还原快照****自动创建快照** 最基本配置换…

【Maven】Nexus私服

6. Maven的私服 6.1 什么是私服 Maven 私服是一种特殊的远程仓库&#xff0c;它是架设在局域网内的仓库服务&#xff0c;用来代理位于外部的远程仓库&#xff08;中央仓库、其他远程公共仓库&#xff09;。一些无法从外部仓库下载到的构件&#xff0c;如项目组其他人员开发的…

Gradle vs. Maven: 到底哪个更适合java 项目?

ApiHug ApiHug - API Design & Develop New Paradigm.ApiHug - API Design & Develop New Paradigm.https://apihug.com/ 首先 ApiHug 整个工具链是基于 gradle 构建,包括项目模版&#xff0c; 插件&#xff1b; 说到 Java 项目管理&#xff0c;有两个巨头脱颖而出&a…

Dubbo的集群容错策略有哪些?它们的工作原理是什么?

大家好&#xff0c;我是锋哥。今天分享关于【Dubbo的集群容错策略有哪些&#xff1f;它们的工作原理是什么&#xff1f;】面试题。希望对大家有帮助&#xff1b; Dubbo的集群容错策略有哪些&#xff1f;它们的工作原理是什么&#xff1f; 1000道 互联网大厂Java工程师 精选面试…

分治的思想(力扣965、力扣144、牛客KY11)

引言 分治思想是将问题分解为更小子问题&#xff0c;分别解决后再合并结果。二叉树中常用此思想&#xff0c;因其结构递归&#xff0c;易分解为左右子树问题&#xff0c;递归解决后合并结果。 这篇文章会讲解用分治的思想去解决二叉树的一些题目&#xff0c;顺便会强调在做二…

中国电信张宝玉:城市数据基础设施建设运营探索与实践

11月28日&#xff0c;2024新型智慧城市发展创新大会在山东青岛召开&#xff0c;中国电信数字政府研究院院长张宝玉在大会发表主旨演讲《城市数据基础设施运营探索与实践》。报告内容包括城市数据基础设施的概述、各地典型做法及发展趋势建议三个方面展开。 篇幅限制&#xff0…

【论文阅读】Federated learning backdoor attack detection with persistence diagram

目的&#xff1a;检测联邦学习环境下&#xff0c;上传上来的模型是不是恶意的。 1、将一个模型转换为|L|个PD,&#xff08;其中|L|为层数&#xff09; 如何将每一层转换成一个PD&#xff1f; 为了评估第&#x1d457;层的激活值&#xff0c;我们需要&#x1d450;个输入来获…

深度学习案例:ResNet50模型+SE-Net

本文为为&#x1f517;365天深度学习训练营内部文章 原作者&#xff1a;K同学啊 一 回顾ResNet模型 ResNet&#xff0c;即残差网络&#xff0c;是由微软研究院的Kaiming He及其合作者于2015年提出的一种深度卷积神经网络架构。该网络架构的核心创新在于引入了“残差连接”&…

js高级-ajax封装和跨域

ajax简介及相关知识 原生ajax AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML&#xff0c;就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求&#xff0c;最大的优势&#xff1a;无刷新获取数据。 按需请求&#xff0c;可以提高网站的性能 AJ…

【AI】Sklearn

长期更新&#xff0c;建议关注、收藏、点赞。 友情链接&#xff1a; AI中的数学_线代微积分概率论最优化 Python numpy_pandas_matplotlib_spicy 建议路线&#xff1a;机器学习->深度学习->强化学习 目录 预处理模型选择分类实例&#xff1a; 二分类比赛 网格搜索实例&…

如何让控件始终处于父容器的居中位置(父容器可任意改变大小)

前言&#xff1a; 大家好&#xff0c;我是上位机马工&#xff0c;硕士毕业4年年入40万&#xff0c;目前在一家自动化公司担任软件经理&#xff0c;从事C#上位机软件开发8年以上&#xff01;我们在C#开发winform程序的时候&#xff0c;有时候需要将一个控件居中显示&#xff0c…

Python 调用 Umi-OCR API 批量识别图片/PDF文档数据

目录 一、需求分析 二、方案设计&#xff08;概要/详细&#xff09; 三、技术选型 四、OCR 测试 Demo 五、批量文件识别完整代码实现 六、总结 一、需求分析 市场部同事进行采购或给客户报价时&#xff0c;往往基于过往采购合同数据&#xff0c;给出现在采购或报价的金额…

【QT】背景,安装和介绍

TOC 目录 背景 GUI技术 QT的安装 使用流程 QT程序介绍 main.cpp​编辑 Wiget.h Widget.cpp form file .pro文件 临时文件 C作为一门比较古老的语言&#xff0c;在人们的认知里始终是以底层&#xff0c;复杂和高性能著称&#xff0c;所以在很多高性能需求的场景之下…

Linux内核编译流程(Ubuntu24.04+Linux Kernel 6.8.12)

万恶的拯救者&#xff0c;使用Ubuntu没有声音&#xff0c;必须要自己修改一下Linux内核中的相关驱动逻辑才可以&#xff0c;所以被迫学习怎么修改内核&编译内核&#xff0c;记录如下 准备工作 下载Linux源码&#xff1a;在Linux发布页下载并使用gpg签名验证 即&#xff1a…

【阅读笔记】Android广播的处理流程

关于Android的解析&#xff0c;有很多优质内容&#xff0c;看了后记录一下阅读笔记&#xff0c;也是一种有意义的事情&#xff0c; 今天就看看“那个写代码的”这位大佬关于广播的梳理&#xff0c; https://blog.csdn.net/a572423926/category_11509429.html https://blog.c…