国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

TANKING / 1040人閱讀

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

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

前言

Mybatis 初期使用比較麻煩,需要各種配置文件、實體類、Dao 層映射關聯、還有一大推其它配置。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 這么火熱也開發出一套解決方案來湊湊熱鬧,但這一湊確實解決了很多問題,使用起來確實順暢了許多。mybatis-spring-boot-starter主要有兩種解決方案,一種是使用注解解決一切問題,一種是簡化后的老傳統。

當然任何模式都需要首先引入mybatis-spring-boot-starter的 Pom 文件,現在最新版本是 2.0.1


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

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

極簡 xml 版本

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

1 添加相關 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相關配置

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

application.yml配置:

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

#配置Mybatis
mybatis:
  type-aliases-package: com.niaobulashi.entity
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # 開啟駝峰命名轉換,如:Table(create_time) -> Entity(createTime)。不需要我們關心怎么進行字段匹配,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.* 相關配置,數據源就會自動注入到 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;

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


    
    

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

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

SysUserService接口類:

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

SysUserServiceImpl實現類:

@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、測試

經過上面5個步驟就可以完成基本的接口開發,省去了Controller層的開發

@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);
    }

}
最后項目目錄結構

總結

SpringBoot和Mybatis這對CP,完美

示例代碼-github

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75491.html

相關文章

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

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

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

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

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

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

    NusterCache 評論0 收藏0

發表評論

0條評論

TANKING

|高級講師

TA的文章

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