Javaweb - MyBatis 精华篇

简介: Javaweb - MyBatis 精华篇

快速入门

//pojo 实体类层
public class User {
    private Integer id;
    private String name;
    private String username;
    private String gender;
    private Short age;
 
    public User(Integer id, String name, String username,String gender, Short age) {
        this.id = id;
        this.name = name;
        this.username = username;
        this.gender = gender;
        this.age = age;
    }
 
    public User() {
    }
 
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", username='" + username + '\'' +
                ", gender=" + gender +
                ", age=" + age +
                '}';
    }
 
    public Integer getId() {
        return id;
    }
 
    public void setId(Integer id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getUsername() {
        return username;
    }
 
    public void setUsername(String username) {
        this.username = username;
    }
 
    public String getGender() {
        return gender;
    }
 
    public void setGender(String gender) {
        this.gender = gender;
    }
 
    public Short getAge() {
        return age;
    }
 
    public void setAge(Short age) {
        this.age = age;
    }
}
 
//业务逻辑层
@Mapper//在运行时,会自动生成该接口的实现类对象(代理对象),并且将该对象交给IOC容器管理
public interface UserMapper {
    //查询全部用户对象
    @Select("select * from t_user")
    public List<User>  list();
 
}
 
//测试层面
 
@SpringBootTest
class SpringbootMybatisQuickstartApplicationTests {
    @Autowired//将UserMapper 此接口需要在接口前声明@Mapper注解  放入IOC 容器管理的对象创建出来
    private UserMapper userMapper;
 
    @Test
    void textListUser() {
        List<User> list = userMapper.list();
        list.stream().forEach(user ->  System.out.println(user));
    }
 
}
配置SQL提示

JDBC

数据库连接池

lombok

进阶

MyBatis crud

这些方法主要在mapper中写crud方法,并且加上对应的注解

1. 删除

mybatis日志输出在yaml配置文件中配置日志开启,具体可见下面截图

SQL注入,参数占位符

解决上去了注入,生成预编译SQL

#{}:参数传递

${}:表名、列名进行动态设置

两者{}中放置的都是实体类中的属性

2. 插入(insert)

主键返回 需要在方法上增添Options注解,并标明属性值

3. 更新(update)

4. 查询(select)

解决查询出来为null的方法

  1. 在方法查询SQL中起别名,使SQL中的字段映射与实体类属性值映射
  2. 在方法中添加@Results和@Result 注解
  3. 在yaml中配置驼峰命名法 (在方法中继续使用原SQL即可)

条件查询

解决模糊查询的SQL注入问题

  1. 接口方法,使用${name}
  2. 使用原SQL语句中的concat(字符串拼接),直接在SQL语句中进行解决。

5. xml配置文件(映射)

在mybatis中有两种方法进行mapper方法中的SQL书写,一种是直接在方法中书写,另外一种则是xml文件映射

6. 动态SQL
6.1. if标签

用if标签来指定查询,也就是动态SQL

引入where动态判断是否需要where后面的查询语句

引入set标签,解决 update标签后面的set问题

6.2. foreach标签

常用于批量操作中,例如,删除delete in 或者select in

6.3. sql include标签

目录
相关文章
|
2月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
2月前
|
SQL Java 数据库连接
JavaWeb基础3——Maven基础&MyBatis
构建工具Maven、Maven安装配置、基本使用、IDEA使用Maven、依赖管理、插件、Mybatis、核心配置文件mybatis-config.xml、Mapper代理开发、配置文件实现增删改查、Mybatis参数传递、注解实现增删改查
JavaWeb基础3——Maven基础&MyBatis
|
5月前
|
SQL Java 数据库连接
*Javaweb -- MyBatis*
*Javaweb -- MyBatis*
|
5月前
|
SQL Java 数据库连接
JavaWeb基础第三章(MyBatis的应用,基础操作与动态SQL)
JavaWeb基础第三章(MyBatis的应用,基础操作与动态SQL)
|
5月前
|
Java 数据库连接 Apache
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)
|
6月前
|
SQL XML Java
Javaweb之Mybatis的动态SQLforeach和include的详细解析
Javaweb之Mybatis的动态SQLforeach和include的详细解析
61 0
|
6月前
|
SQL Java 数据库连接
Javaweb之Mybatis的动态SQL的详细解析
Javaweb之Mybatis的动态SQL的详细解析
50 0
|
6月前
|
XML Java 数据库连接
Javaweb之Mybatis的XML配置文件的详细解析
Javaweb之Mybatis的XML配置文件的详细解析
72 0
|
6月前
|
SQL Java 数据库连接
Javaweb之Mybatis的基础操作之查询操作的详细解析
Javaweb之Mybatis的基础操作之查询操作的详细解析
67 0
|
1月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
106 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。