SpringBoot整合mybatis的兩種方式
1、通過配置去整合mybatis
添加依賴
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
實現增刪查改的mapper
/**
* @Auther: ZQB
* Date:2020/1/6
*/
@Mapper
public interface UserMapper {
/**
* 根據用戶 id 查詢
*
* @param uid
* @return :返回查詢結果,不存在時返回 null
* @Select :等價於以前 xml 形式時的 <select 標籤,sql寫法仍然和以前一樣
*/
@Select(value = {"select * from user where u_id=#{uid}"})
public User findUserById(Integer uid);
/**
* 查詢所有用戶
*
* @return :返回查詢結果
* @Select :等價於以前 xml 形式時的 <select 標籤,sql寫法仍然和以前一樣
*/
@Select(value = {"select * from user"})
public List<User> findAllUsers();
/**
* 根據用戶id刪除用戶
*
* @return :返回操作的行數,也可以不返回
*/
@Delete("delete from user where uid = #{uid}")
public Integer deleteUserById(Integer uid);
/**
* 添加用戶
*
* @param user :因爲主鍵 uid 自增,所以沒設值
* @return
*/
@Insert("insert into user(name,age,birthday,salary) values(#{name},#{age},#{birthday},#{salary})")
public Integer adduser(User user);
/**
* 根據用戶 uid 修改用戶
*
* @param user
* @return
*/
@Update("update user set name=#{name},age=#{age},birthday=#{birthday},salary=#{salary} where uid=#{uid}")
public Integer updateUser(User user);
}
通過配置bean修改mybatis的屬性:
/**
* @Auther: ZQB
* 自定義Mybatis的配置
* Date:2020/1/6
*/
@Configuration
public class MyBatisConfig {
/**
* 將組建添加到bean的容器當中去
* @return
*/
@Bean
public ConfigurationCustomizer configurationCustomizer(){
return new ConfigurationCustomizer() {
@Override
public void customize(org.apache.ibatis.session.Configuration configuration) {
configuration.setMapUnderscoreToCamelCase(true);
}
};
}
}
注意:需要對每個mapper接口添加@Mapper,也可以在SpringBoot的啓動類添加mapper的包名:
@MapperScan(value {“com.example.mybatismethods.mapper”}),這樣就可以省略@Mapper註解
2、通過傳統的配置文件整合mybatis
1、需要在resources目錄中創建相應的mapper.xml配置文件,其次要添加mybatis-config.xml的主配置文件
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--MyBatis 核心配置文件,就是以前的 sqlMapConfig.xml-->
<!--可從官網獲取本文件頭:http://www.mybatis.org/mybatis-3/getting-started.html-->
<!-- 文件中的配置都可以從官網獲取:http://www.mybatis.org/mybatis-3/configuration.html#settings-->
<settings>
<!-- 開啓駝峯命名,與註解方式的使用的 ConfigurationCustomizer 完全等效-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="useGeneratedKeys" value="false"/>
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25"/>
<setting name="defaultFetchSize" value="100"/>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods"
value="equals,clone,hashCode,toString"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.example.mybatismethods.mapper"/>
</mappers>
</configuration>
PartyMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace同樣指向對應的Mapper接口-->
<mapper namespace="com.example.mybatismethods.mapper.PartyMapper">
<!-- myBatis sql 映射文件,可從官網獲取:http://www.mybatis.org/mybatis-3/getting-started.html-->
<!-- 和以前一樣對應Mapper接口的方法寫上sql-->
<!-- 根據 partyId 查詢黨支部,可以不指定 parameterType,會自動根據接口方法的參數進行映射-->
<select id="findPartyById" resultType="com.example.mybatismethods.domain.Party">
select * from party where partyId = #{partyId}
</select>
<!-- 查詢所有黨支部-->
<select id="findAllPartys" resultType="com.example.mybatismethods.domain.Party">
select * from party;
</select>
<!-- 根據 partyId 刪除,可以不指定 parameterType,會自動根據接口方法的參數進行映射-->
<delete id="deletePartyById">
DELETE FROM party where partyId = #{partyId}
</delete>
<!-- 其餘 添加、修改完全與以前 spring 整合 myBatis 一樣,在此不再累述-->
</mapper>
PartyMapper接口
package com.example.mybatismethods.mapper;
import com.example.mybatismethods.domain.Party;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Auther: ZQB
* Date:2020/1/6
*/
public interface PartyMapper {
Party findPartyById(Integer partyId);
List<Party> findAllPartys();
Integer deletePartyById(Integer partyId);
};