<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    SpringBoot整合Mybatis圖文教程

    共 4085字,需瀏覽 9分鐘

     ·

    2020-08-20 05:17


    這里介紹兩種整合SpringBoot和Mybatis的模式,分別是“全注解版” 和 “注解xml合并版”。


    前期準(zhǔn)備


    開發(fā)環(huán)境


    • 開發(fā)工具:

      IDEA

    • JDK:

      1.8

    • 技術(shù):

      SpringBoot、Maven、Mybatis


    創(chuàng)建項目







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



    Maven依賴


    xml version="1.0"?encoding="UTF-8"?>
    <project?xmlns="http://maven.apache.org/POM/4.0.0"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    ??xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    ??<modelVersion>4.0.0modelVersion>


    ??<groupId>com.examplegroupId>
    ??<artifactId>demoartifactId>
    ??<version>0.0.1-SNAPSHOTversion>
    ??<packaging>jarpackaging>

    ??<name>demoname>
    ??<description>Demo project for Spring Bootdescription>

    ??<parent>
    ????<groupId>org.springframework.bootgroupId>
    ????<artifactId>spring-boot-starter-parentartifactId>
    ????<version>2.0.0.RELEASEversion>
    ????<relativePath/>?
    ??parent>

    ??<properties>
    ????<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    ????<project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
    ????<java.version>1.8java.version>
    ??properties>

    ??<dependencies>
    ????<dependency>
    ??????<groupId>org.springframework.bootgroupId>
    ??????<artifactId>spring-boot-starter-webartifactId>
    ????dependency>
    ????<dependency>
    ??????<groupId>org.mybatis.spring.bootgroupId>
    ??????<artifactId>mybatis-spring-boot-starterartifactId>
    ??????<version>1.3.1version>
    ????dependency>

    ????<dependency>
    ??????<groupId>mysqlgroupId>
    ??????<artifactId>mysql-connector-javaartifactId>
    ??????<scope>runtimescope>
    ????dependency>
    ????<dependency>
    ??????<groupId>org.springframework.bootgroupId>
    ??????<artifactId>spring-boot-starter-testartifactId>
    ??????<scope>testscope>
    ????dependency>
    ??dependencies>

    ??<build>
    ????<plugins>
    ??????<plugin>
    ????????<groupId>org.springframework.bootgroupId>
    ????????<artifactId>spring-boot-maven-pluginartifactId>
    ??????plugin>
    ????plugins>
    ??build>
    project>


    全注解版


    SpringBoot配置文件


    這里使用yml格式的配置文件,將application.properties改名為application.yml。


    #配置數(shù)據(jù)源
    spring:
    ??datasource:
    ?????url:?jdbc:mysql://127.0.0.1:3306/dianping?useUnicode=true&characterEncoding=utf8
    ?????username:?root
    ?????password:?123
    ?????driver-class-name: com.mysql.jdbc.Driver


    SpringBoot會自動加載application.yml相關(guān)配置,數(shù)據(jù)源就會自動注入到sqlSessionFactory中,sqlSessionFactory會自動注入到Mapper中。


    實體類


    public?class?Happiness?{
    ????private?Long id;
    ????private?String city;
    ????private?Integer num;

    ??//getters、setters、toString
    }


    映射類


    @Mapper
    public interface HappinessDao {
    ????@Select("SELECT * FROM happiness WHERE city = #{city}")
    ????Happiness findHappinessByCity(@Param("city") String city);

    ????@Insert("INSERT INTO happiness(city, num) VALUES(#{city}, #{num})")
    ????int insertHappiness(@Param("city") String city, @Param("num") Integer num);
    }


    Service類


    事務(wù)管理只需要在方法上加個注解:@Transactional


    @Service
    public?class?HappinessService?{
    ????@Autowired
    ????private?HappinessDao happinessDao;

    ????public?Happiness selectService(String city){
    ????????return?happinessDao.findHappinessByCity(city);
    ????}

    ????@Transactional
    ????public?void?insertService(){
    ????????happinessDao.insertHappiness("西安", 9421);
    ????????int?a = 1?/ 0; //模擬故障
    ????????happinessDao.insertHappiness("長安", 1294);
    ????}
    }


    Controller類


    @RestController
    @RequestMapping("/demo")
    public class HappinessController {
    ????@Autowired
    ????private HappinessService happinessService;

    ????@RequestMapping("/query")
    ????public Happiness testQuery(){
    ????????return?happinessService.selectService("北京");
    ????}

    ????@RequestMapping("/insert")
    ????public?Happiness?testInsert(){
    ????????happinessService.insertService();
    ????????return?happinessService.selectService("西安");
    ????}
    }


    測試


    http://localhost:8080/demo/query
    http://localhost:8080/demo/insert


    注解xml合并版


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



    SpringBoot配置文件


    #配置數(shù)據(jù)源
    spring:
    ??datasource:
    ?????url:?jdbc:mysql://127.0.0.1:3306/dianping
    ?????username: root
    ?????password: 123
    ?????driver-class-name: com.mysql.jdbc.Driver

    #指定mybatis映射文件的地址
    mybatis:
    ??mapper-locations:?classpath:mapper/*.xml


    映射類


    @Mapper
    public?interface?HappinessDao {
    ????Happiness findHappinessByCity(String?city);
    ????int insertHappiness(HashMap<String, Object> map);
    }


    映射文件


    <mapper?namespace="com.example.demo.dao.HappinessDao">
    ????<select?id="findHappinessByCity"?parameterType="String"?resultType="com.example.demo.domain.Happiness">
    ????????SELECT * FROM happiness WHERE city = #{city}
    ????select>

    ????<insert?id="insertHappiness"?parameterType="HashMap"?useGeneratedKeys="true"?keyProperty="id">
    ????????INSERT INTO happiness(city, num) VALUES(#{city}, #{num})
    ????insert>
    mapper>

    Service類


    事務(wù)管理只需要在方法上加個注解:@Transactional


    @Service
    public?class?HappinessService?{
    ????@Autowired
    ????private?HappinessDao happinessDao;

    ????public?Happiness selectService(String city){
    ????????return?happinessDao.findHappinessByCity(city);
    ????}

    ????@Transactional
    ????public?void?insertService()
    {
    ????????HashMap map?= new?HashMap();
    ????????map.put("city", "西安");
    ????????map.put("num", 9421);

    ????????happinessDao.insertHappiness(map);
    ????????int?a = 1?/ 0; //模擬故障
    ????????happinessDao.insertHappiness(map);
    ????}
    }


    Controller類


    @RestController
    @RequestMapping("/demo")
    public class HappinessController {
    ????@Autowired
    ????private HappinessService happinessService;

    ????@RequestMapping("/query")
    ????public Happiness testQuery(){
    ????????return?happinessService.selectService("北京");
    ????}

    ????@RequestMapping("/insert")
    ????public?Happiness?testInsert(){
    ????????happinessService.insertService();
    ????????return?happinessService.selectService("西安");
    ????}
    }


    測試


    http://localhost:8080/demo/query
    http://localhost:8080/demo/insert



    原文鏈接:csdn.net/litianxiang_kaola/article/details/79481422



    瀏覽 59
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報
    評論
    圖片
    表情
    推薦
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    成人俺去拉 | 天天躁日日躁人妻久久澡 | 成人夜色激情福利av | 亚洲孕交 | 香蕉网站啊好硬 |