IDEA2023 SpringBoot整合MyBatis(三)

server/2024/11/23 16:17:13/

一、数据库表

CREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100) NOT NULL,age INT,gender ENUM('Male', 'Female', 'Other'),email VARCHAR(100) UNIQUE,phone_number VARCHAR(20),address VARCHAR(255),date_of_birth DATE,enrollment_date DATE,course VARCHAR(100)
);-- 插入10条学生数据
INSERT INTO students (name, age, gender, email, phone_number, address, date_of_birth, enrollment_date, course) VALUES
('John Doe', 20, 'Male', 'john.doe@example.com', '1234567890', '123 Main St, City', '2003-01-01', '2023-09-01', 'Computer Science'),
('Jane Smith', 21, 'Female', 'jane.smith@example.com', '0987654321', '456 Elm Rd, Town', '2002-02-02', '2023-09-01', 'Business Administration'),
('Michael Johnson', 19, 'Male', 'michael.johnson@example.com', '1122334455', '789 Oak Ave, Village', '2004-03-03', '2023-09-01', 'Electrical Engineering'),
('Emily Davis', 22, 'Female', 'emily.davis@example.com', '5544332211', '321 Pine Blvd, County', '2001-04-04', '2023-09-01', 'Mechanical Engineering'),
('William Brown', 20, 'Male', 'william.brown@example.com', '9988776655', '654 Cedar Ln, District', '2003-05-05', '2023-09-01', 'Civil Engineering'),
('Olivia Wilson', 21, 'Female', 'olivia.wilson@example.com', '4433221100', '987 Walnut St, Borough', '2002-06-06', '2023-09-01', 'Chemistry'),
('Benjamin Taylor', 19, 'Male', 'benjamin.taylor@example.com', '7766554433', '246 Maple Dr, Neighborhood', '2004-07-07', '2023-09-01', 'Physics'),
('Grace Anderson', 22, 'Female', 'grace.anderson@example.com', '3322110099', '852 Birch Rd, Hamlet', '2001-08-08', '2023-09-01', 'Mathematics'),
('Henry Thompson', 20, 'Male', 'henry.thompson@example.com', '6655443322', '587 Aspen St, Province', '2003-09-09', '2023-09-01', 'Biology'),
('Chloe Robinson', 21, 'Female', 'chloe.robinson@example.com', '9977665544', '101 Poplar Ave, Region', '2002-10-10', '2023-09-01', 'Psychology');

二、在pom文件中添加MyBatis相关依赖包,Mysql驱动依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- mybatis依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency><!-- mysql依赖 --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- mybatis测试依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter-test</artifactId><version>3.0.3</version><scope>test</scope></dependency>

   当我们没有热部署的时候,我们必须在代码修改完后再重启程序,程序才会同步你修改的信息那么我们可以手动启动热部署-》》》

     <!-- 热部署工具 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency>

 

三、编写实体类

public class Student {// 定义属性private String name; // 姓名private int age; // 年龄private String gender; // 性别private String email; // 邮箱private String phoneNumber; // 电话号码private String address; // 地址private java.util.Date dateOfBirth; // 出生日期private java.util.Date enrollmentDate; // 入学日期private String course; // 课程...setXXX and getXXX and constructor and toString...

四、 编写映射类StudentMapper

 */
@Mapper
public interface StudentMapper  {// @Select("select * from student where id = #{id}")public List<Student> findById(int id);//  @Select("select * from student")public List<Student> findAll();
}

注意:如果不写@Select注解,则就需要写Mapper映射文件

五、编写Mapper映射文件

