最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis 動(dòng)態(tài)SQL搭建環(huán)境的全過(guò)程

 更新時(shí)間:2021年05月06日 14:30:20   作者:TheLightOfCode  
這篇文章主要給大家介紹了關(guān)于Mybatis動(dòng)態(tài)SQL搭建環(huán)境的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1. Mybatis–動(dòng)態(tài)SQL

動(dòng)態(tài) SQL 是 MyBatis 的強(qiáng)大特性之一。如果你使用過(guò) JDBC 或其它類似的框架,你應(yīng)該能理解根據(jù)不同條件拼接 SQL 語(yǔ)句有多痛苦,例如拼接時(shí)要確保不能忘記添加必要的空格,還要注意去掉列表最后一個(gè)列名的逗號(hào)。利用動(dòng)態(tài) SQL,可以徹底擺脫這種痛苦。

在 MyBatis 之前的版本中,需要花時(shí)間了解大量的元素。
借助功能強(qiáng)大的基于 OGNL 的表達(dá)式,MyBatis 3 替換了之前的大部分元素,
大大精簡(jiǎn)了元素種類,現(xiàn)在要學(xué)習(xí)的元素種類比原來(lái)的一半還要少。

if
choose (when, otherwise)
trim (where, set)
foreach

1.1 什么是動(dòng)態(tài)SQL?

動(dòng)態(tài)SQL就是 指根據(jù)不同的條件生成不同的SQL語(yǔ)句

1.2 搭建環(huán)境

 1.2.1 創(chuàng)建表

執(zhí)行此sql語(yǔ)句

CREATE TABLE `blog`(
	`id` VARCHAR(50) NOT NULL COMMENT '博客id',
	`title` VARCHAR(100) NOT NULL COMMENT '博客標(biāo)題',
	`author` VARCHAR(30) NOT NULL COMMENT '博客作者',
	`create_time` DATETIME NOT NULL COMMENT '創(chuàng)建時(shí)間',
	`views` INT(30) NOT NULL COMMENT '瀏覽量'
)ENGINE=INNODB DEFAULT CHARSET=utf8

執(zhí)行結(jié)果:

1.2.2 創(chuàng)建一個(gè)基礎(chǔ)工程

1.2.2.1 導(dǎo)包

pom.xml

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

1.2.2.2 編寫(xiě)配置文件

mybatis-config.xml

    <!--    引入外部配置文件-->
    <properties resource="db.properties"/>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <!--       是否開(kāi)啟駝峰命名自動(dòng)映射,即從經(jīng)典數(shù)據(jù)庫(kù)列名 A_COLUMN 映射到經(jīng)典 Java 屬性名 aColumn。 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <typeAliases>
        <typeAlias type="com.tian.pojo.Blog" alias="Blog"/>
    </typeAliases>

1.2.2.3 編寫(xiě)實(shí)體類

Blog.java

package com.tian.pojo;

import lombok.Data;

import java.util.Date;

@Data
public class Blog {
    private String id;
    private String title;
    private String author;
    private Date createTime; //屬性名和字段名不一致 數(shù)據(jù)庫(kù)是 create_time
    private int views;
}

1.2.2.4 編寫(xiě)實(shí)體類對(duì)應(yīng)Mapper接口和Mapper.XML文件

BlogMapper.java

package com.tian.dao;

import com.tian.pojo.Blog;

public interface BlogMapper {
    //    插入數(shù)據(jù)
    int addBlog(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.tian.dao.BlogMapper">
    <insert id="addBlog" parameterType="Blog">
        insert into mybatis.blog(id, title, author, create_time, views)
        values (#{id}, #{title}, #{author}, #{createTime}, #{views});
    </insert>
</mapper>

1.2.2.5 編寫(xiě)IDUtils .java用于生成隨機(jī)的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());
    }
}

運(yùn)行結(jié)果:

1.2.2.6 向表中插入數(shù)據(jù)

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("微服務(wù)");
        mapper.addBlog(blog);

        sqlSession.close();
    }
}

運(yùn)行結(jié)果:



現(xiàn)在我們吧表中的數(shù)據(jù)稍微更改下

