真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

一文教你使用MyBatis

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)一文教你使用MyBatis,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比長治網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式長治網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋長治地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

什么是 MyBatis

一文教你使用MyBatis

MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的持久層框架。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集。MyBatis 可以對配置和原生Map使用簡單的 XML 或注解,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄。

SpringBoot 中使用

使用 Maven

在你的pom.xml中:


  org.mybatis.spring.boot
  mybatis-spring-boot-starter
  1.2.1-SNAPSHOT

使用 Gradle

在你的 build.gradle中:

dependencies {
  compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.2.1-SNAPSHOT")
}

使用

目錄結(jié)構(gòu)

--src 
 --main
 --java
  --com.example
  --dao
   --UserDao.java
  --entity
   --User.java
  --DemoApplication.java
  --UserSex.java
 --resources
 --mapper
  --UserMapper.xml
 --application.properties

基于注解

使用MyBatis-Spring-Boot-Starter will:

將自動檢測存在的數(shù)據(jù)源

將數(shù)據(jù)源輸入然后創(chuàng)建注冊一個SqlSessionFactoryBean實例

從SqlSessionFactoryBean中創(chuàng)建注冊一個SqlSessionTemplate實例

自動掃描你的 mappers,將它們連接到SqlSessionTemplate然后將它們注冊到 Spring 的上下文

我們新建一個實體類User.java,在這里我們使用 Lombok (使用說明見這篇文章)來簡化代碼

@Data
public class User {
  private Long id;
  private String userName;
  private String password;
  private UserSex userSex;
  private String nickName;
}

接著我們創(chuàng)建一張叫 user的表

DROP TABLE IF EXISTS user;
CREATE TABLE user(
 id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵id',
 user_name VARCHAR(32) DEFAULT NULL COMMENT '用戶名',
 password VARCHAR(32) DEFAULT NULL COMMENT '密碼',
 user_sex VARCHAR(32) DEFAULT NULL ,
 nick_name VARCHAR(32) DEFAULT NULL ,
 PRIMARY KEY (id)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

然后創(chuàng)建一個 Dao 文件UserDao.java

@Mapper
public interface UserDao {
  @Select("SELECT * FROM user WHERE id = #{id}")
  @Results({
      @Result(property = "userName", column = "user_name"),
      @Result(property = "password", column = "password"),
      @Result(property = "userSex", column = "user_sex", javaType = UserSex.class),
      @Result(property = "nickName",column = "nick_name")
  })
  User findById(@Param("id") Long id);
  @Insert("INSERT INTO user (user_name,password,user_sex ) VALUES (#{userName},#{password},#{userSex})")
  void save(User user);
  @Update("UPDATE user set user_name = #{userName}, nick_name = #{nickName} WHERE id = #{id}")
  void update(User user);
  @Delete("DELETE FROM user where id = #{id}")
  void remove(Long id);
}

每個方法都對應(yīng)的對應(yīng)的 sql 語句,其中@Select注解用于查詢,@Result注解將實體類屬性跟數(shù)據(jù)庫的字段一一對應(yīng),@Insert注解用于插入數(shù)據(jù),@Update注解用于修改數(shù)據(jù),@Delete注解用于刪除

接下來我們簡單的測試下

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
  @Autowired
  UserDao userDao;
  @Test
  public void test(){
    User one = new User();
    one.setUserName("張三");
    one.setPassword("123456");
    one.setUserSex(UserSex.MAN);
    userDao.save(one);
    User two = new User();
    two.setUserName("李四");
    two.setPassword("123456");
    two.setUserSex(UserSex. WOMAN);
    userDao.save(two);
  }
}

結(jié)果如下

結(jié)果

基于 XML 配置

在application.properties配置文件中新增以下配置

mybatis.type-aliases-package= com.example.entity
mybatis.mapper-locations=classpath:mapper/*.xml

然后在resources文件夾中創(chuàng)建mapper文件夾,然后新建一個userMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>


  
    
    
    
    
    
  
  
    INSERT INTO user (user_name,password,user_sex ) VALUES (#{userName},#{password},#{userSex})
  
  
    DELETE FROM user where id = #{id}
  
  
    UPDATE user SET user_name = #{userName}, nick_name =#{nickName} WHERE id = #{id}
  
  

然后將UserDao.java文件修改如下

public interface UserDao {
  User findById(Long id);
  void save(User user);
  void update(User user);
  void remove(Long id);
}

最后在SpringBoot的主程序上加上@MapperScan的注解將 dao 文件跟 sql 語句對應(yīng)起來

@SpringBootApplication
@MapperScan("com.example.dao")
public class DemoApplication {
 public static void main(String[] args) {
 SpringApplication.run(DemoApplication.class, args);
 }
}

總結(jié)

mybatis-spring-boot-starter可以快速的通過注解來開發(fā),十分方便,可以靈活的使用 SQL 和調(diào)整 SQL,具體用注解還是基于 XML,我覺得還是看自己的喜好。

下面看下#{}和${}的區(qū)別

#{}在底層實現(xiàn)上使用?做占位符來生成PreparedStatement,然后將參數(shù)傳入,大多數(shù)情況都應(yīng)使用這個,它更快、更安全。

${}將傳入的數(shù)據(jù)直接顯示生成在sql中。如:order by ${user_id},如果傳入的值是111,那么解析成sql時的值為order by 111, 如果傳入的值是id,則解析成的sql為order by id.

上述就是小編為大家分享的一文教你使用MyBatis了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站名稱:一文教你使用MyBatis
鏈接分享:http://weahome.cn/article/jdegod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部