  mybatis – MyBatis 3 | 配置

<?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.hlx.springbootdemo1.mapper.StudentMapper"><select id="findById" parameterType="int" resultType="Student">SELECT * FROM student WHERE id = #{id}</select><select id="findAll" resultType="Student">select * from student</select></mapper>

六、编写配置文件

#mysql数据源配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/school?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456#mybatis
mybatis.mapper-locations=classpath*:mapper/*.xml#实体类的别名
mybatis.type-aliases-package=com.hlx.springbootdemo1.entity#日志
logging.pattern.console='%d{HH:mm:ss.SSS} %clr(%-5level) ---  [%-15thread] %cyan(%-50logger{50}):%msg%n'

 七、编写业务类

@Service
public class StudentService {@Autowiredprivate StudentMapper studentMapper;public List<Student> findAll(){return (studentMapper.findAll());}public Student findById(int id){return (studentMapper.findById(id));}
}

 八、编写控制器类

@RestController
public class StudentsController {@Autowiredprivate StudentService studentService;@GetMapping("/user/{id}")public Student findById(@PathVariable int id) {return studentService.findById(id);}@GetMapping("/user/all")public List<Student> findAll() {return studentService.findAll();}
}

九、启动类

@SpringBootApplication
@MapperScan("com.hlx.springbootdemo1.mapper")
public class SpringbootDemo1Application {public static void main(String[] args) {SpringApplication.run(SpringbootDemo1Application.class, args);}}

十、项目结构

十一、启动运行


http://www.ppmy.cn/server/144296.html

相关文章

Load-Balanced-Online-OJ(负载均衡式在线OJ)

负载均衡式在线OJ 1. 项目介绍2. 项目说明4. 项目代码5. 项目演示 1. 项目介绍 2. 项目说明 4. 项目代码 5. 项目演示

《AI大模型赋能电商行业,引领变革》

《AI大模型赋能电商行业&#xff0c;引领变革》 AI大模型正为电商行业带来深刻变革。 在用户体验方面&#xff0c;其能实现精准个性化推荐。通过分析海量用户行为数据&#xff0c;为每位消费者推送契合喜好的商品&#xff0c;提升购物效率与转化率&#xff0c;增强用户粘性…

Flink【基于时间的双流联结 Demo】

前言 1、基于时间的双流联结&#xff08;Join&#xff09; 对于两条流的合并&#xff0c;很多情况我们并不是简单地将所有数据放在一起&#xff0c;而是希望根据某个字段的值将它们联结起来&#xff0c;“配对”去做处理。例如用传感器监控火情时&#xff0c;我们需要将大量温度…

[C++]:IO流

1. IO 流 1.1 流的概念 在C中&#xff0c;存在一种被称为“流”的概念&#xff0c;它描述的是信息流动的过程&#xff0c;具体来说就是信息从外部输入设备&#xff08;比如常见的键盘&#xff09;传输到计算机内部&#xff08;像内存区域&#xff09;&#xff0c;以及信息从内…

136.flask内置jinja2模版使用

文章目录 基本使用 基本使用 入口 # conding:utf-8 import os from flask import Flaskapp Flask(__name__,template_foldertemplate)app.config[SECRET_KEY] os.urandom(20)from controlle.index02 import index02 app.register_blueprint(index02)# 过滤器 app.template_f…

三道贪心题

406. 根据身高重建队列 题解&#xff1a;代码随想录 AC代码&#xff1a; class Solution {public int[][] reconstructQueue(int[][] people) {Arrays.sort(people,(a,b)->{if(a[0]b[0]) return a[1]-b[1];else return b[0]-a[0];});LinkedList<int[]> queuenew L…

17.100ASK_T113-PRO 配置QT运行环境(三)

前言 1.打开QT,新建项目. 做成以下效果,会QT都没有问题吧 编译输出: /home/book/LED_and_TempHumi/build-LED_and_TempHumi-100ask-Debug LED_and_TempHumi 2.下载程序与测试 设置运行环境 export QT_QPA_PLATFORMlinuxfb 这个地方还需要加字体,不然不会显示字体.

Android 使用 LiveData/OnCheckedChangeListener 来监听变量变化

学习笔记 总结&#xff1a; 方法 1&#xff1a;使用 LiveData 是一种更现代和响应式的方式&#xff0c;适用于需要在 UI 更新时自动响应数据变化的场景&#xff0c;特别适合处理状态变化、配置更复杂的业务逻辑时。 方法 2&#xff1a;使用 OnCheckedChangeListener 适合处理…