總結(jié)

到此這篇關(guān)于Mybatis 動(dòng)態(tài)SQL搭建環(huán)境的文章就介紹到這了,更多相關(guān)Mybatis動(dòng)態(tài)SQL環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC多個(gè)模塊404報(bào)錯(cuò)問(wèn)題及解決

    SpringMVC多個(gè)模塊404報(bào)錯(cuò)問(wèn)題及解決

    這篇文章主要介紹了SpringMVC多個(gè)模塊404報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 簡(jiǎn)單了解synchronized和lock的區(qū)別

    簡(jiǎn)單了解synchronized和lock的區(qū)別

    這篇文章主要介紹了簡(jiǎn)單了解synchronized和lock的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • java中TCP實(shí)現(xiàn)回顯服務(wù)器及客戶端

    java中TCP實(shí)現(xiàn)回顯服務(wù)器及客戶端

    本文主要介紹了java中TCP實(shí)現(xiàn)回顯服務(wù)器及客戶端,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Java Lambda 表達(dá)式詳解及示例代碼

    Java Lambda 表達(dá)式詳解及示例代碼

    本文主要介紹Java Lambda 表達(dá)式的知識(shí),這里整理了相關(guān)資料,JavaLambda 是Java8 引入的新功能,有興趣的小伙伴可以參考下
    2016-09-09
  • 詳解Java獲取環(huán)境變量及系統(tǒng)屬性的方法

    詳解Java獲取環(huán)境變量及系統(tǒng)屬性的方法

    這篇文章主要介紹了詳解Java獲取環(huán)境變量及系統(tǒng)屬性的方法,講解了System.getEnv()和System.getProperties()這兩個(gè)核心方法的使用,需要的朋友可以參考下
    2016-05-05
  • java中使用interrupt通知線程停止詳析

    java中使用interrupt通知線程停止詳析

    這篇文章主要介紹了java中使用interrupt通知線程停止詳析,文章介紹的是使用interrupt來(lái)通知線程停止運(yùn)行,而不是強(qiáng)制停止,詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-09-09
  • MyBatis實(shí)現(xiàn)插入大量數(shù)據(jù)方法詳解

    MyBatis實(shí)現(xiàn)插入大量數(shù)據(jù)方法詳解

    最近在公司項(xiàng)目開(kāi)發(fā)中遇到批量數(shù)據(jù)插入或者更新,下面這篇文章主要給大家介紹了關(guān)于MyBatis實(shí)現(xiàn)批量插入的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Java實(shí)現(xiàn)高效隨機(jī)數(shù)算法的示例代碼

    Java實(shí)現(xiàn)高效隨機(jī)數(shù)算法的示例代碼

    這篇文章主要介紹了Java實(shí)現(xiàn)高效隨機(jī)數(shù)算法的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Spring中獲取Bean方法上的自定義注解問(wèn)題解析

    Spring中獲取Bean方法上的自定義注解問(wèn)題解析

    這篇文章主要介紹了Spring中如何獲取Bean方法上的自定義注解,基本的思路就是通過(guò)Spring提供的ApplicationContext#getBeansWithAnnotation+反射來(lái)實(shí)現(xiàn),需要的朋友可以參考下
    2023-06-06
  • 顯示IntelliJ IDEA工具的Run Dashboard功能圖文詳解

    顯示IntelliJ IDEA工具的Run Dashboard功能圖文詳解

    這篇文章主要介紹了顯示IntelliJ IDEA工具的Run Dashboard功能,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論

平舆县| 霍林郭勒市| 桃源县| 股票| 客服| 海门市| 高陵县| 普兰店市| 旺苍县| 景德镇市| 海原县| 涡阳县| 弥勒县| 秦安县| 山西省| 香港| 崇明县| 当涂县| 南江县| 宾川县| 宝兴县| 利津县| 梁山县| 荣成市| 固安县| 库尔勒市| 台东县| 集安市| 兴文县| 红安县| 鄂托克前旗| 新邵县| 伊吾县| 长宁区| 策勒县| 广德县| 开阳县| 滨海县| 宁德市| 江永县| 陇西县|