springBoot 配置MyBatis
引入Maven(Maven官网)
Maven mybatis <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency>
xml配置MyBatis
1.创建bean
public class Employee { private Integer id; private String last_name; private String email; private Integer gender; private Integer d_id;
2、创建Mapper
import com.example.springbootjdbc.bean.Employee; import org.apache.ibatis.annotations.Mapper; /** * <pre> * @author: Meng * @time:2020/6/16 0016 11:43 * @dec: EmployeeMapper * * <pre> */ @Mapper//必须添加@Mapper 和myBatis进行连接 public interface EmployeeMapper { //查询方法 public Employee getEmpById(Integer id); //添加方法 public void insertEmp(Employee employee); }
3、创建Mapper.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"> <!--第 1 步绑定 mapper接口全类名--> <mapper namespace="com.example.springbootjdbc.mapper.EmployeeMapper"> <!-- 'id' 就是mapper接口里面的方法名 'resultType' 返回类型(也要是全类名) --> <select id="getEmpById" resultType="com.example.springbootjdbc.bean.Employee"> SELECT * FROM employee WHERE id=#{id} </select> <insert id="insertEmp"> INSERT INTO employee(last_name,email,gender,d_id) VALUE (#{last_name},#{email},#{gender},#{d_id}) </insert> </mapper>
4、配置mybatis其他配置项(官网链接)
这里是一些常用设置项
<settings> <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>
创建config配置文件:
<?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> <settings> <!--https://mybatis.org/mybatis-3/configuration.html#settings--> <setting name="mapUnderscoreToCamelCase" value="true"/> <setting name="useGeneratedKeys" value="true"/> </settings> </configuration>
5、配置application.yml
mybatis: # 目录地址 config-location: classpath:mybatis/mybatis-config.xml # 目录地址 mapper-locations: classpath:mybatis/mapper/*.xml
另一种注释配置MyBatis
没有上面的第3第4步第5步;
上面的第2步,创建mapper有所不同(建议使用第一种通过xml方式配置)
/** * <pre> * @author: Meng * @time:2020/6/15 0015 15:15 * @dec: DepartmentMapper * * <pre> */ @Mapper public interface DepartmentMapper { @Select("select * from depaetment where d_id=#{id}") public Department getDepById(Integer id); @Delete("delete from depaetment where d_id=#{id}") public int deleteDeptById(Integer id); @Options(useGeneratedKeys = true, keyProperty = "d_id") @Insert("insert into depaetment(dep_name) values(#{dep_name})") public int insertDept(Department depaetment); @Update("update depaetment set dep_name=#{dep_name} where d_id=#{d_id}") public int updateDept(Department depaetment); }