Mybatis--动态SQL(搭建环境)
发布日期:2021-05-06 01:33:12 浏览次数:12 分类:技术文章

本文共 3154 字,大约阅读时间需要 10 分钟。

1. Mybatis–动态SQL

动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。

在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少。ifchoose (when, otherwise)trim (where, set)foreach

1.1 什么是动态SQL?

动态SQL就是 指根据不同的条件生成不同的SQL语句


1.2 搭建环境

1.2.1 创建表

执行此sql语句

CREATE TABLE `blog`(	`id` VARCHAR(50) NOT NULL COMMENT '博客id',	`title` VARCHAR(100) NOT NULL COMMENT '博客标题',	`author` VARCHAR(30) NOT NULL COMMENT '博客作者',	`create_time` DATETIME NOT NULL COMMENT '创建时间',	`views` INT(30) NOT NULL COMMENT '浏览量')ENGINE=INNODB DEFAULT CHARSET=utf8

执行结果:

在这里插入图片描述


1.2.2 创建一个基础工程

在这里插入图片描述

1.2.2.1 导包

pom.xml

org.projectlombok
lombok
1.18.12
provided

1.2.2.2 编写配置文件

mybatis-config.xml


1.2.2.3 编写实体类

Blog.java

package com.tian.pojo;import lombok.Data;import java.util.Date;@Datapublic class Blog {       private String id;    private String title;    private String author;    private Date createTime; //属性名和字段名不一致 数据库是 create_time    private int views;}

1.2.2.4 编写实体类对应Mapper接口和Mapper.XML文件

BlogMapper.java

package com.tian.dao;import com.tian.pojo.Blog;public interface BlogMapper {       //    插入数据    int addBlog(Blog blog);}

BlogMapper.xml

insert into mybatis.blog(id, title, author, create_time, views) values (#{id}, #{title}, #{author}, #{createTime}, #{views});

1.2.2.5 编写IDUtils .java用于生成随机的ID

IDUtils .java

package com.tian.util;import org.junit.Test;import java.util.UUID;@SuppressWarnings("all") // 忽略所有警告public class IDUtils {       public static String getId() {           return UUID.randomUUID().toString().replaceAll("-", "");    }    @Test    public void test() {           System.out.println(getId());        System.out.println(getId());        System.out.println(getId());        System.out.println(getId());        System.out.println(getId());        System.out.println(getId());    }}

运行结果:

在这里插入图片描述


1.2.2.6 向表中插入数据

Test.java

import com.tian.dao.BlogMapper;import com.tian.pojo.Blog;import com.tian.util.IDUtils;import com.tian.util.MybatisUtils;import org.apache.ibatis.session.SqlSession;import java.util.Date;public class Test {       @org.junit.Test    public void test() {           SqlSession sqlSession = MybatisUtils.getSqlSession();        BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);        Blog blog = new Blog();        blog.setId(IDUtils.getId());        blog.setTitle("Mybatis");        blog.setAuthor("天天天");        blog.setCreateTime(new Date());        blog.setViews(9999);        mapper.addBlog(blog);        blog.setId(IDUtils.getId());        blog.setTitle("Java");        mapper.addBlog(blog);        blog.setId(IDUtils.getId());        blog.setTitle("Spring");        mapper.addBlog(blog);        blog.setId(IDUtils.getId());        blog.setTitle("微服务");        mapper.addBlog(blog);        sqlSession.close();    }}

运行结果:

在这里插入图片描述
在这里插入图片描述
现在我们吧表中的数据稍微更改下
在这里插入图片描述



上一篇:Mybatis--动态SQL之IF语句
下一篇:Mybatis--一对多处理(association 集合)

发表评论

最新留言

很好
[***.229.124.182]2025年03月09日 22时41分48秒