IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> spring实验6 -> 正文阅读

[Java知识库]spring实验6

实验六 Springboot整合Mybatis

目录

实验目的:

实验类型:

实验学时:

实验内容:

实验任务1:创建一个springboot工程导入Spring整合Mybatis相关依赖

实验任务2:同spring实验4一样,创建pojo类,service,controller,dao层

实验任务3:在资源文件下的application.properties文件写入如下代码

实验任务4:mapper映射文件

实验任务5:controller层代码

实验任务6:dao层代码

实验任务7:在浏览器中运行

总结:


实验目的:

  1. 了解Springboot整合Mybatis的作用
  2. 多参数使用注释
  3. 完成Customer增删改查的功能
  4. 使用动态sql完成查询功能

实验类型:

验证性

实验学时:

2学时

实验内容:

实验任务1:创建一个springboot工程导入Spring整合Mybatis相关依赖

<dependencies>
????<dependency>
????????<groupId>org.springframework.boot</groupId>
????????<artifactId>spring-boot-starter-web</artifactId>
????</dependency>

????<dependency>
????????<groupId>org.springframework.boot</groupId>
????????<artifactId>spring-boot-starter-test</artifactId>
????????<scope>test</scope>
????</dependency>

????<dependency>
????????<groupId>org.mybatis.spring.boot</groupId>
????????<artifactId>mybatis-spring-boot-starter</artifactId>
????????<version>1.3.2</version>
????</dependency>

????<dependency>
????????<groupId>mysql</groupId>
????????<artifactId>mysql-connector-java</artifactId>
????????<version>5.1.45</version>
????</dependency>

????<dependency>
????????<groupId>org.springframework.boot</groupId>
????????<artifactId>spring-boot-devtools</artifactId>
????????<scope>runtime</scope>
????????<optional>true</optional>
????</dependency>

</dependencies>

实验任务2:同spring实验4一样,创建pojo类,service,controller,dao层

Pojo代码

public class Customer {
????private Integer id;
????private String username;
????private String jobs;
????private String phone;

????public Integer getId() {
????????return id;
????}

????public void setId(Integer id) {
????????this.id = id;
????}

????public String getUsername() {
????????return username;
????}

????public void setUsername(String username) {
????????this.username = username;
????}

????public String getJobs() {
????????return jobs;
????}

????public void setJobs(String jobs) {
????????this.jobs = jobs;
????}

????public String getPhone() {
????????return phone;
????}

????public void setPhone(String phone) {
????????this.phone = phone;
????}

????@Override
????public String toString() {
????????return "Customer{" +
????????????????"id=" + id +
????????????????", username='" + username + '\'' +
????????????????", jobs='" + jobs + '\'' +
????????????????", phone='" + phone + '\'' +
????????????????'}';
????}
}

实验任务3:在资源文件下的application.properties文件写入如下代码

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=x5

# 访问templates包下的文件
spring.web.resources.static-locations=classpath:/templates/,classpath:templates/static/

mybatis.mapper-locations=classpath:mapper/*.xml

实验任务4:mapper映射文件

<?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.li.dao.CustomerDao">
????<select id="query" resultType="com.li.pojo.Customer" >
????????select * from customer
????????<where>
????????????<if test="customer.username!=null and customer.username !=''">
???????????????and username like concat('%',#{customer.username},'%')
????????????</if>

????????????<if test="customer.jobs!=null and customer.jobs!=''">
????????????????and jobs like concat('%',#{customer.jobs},'%')
????????????</if>
????????</where>

????????<if test="pageNo!=null and pageNo!=''">
????????????limit 0,#{pageNo}
????????</if>
????</select>

???<insert id="add" parameterType="com.li.pojo.Customer">
???????insert into customer(username,jobs,phone) values(#{username},#{jobs},#{phone});
????</insert>

?????<update id="update" parameterType="com.li.pojo.Customer">
????????update customer set username=#{username},jobs=#{jobs},phone=#{phone} where id=#{id};
????</update>

????<delete id="delete" parameterType="int">
????????delete from customer where id=#{id};
????</delete>
</mapper>

实验任务5:controller层代码

@RestController
public class CustomerController {

????@Autowired
????CustomerService service;

????//1 如果
????//2 如果接受的的参数名不在pojo的属性中 ,那么通过@Param()将值床底到apper.xml中
????@RequestMapping("/query")
????public List<Customer> query(Customer customer,Integer pageNo){//返回集合?springboot 的Controller方法返回值可以自动转json,ssm不行
????????List<Customer> list=service.query(customer,pageNo);
????????System.out.println(list);
????????return list;
????}

????@RequestMapping("/add")
????@Transactional
????public void add(Customer customer){
????????customer.setJobs("123");
????????customer.setPhone("xxx");
????????customer.setUsername("123xx");
????????service.add(customer);
????}

????@Transactional
????public void update(Customer customer){
????????service.update(customer);
????}

????@Transactional
????public void delete(Integer id){
????????service.delete(id);
????}


}

实验任务6:dao层代码

@Component
public interface CustomerDao {

    public List<Customer> query(@Param("customer") Customer customer, @Param("pageNo") Integer pageNo);

    public void add(Customer customer);

    public void update(Customer customer);

    public void delete(Integer id);
}

实验任务7:在浏览器中运行

输入如地址:http://localhost:8080/query

可以查询出全部数据

输入地址:http://localhost:8080/query?username=张

可以看到姓张的数据

?

输入地址:http://localhost:8080/query?username=李&jobs=manager

可以查看到姓李工作是manager的数据

?

总结:

动态sql中的<where>标签可以自动省略掉sql语句前的and

当要传的参数较多时可以使用@Param()注解来指定传的参数名,传参数的方式不止一种,还可以用map等方式来传送参数。

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:18:07  更:2022-03-12 17:19:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:02:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码