Mybatis-动态sql-搭建环境


动态sql:就是根据不同的条件生成不同的sql语句


1.搭建环境:

数据库:

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

实体类:

package com.kakafa.pojo;

import lombok.Data;

import java.util.Date;

@Data
@AllArgsConstructor
public class Blog {
    private String id;
    private String title;
    private String author;
    private Date createTime;//和数据库中的字段名不一样 mapUnderscoreToCamelCase
    private int views;
}

mybatis-config:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">


<configuration>
    
    <properties resource="db.properties"/>
    
    <settings>
        <!--标准日志文件-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <!--是否开启驼峰命名规则(camel case)映射-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

    <environments default="test">
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper class="com.kakafa.dao.BlogMapper"/>
    </mappers>
    
</configuration>


IdUtils:

package com.kakafa.util;

import org.junit.Test;

import java.util.UUID;

public class IdUtils {
    public static String getId(){
        return UUID.randomUUID().toString().replaceAll("-","");
    }

    @Test
    public void test(){
        System.out.println(IdUtils.getId());
    }
}

BlogMapper:

package com.kakafa.dao;

import com.kakafa.pojo.Blog;

public interface BlogMapper {

    //插入数据
    int addBook(Blog blog);

}

BlogMapper.xml:

<?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.kakafa.dao.BlogMapper">

    <insert id="addBook" parameterType="com.kakafa.pojo.Blog">
        insert into mybatistest.blog(id,title,author,create_time,views)
        values(#{id},#{title},#{author},#{createTime},#{views});
    </insert>

</mapper>

test:

@Test
    public void addBlogTest(){
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);

        mapper.addBook(new Blog(IdUtils.getId(),"谁动了我的奶酪","斯宾塞约翰逊",new Date(),999));
        sqlSession.commit();
        sqlSession.close();

    }

posted @ 2021-12-23 21:26  卡卡发  阅读(37)  评论(0)    收藏  举报