美文网首页
整合MyBatis

整合MyBatis

作者: AnnieAri | 来源:发表于2018-07-11 17:29 被阅读0次

    准备工作 : 数据库建表 创建javaBean

    1.实现注解版MyBatis

    @Mapper
    public interface DepartmentMapper {
        @Select("select * from department where id=#{id}")
        public Department getDeptById(Integer id);
    
        @Delete("delete from department where id=#{id}")
        public int deleteDeptById(Integer id);
    
        @Options(useGeneratedKeys = true,keyProperty = "id")//标明自增id 
        @Insert("insert into department (departmentName) values (#{departmentName})")
        public int insertDept(Department department);
    
        @Update("update department set departmentName=#{departmentName} where id=#{id}")
        public int updateDept(Department department);
    }
    

    测试Controller

    @RestController
    public class DeptController {
        @Autowired
        DepartmentMapper departmentMapper;
        @GetMapping("/dept/{id}")
        public Department getDept(@PathVariable("id") Integer id){
            return departmentMapper.getDeptById(id);
        }
        @GetMapping("/dept")
        public Department insertDept(Department department) {
            departmentMapper.insertDept(department);
            return department;
        }
    }
    

    插入:http://localhost:8080/dept?departmentName=business

    image.png
    查询:http://localhost:8080/dept/4
    image.png

    自定义MyBatis的配置规则;给容器中添加一个ConfigurationCustomizer;

    @Configuration
    public class MybatisConfig {
        @Bean
        public ConfigurationCustomizer configurationCustomizer(){
            return new ConfigurationCustomizer() {
                @Override
                public void customize(Configuration configuration) {
                    ///开启驼峰命名
                    configuration.setMapUnderscoreToCamelCase(true);
                }
            };
        }
    }
    

    使用MapperScan批量扫描

    @MapperScan(value = "com.xxx.mapper")//mapper所在的目录文件夹
    @SpringBootApplication
    public class JdbcdemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(JdbcdemoApplication.class, args);
        }
    }
    

    2.配置文件版

    mapper:

    //@Mapper 或者 @MapperScan将接口扫描装配到容器中
    public interface EmployeeMapper {
        public Employee getEmployeeById(Integer id);
    
        public void insertEmp(Employee employee);
    }
    
    

    application.yml 或者application.properties里面指定全局配置文件和sql映射文件位置

    mybatis:
       config‐location: classpath:mybatis/mybatis‐config.xml 指定全局配置文件的位置
       mapper‐locations: classpath:mybatis/mapper/*.xml 指定sql映射文件的位置
    

    全局配置文件: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>
        <!--<settings>-->
            <!--<setting name="mapUnderscoreToCamelCase" value="true"/>-->
        <!--</settings>-->
    </configuration>
    

    指定sql映射文件

    <?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">
    <mapper namespace="com.ari.ss.jdbcdemo.mapper.EmployeeMapper">
        <!--public Employee getEmployeeById(Integer id);-->
        <!--public void insertEmp(Employee employee);-->
        <select id="getEmployeeById" resultType="com.ari.ss.jdbcdemo.bean.Employee">
            select * from employee where id = #{id}
        </select>
        <insert id="insertEmp">
            insert into employee (lastName,email,gender,d_id) VALUES (#{lastName},#{email},#{gender},#{d_id})
        </insert>
    </mapper>
    

    测试同注解版

    更多配置见官方文档:http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

    相关文章

      网友评论

          本文标题:整合MyBatis

          本文链接:https://www.haomeiwen.com/subject/ihnhpftx.html