成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Spring Boot2(一):使用Spring Boot2集成Mybatis基礎(chǔ)搭建

TANKING / 1045人閱讀

摘要:主要有兩種解決方案,一種是使用注解解決一切問題,一種是簡化后的老傳統(tǒng)。新建項目默認(rèn)為,直接改為,另外新增一個用戶不同環(huán)境使用不同的配置文件用。配置指定配置文件為配置開啟駝峰命名轉(zhuǎn)換,如。

倉庫地址:spring-boot-learning
歡迎star、fork,給作者一些鼓勵

前言

Mybatis 初期使用比較麻煩,需要各種配置文件、實體類、Dao 層映射關(guān)聯(lián)、還有一大推其它配置。mybatis-spring-boot-starter 就是 Spring Boot+ Mybatis 可以完全注解不用配置文件,也可以簡單配置輕松上手。

mybatis-spring-boot-starter

官方說明:MyBatis Spring-Boot-Starter will help you use MyBatis with Spring Boot
其實就是 Mybatis 看 Spring Boot 這么火熱也開發(fā)出一套解決方案來湊湊熱鬧,但這一湊確實解決了很多問題,使用起來確實順暢了許多。mybatis-spring-boot-starter主要有兩種解決方案,一種是使用注解解決一切問題,一種是簡化后的老傳統(tǒng)。

當(dāng)然任何模式都需要首先引入mybatis-spring-boot-starter的 Pom 文件,現(xiàn)在最新版本是 2.0.1


    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    2.0.1

我一般使用的是XML極簡模式,可能是由于之前用的hibernate用習(xí)慣了

極簡 xml 版本

極簡 xml 版本保持映射文件的老傳統(tǒng),接口層只需要定義空方法,系統(tǒng)會自動根據(jù)方法名在映射文件中找對應(yīng)的 Sql .

1 添加相關(guān) Maven 文件

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.0.1
        
        
            mysql
            mysql-connector-java
            runtime
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

完整的 Pom 包這里就不貼了,大家直接看源碼

2、application.yml相關(guān)配置

推薦使用application.yml進(jìn)行配置,其實使用application.yml或者application.properties都是一樣的效果,application.yml最終是轉(zhuǎn)換為application.properties進(jìn)行生效的,只不過application.yml視覺效果看起來更加明了。新建項目默認(rèn)為application.properties,直接改為application.yml,另外新增一個application-test.yml用戶不同環(huán)境使用不同的配置文件用。

application.yml配置:

#指定配置文件為test
spring:
  profiles:
    active: test

#配置Mybatis
mybatis:
  type-aliases-package: com.niaobulashi.entity
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # 開啟駝峰命名轉(zhuǎn)換,如:Table(create_time) -> Entity(createTime)。不需要我們關(guān)心怎么進(jìn)行字段匹配,mybatis會自動識別`大寫字母與下劃線`
    map-underscore-to-camel-case: true

#打印SQL日志
logging:
  level:
    com.niaobulashi.dao: DEBUG

application-test.yml配置:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

Spring Boot 會自動加載 spring.datasource.* 相關(guān)配置,數(shù)據(jù)源就會自動注入到 sqlSessionFactory 中,sqlSessionFactory 會自動注入到 Mapper 中,對了,你一切都不用管了,直接拿起來使用就行了。

在啟動類中添加對 mapper 包掃描@MapperScan

@SpringBootApplication
@MapperScan("com.niaobulashi.dao")
public class MybatisApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisApplication.class, args);
    }

}

或者直接在 Mapper 類上面添加注解@Mapper,建議使用上面那種,不然每個 mapper 加個注解也挺麻煩的

3、添加 User 的實例
@Data
public class SysUserEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    //用戶ID
    private Long userId;

    //用戶名
    private String username;

    //密碼
    private String password;

    //鹽
    private String salt;

    //郵箱
    private String email;

    //手機號
    private String mobile;

    //狀態(tài)  0:禁用   1:正常
    private Integer status;
    
    //創(chuàng)建時間
    private Date createTime;
}
4、添加 User 的映射文件


    
    

