日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot:与MyBatis合作

發(fā)布時間:2023/12/3 javascript 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot:与MyBatis合作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MyBatis是一個SQL映射框架,支持自定義SQL,存儲過程和高級映射。

SpringBoot不為MyBatis集成提供官方支持,但MyBatis社區(qū)為MyBatis構建了SpringBoot入門程序。

您可以在http://blog.mybatis.org/2015/11/mybatis-spring-boot-released.html上了解有關SpringBoot MyBatis Starter發(fā)行公告的信息,還可以在GitHub https://github.com上探索源代碼。 / mybatis / mybatis-spring-boot 。

創(chuàng)建一個SpringBoot Maven項目并添加以下MyBatis Starter依賴項。

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.0.0</version> </dependency>

我們將重用在上一篇文章SpringBoot中創(chuàng)建的User.java,schema.sql和data.sql文件:使用JdbcTemplate

用很少的數(shù)據(jù)庫操作創(chuàng)建MyBatis SQL Mapper接口UserMapper.java ,如下所示:

package com.sivalabs.demo.domain;public interface UserMapper {void insertUser(User user);User findUserById(Integer id);List<User> findAllUsers(); }

我們需要創(chuàng)建Mapper XML文件來為對應的Mapper接口方法定義對映射的SQL語句的查詢。

在src / main / resources / com / sivalabs / demo / mappers /目錄中創(chuàng)建UserMapper.xml文件,如下所示:

<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.sivalabs.demo.mappers.UserMapper"><resultMap id="UserResultMap" type="User"><id column="id" property="id" /><result column="name" property="name" /><result column="email" property="email" /></resultMap><select id="findAllUsers" resultMap="UserResultMap">select id, name, email from users</select><select id="findUserById" resultMap="UserResultMap">select id, name, email from users WHERE id=#{id}</select><insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">insert into users(name,email) values(#{name},#{email})</insert> </mapper>

這里要觀察的幾件事是:

  • Mapper XML中的命名空間應與Mapper接口的完全限定名稱(FQN)相同
  • 語句ID值應與Mapper接口方法名稱相同。
  • 如果查詢結果列名稱與bean屬性名稱不同,則可以使用<resultMap>配置在列名稱及其對應的bean屬性名稱之間提供映射。

MyBatis還提供基于注釋的查詢配置,而無需Mapper XML。

我們可以創(chuàng)建UserMapper.java接口,并使用注釋配置映射的SQL,如下所示:

public interface UserMapper {@Insert("insert into users(name,email) values(#{name},#{email})")@SelectKey(statement="call identity()", keyProperty="id",before=false, resultType=Integer.class)void insertUser(User user);@Select("select id, name, email from users WHERE id=#{id}")User findUserById(Integer id);@Select("select id, name, email from users")List<User> findAllUsers();}

SpringBoot MyBatis入門程序提供以下MyBatis配置參數(shù),我們可以使用這些參數(shù)自定義MyBatis設置。

mybatis.config = mybatis config file name mybatis.mapperLocations = mappers file locations mybatis.typeAliasesPackage = domain object's package mybatis.typeHandlersPackage = handler's package mybatis.check-config-location = check the mybatis configuration exists mybatis.executorType = mode of execution. Default is SIMPLE

在application.properties中配置typeAliasesPackage和mapperLocations 。

mybatis.typeAliasesPackage=com.sivalabs.demo.domain mybatis.mapperLocations=classpath*:**/mappers/*.xml

創(chuàng)建入口點類SpringbootMyBatisDemoApplication.java。

@SpringBootApplication @MapperScan("com.sivalabs.demo.mappers") public class SpringbootMyBatisDemoApplication {public static void main(String[] args){SpringApplication.run(SpringbootMyBatisDemoApplication.class, args);} }

觀察到我們已經(jīng)使用@MapperScan(“ com.sivalabs.demo.mappers”)批注指定在何處查找Mapper接口。

現(xiàn)在創(chuàng)建一個JUnit測試類并測試我們的UserMapper方法。

@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(SpringbootMyBatisDemoApplication.class) public class SpringbootMyBatisDemoApplicationTests {@Autowiredprivate UserMapper userMapper;@Testpublic void findAllUsers() {List<User> users = userMapper.findAllUsers();assertNotNull(users);assertTrue(!users.isEmpty());}@Testpublic void findUserById() {User user = userMapper.findUserById(1);assertNotNull(user);}@Testpublic void createUser() {User user = new User(0, "Siva", "siva@gmail.com");userMapper.insertUser(user);User newUser = userMapper.findUserById(user.getId());assertEquals("Siva", newUser.getName());assertEquals("siva@gmail.com", newUser.getEmail());} }
  • 您可以在http://blog.mybatis.org/p/products.html上了解有關MyBatis和Spring集成的更多信息,并
    http://www.mybatis.org/spring/ 。

翻譯自: https://www.javacodegeeks.com/2016/03/springboot-working-mybatis.html

總結

以上是生活随笔為你收集整理的SpringBoot:与MyBatis合作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。