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

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

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

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

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

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

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

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

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

1.2 搭建環(huán)境

 1.2.1 創(chuàng)建表

執(zhí)行此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 '創(chuàng)建時間',
	`views` INT(30) NOT NULL COMMENT '瀏覽量'
)ENGINE=INNODB DEFAULT CHARSET=utf8

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

1.2.2 創(chuàng)建一個基礎(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 編寫配置文件

mybatis-config.xml

    <!--    引入外部配置文件-->
    <properties resource="db.properties"/>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <!--       是否開啟駝峰命名自動映射,即從經(jīng)典數(shù)據(jù)庫列名 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 編寫實體類

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ù)庫是 create_time
    private int views;
}

1.2.2.4 編寫實體類對應(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 編寫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());
    }
}

運行結(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();
    }
}

運行結(jié)果:



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

總結(jié)

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

相關(guān)文章

  • SpringMVC多個模塊404報錯問題及解決

    SpringMVC多個模塊404報錯問題及解決

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

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

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

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

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

    Java Lambda 表達式詳解及示例代碼

    本文主要介紹Java Lambda 表達式的知識,這里整理了相關(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()這兩個核心方法的使用,需要的朋友可以參考下
    2016-05-05
  • java中使用interrupt通知線程停止詳析

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

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

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

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

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

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

    Spring中獲取Bean方法上的自定義注解問題解析

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

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

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

最新評論

建湖县| 当涂县| 陇西县| 诸暨市| 天柱县| 岐山县| 静宁县| 平南县| 波密县| 疏附县| 桐乡市| 古交市| 宣武区| 通江县| 麻城市| 诸暨市| 商河县| 四子王旗| 扶余县| 灵武市| 天门市| 韶山市| 天津市| 藁城市| 涟水县| 双江| 云浮市| 海原县| 红桥区| 龙陵县| 长葛市| 汝城县| 桂林市| 黑龙江省| 界首市| 理塘县| 葵青区| 嵊泗县| 新密市| 东乡| 莱西市|