javascript
SpringBoot:与MyBatis合作
MyBatis是一個SQL映射框架,支持自定義SQL,存儲過程和高級映射。
SpringBoot不為MyBatis集成提供官方支持,但MyBatis社區為MyBatis構建了SpringBoot入門程序。
您可以在http://blog.mybatis.org/2015/11/mybatis-spring-boot-released.html上了解有關SpringBoot MyBatis Starter發行公告的信息,還可以在GitHub https://github.com上探索源代碼。 / mybatis / mybatis-spring-boot 。
創建一個SpringBoot Maven項目并添加以下MyBatis Starter依賴項。
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.0.0</version> </dependency>我們將重用在上一篇文章SpringBoot中創建的User.java,schema.sql和data.sql文件:使用JdbcTemplate
用很少的數據庫操作創建MyBatis SQL Mapper接口UserMapper.java ,如下所示:
package com.sivalabs.demo.domain;public interface UserMapper {void insertUser(User user);User findUserById(Integer id);List<User> findAllUsers(); }我們需要創建Mapper XML文件來為對應的Mapper接口方法定義對映射的SQL語句的查詢。
在src / main / resources / com / sivalabs / demo / mappers /目錄中創建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。
我們可以創建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配置參數,我們可以使用這些參數自定義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創建入口點類SpringbootMyBatisDemoApplication.java。
@SpringBootApplication @MapperScan("com.sivalabs.demo.mappers") public class SpringbootMyBatisDemoApplication {public static void main(String[] args){SpringApplication.run(SpringbootMyBatisDemoApplication.class, args);} }觀察到我們已經使用@MapperScan(“ com.sivalabs.demo.mappers”)批注指定在何處查找Mapper接口。
現在創建一個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合作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux颜色代表什么(linux $(
- 下一篇: 合肥市家园网网上备案官网(合肥市家园网网