其實就是把上個版本中 Mapper 的 Sql 搬到了這里的 xml 中了

5、編寫 Mapper 層的代碼
public interface SysUserDao {
    /**
     * 根據(jù)userId查詢用戶信息
     * @param userId  用戶ID
     */
    List queryUserInfo(Long userId);
}
6、編寫Service層的代碼

SysUserService接口類:

public interface SysUserService {
    /**
     * 查詢用戶的所有菜單ID
     */
    List queryUserInfo(Long userId);
}

SysUserServiceImpl實現(xiàn)類:

@Service("sysUserService")
public class SysUserServiceImpl  implements SysUserService {
    @Resource
    private SysUserDao sysUserDao;
    /**
     * 查詢用戶的所有菜單ID
     * @param userId
     * @return
     */
    @Override
    public List queryUserInfo(Long userId) {
        return sysUserDao.queryUserInfo(userId);
    }
}
7、測試

經(jīng)過上面5個步驟就可以完成基本的接口開發(fā),省去了Controller層的開發(fā)

@RunWith(SpringRunner.class)
@SpringBootTest
public class MabatisTest {
    private final static Logger logger = LoggerFactory.getLogger(MabatisTest.class);

    @Autowired
    private SysUserService sysUserService;

    @Test
    public void queryUserInfo() throws Exception {
        SysUserEntity userEntity = new SysUserEntity();
        userEntity.setUserId(1L);
        List list = sysUserService.queryUserInfo(userEntity.getUserId());
        logger.info("list:" + list);
    }

}
最后項目目錄結(jié)構(gòu)

總結(jié)

SpringBoot和Mybatis這對CP,完美

示例代碼-github

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75491.html

相關(guān)文章

  • Spring Boot2(二):使用Spring Boot2集成Mybatis緩存機制

    摘要:本文章的源碼再文章末尾什么是查詢緩存有一級緩存和二級緩存。默認(rèn)開啟一級緩存。證明了一級緩存只是在數(shù)據(jù)庫會話內(nèi)部共享的。但是,整合到中后,一級緩存就會被關(guān)閉。根據(jù)時間表比如沒有刷新間隔緩存不會以任何時間順序來刷新。 倉庫地址:spring-boot-learning歡迎star、fork,給作者一些鼓勵 學(xué)習(xí)SpringBoot集成Mybatis的第二章,了解到Mybatis自帶的緩存機...

    mikasa 評論0 收藏0
  • Spring Boot2(二):使用Spring Boot2集成Mybatis緩存機制

    摘要:本文章的源碼再文章末尾什么是查詢緩存有一級緩存和二級緩存。默認(rèn)開啟一級緩存。證明了一級緩存只是在數(shù)據(jù)庫會話內(nèi)部共享的。但是,整合到中后,一級緩存就會被關(guān)閉。根據(jù)時間表比如沒有刷新間隔緩存不會以任何時間順序來刷新。 倉庫地址:spring-boot-learning歡迎star、fork,給作者一些鼓勵 學(xué)習(xí)SpringBoot集成Mybatis的第二章,了解到Mybatis自帶的緩存機...

    NSFish 評論0 收藏0
  • Spring Boot2(三):使用Spring Boot2集成Redis緩存

    摘要:本文章的源碼再文章末尾什么是查詢緩存有一級緩存和二級緩存。默認(rèn)開啟一級緩存。證明了一級緩存只是在數(shù)據(jù)庫會話內(nèi)部共享的。但是,整合到中后,一級緩存就會被關(guān)閉。根據(jù)時間表比如沒有刷新間隔緩存不會以任何時間順序來刷新。 學(xué)習(xí)SpringBoot集成Mybatis的第二章,了解到Mybatis自帶的緩存機制,在部署的時候踩過了一些坑。在此記錄和分享一下Mybatis的緩存作用。 本文章的源碼再...

    NusterCache 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<