javaee 第二次作业

共计10413字,阅读大约35分钟。

前言

基础栈需求

  • 了解java到面向对象
  • 了解数据库增删改查
  • 了解mybatis代码结构
  • 其它的可以慢慢学

一 创建数据库


-- ----------------------------
-- 创建数据库 javaee
-- Table structure for work2_student
-- ----------------------------
CREATE DATABASE javaee;
USE javaee;

-- ----------------------------
-- 创建数据表 work2_student
-- Table structure for work2_student
-- ----------------------------
DROP TABLE IF EXISTS `work2_student`;
CREATE TABLE `work2_student`  (
  `id` int UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `major` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `sno` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- 插入初始数据
-- ----------------------------
INSERT INTO `work2_student` VALUES (1, '张大麻', '计科', '202201');
INSERT INTO `work2_student` VALUES (2, '师爷', '软工', '202202');
INSERT INTO `work2_student` VALUES (3, '县长大人', '通信', '202203');
INSERT INTO `work2_student` VALUES (4, '县长夫人', '经济', '202204');

SET FOREIGN_KEY_CHECKS = 1;
图片[1] | Web Stack | javaee 第二次作业 | 一个栈
可采用其它sql软件创建,比如naviecat等

表预览

图片[2] | Web Stack | javaee 第二次作业 | 一个栈
采用 NavieCat软件

数据库都没有的看这里

没有管理工具的这

二 创建SpingBoot

  • 先创建一个空项目 , 用来包裹以后的作业 , 比如叫 ClassWork
图片[3] | Web Stack | javaee 第二次作业 | 一个栈
空项目
  • 右键 ClassWork 创建新模块 Model , 选择Spring
图片[4] | Web Stack | javaee 第二次作业 | 一个栈
Spring
图片[5] | Web Stack | javaee 第二次作业 | 一个栈
暂时两个

三 配置编写Spring

唉 , 步骤写个大纲 ,用视频来吧

  1. 配置 pom.xml
  2. 配置 application.yml
  3. 写实体类 entity
  4. 写接口 repository
  5. 写xml实现

//

用到的代码

服务器不可用填这 : https://start.aliyun.com


spring:
  #数据库数据源
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
#    这三个根据自己填
    username: 数据库账号
    password: 数据库密码
    url: jdbc:mysql://localhost:3306/数据库库名?serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver

#配置mybatis
mybatis:
  type-aliases-package: ssm.mybatis02.entity
  mapper-locations: classpath:/mybatis/*.xml

#日志打印,看错了什么
logging:
  file:
    name: log/1og.log
  level :
    root: info
    mybatis02: debug
图片[6] | Web Stack | javaee 第二次作业 | 一个栈
<!--        mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <!--        数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.10</version>
        </dependency>
以上放<dependencies>标签内


<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version> 2.7.3 </version>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>aliyun</id>
            <name>AliYun</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
    </repositories>
以上放 dependencyManagement标签后

─mybatis02
    ├
    │  
    ├─log
    ├─src
    │  ├─main
    │  │  ├─java
    │  │  │  └─ssm
    │  │  │      └─mybatis02
    │  │  │          ├─entity
    │  │  │          └─repository
    │  │  └─resources
    │  │      └─mybatis
    │  └─test
    │      └─java
    │          └─ssm
    │              └─mybatis02
    │                  └─repository
    └─target
        ├─classes
        │  ├─mybatis
        │  └─ssm
        │      └─mybatis02
        │          ├─entity
        │          └─repository
        ├─generated-sources
        │  └─annotations
        ├─generated-test-sources
        │  └─test-annotations
        └─test-classes
            └─ssm
                └─mybatis02
                    └─repository

源码

package javaee.mybatis02.repository;

import javaee.mybatis02.entity.Work2Student;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.stereotype.Component;

import java.util.List;

@SpringBootTest
@Component
class Work2StudentRepositoryTest {
    @Autowired
    private Work2StudentRepository w2s;
    @Test
    void findById() {
        Work2Student student = new Work2Student();

        System.out.println("1. 根据 id 查询学生信息。\n"+ w2s.FindById(1));

        System.out.println("2. 新增的学生信息。");
        student.setName("路人甲");
        student.setMajor("计科");
        student.setSno(""+(Integer.parseInt(w2s.FindByIdMaxSno())+1));
        w2s.addStudent(student);
        System.out.println(w2s.FindByIdMaxAll());

        System.out.println("3. 根据 id 修改学生信息。");
        System.out.println("修改前\n"+ w2s.FindById(1));
        student.setId(1);
        student.setName("张麻子");
        student.setMajor("计科");
        student.setSno("202200");
        w2s.updateStudent(student);
        System.out.println("修改后\n"+ w2s.FindById(1));

        System.out.println("4. 根据 id 删除学生信息。");
        w2s.deleteStudentById(4);

        System.out.println("5. 根据学号修改学生专业");
        System.out.println("修改前\n"+ w2s.FindById(10));
        student = new Work2Student();
        student.setSno("202210");
        student.setMajor("软工");
        System.out.println("修改后\n"+ w2s.FindById(10));

        System.out.println("6.多条件查询:");
        student = new Work2Student();
        student.setMajor("软工");
        System.out.println("专业查找 \n"+ w2s.selectStudentByCondition(student));

        System.out.println("7.单条件查询:查询出所有id值小于5的学生的信息。");
        List<Work2Student> work2StudentList = w2s.selectStudentByLess5();
        work2StudentList.forEach(System.out::println);
    }
}
package javaee.mybatis02.repository;

import javaee.mybatis02.entity.Work2Student;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface Work2StudentRepository {
    /**
     * @Description: 1.根据 id 查询学生信息。
     * @param id: 学生ID
     * @Return: javaee.mybatis02.entity.Work2Student id是主键对应一个人,所以返回值是一个学生
     * @Date: 2022/9/23 2:55
     */
    Work2Student FindById(@Param("id")int id);

    /**
     * @Description: 2. 新增学生信息。
     * @param student: 插入的学生对象
     * @Return: void
     * @Date: 2022/9/23 11:31
     */
    void addStudent(Work2Student student);

    /**
     * @Description: 3. 根据 id 修改学生信息。
     * @param student: 修改的学生信息
     * @Return: void
     * @Date: 2022/9/23 11:32
     */
    void updateStudent(Work2Student student);

    /**
     * @Description: 4. 根据 id 删除学生信息。
     * @param id: 学生ID
     * @Return: void
     * @Date: 2022/9/23 11:32
     */
    void deleteStudentById(Integer id);

    /**
     * @Description: 5. 根据学号修改学生专业
     * @param student: 学生学号
     * @Return: void
     * @Date: 2022/9/23 11:33
     */
    void updateMajorBySno(Work2Student student);

    /**
     * @Description: 6.多条件查询:
     * @param student: 学生对象
     * @Return: java.util.List<javaee.mybatis02.entity.Work2Student>
     * @Date: 2022/9/23 11:33
     */
    List<Work2Student> selectStudentByCondition(Work2Student student);

    /**
     * @Description: 7.单条件查询:查询出所有id值小于5的学生的信息。
     * @Return: java.util.List<javaee.mybatis02.entity.Work2Student>
     * @Date: 2022/9/23 11:34
     */
    List<Work2Student> selectStudentByLess5();

    /**
     * @Description: 查询最新一个数据
     * @Return: javaee.mybatis02.entity.Work2Student
     * @Date: 2022/9/23 11:24
     */
    @Select("SELECT * FROM work2_student WHERE id = (SELECT MAX(id) FROM work2_student)")
    Work2Student FindByIdMaxAll();

    /**
     * @Description: 查询最新一个数据的 学号
     * @Return: java.lang.String
     * @Date: 2022/9/23 11:26
     */
    @Select("SELECT sno FROM work2_student WHERE id = (SELECT MAX(id) FROM work2_student)")
    String FindByIdMaxSno();
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="javaee.mybatis02.repository.Work2StudentRepository">
<!--    第一题-->
        <select id="FindById" resultType="Work2Student">
            SELECT *
            FROM work2_student
            WHERE id = #{id};
        </select>

    <!--void addStudent(Work2Student student);-->
    <insert id="addStudent">
        insert into work2_student value (null,#{name},#{major},#{sno})
    </insert>

    <!--void updateStudent(Work2Student student);-->
    <update id="updateStudent">
        update work2_student
        <trim prefix="set" prefixOverrides=",">
            <if test="name !=null and name != '' ">
                ,name = #{name}
            </if>

            <if test="major !=null and major != '' ">
                ,major = #{major}
            </if>
            <if test="sno > 0 ">
                ,sno = #{sno}
            </if>
        </trim>
        where id = #{id}
    </update>

    <!--void deleteStudentById(Integer id);-->
    <delete id="deleteStudentById">
        delete
        from work2_student
        where id =
              #{id}
    </delete>

    <!--void updateMajorBySno(Work2Student student);-->
    <update id="updateMajorBySno">
        update work2_student
        set major = #{major}
        where sno = #{sno}
    </update>

    <!--List<Work2Student> selectStudentByCondition();-->
    <select id="selectStudentByCondition" resultType="Work2Student">
        select * from work2_student
        <trim prefix="where" prefixOverrides="and">
            <if test="name !=null and name != '' ">
                and name = #{name}
            </if>

            <if test="major !=null and major != '' ">
                and major = #{major}
            </if>
            <if test="sno != null and sno >0 ">
                and sno = #{sno}
            </if>
        </trim>
    </select>
    <!--List<Work2Student> selectStudentByLess5();-->
    <select id="selectStudentByLess5" resultType="Work2Student">
        select *
        from work2_student
        where 5 > id
    </select>
</mapper>
结果
图片[7] | Web Stack | javaee 第二次作业 | 一个栈
温馨提示:本文最后更新于2022-09-24 14:55:48,某些文章具有时效性,若有错误或已失效,请在下方留言或联系雅舍站长
© 版权声明
THE END
有所帮助就支持一下吧
点赞11当赏 分享
箴言区 抢沙发
头像
达瓦里希请发言...
提交
头像

昵称

取消
昵称表情代码图片