MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎全部的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
怎么在Spring Boot里面使用Mybatis呢?就继续看吧。java
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
#配置数据源 spring: datasource: #这里能够不写,会根据url自动判断,若是mybatis里面配置了version那么这里写了就会报错。 driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/springboot username: root password: password #这是在控制台打印mybatis的sql语句 logging: level: com: springboot: mybatis: mepper: debug #这是mapper放置的地址。 #开启驼峰命名法,这样后面的开发Mapper就能够省掉@Results的注解,固然,不是驼峰命名法的仍是不能省略。 mybatis: configuration: map-underscore-to-camel-case: true
@SpringBootApplication @MapperScan("com.springboot.mybatis.mapper") //mapper文件的存放地址 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
public interface GirlMapper { //这里没有使用@Results注解,是由于前面在application.yml已经进行相关配置了。 @Select("select * from girl") @Results({ @Result(column="cup_size", property="cupSize", jdbcType=JdbcType.VARCHAR) }) List<Girl> findAll(); @Select("select * from girl where id = #{id}") Girl findOne(Integer id); }
@Select 是查询类的注解,全部的查询均使用这个
@Result修饰返回的结果集,关联实体类属性和数据库字段一一对应,若是实体类属性和数据库属性名保持一致,就不须要这个属性来修饰。
@Insert插入数据库使用,直接传入实体类会自动解析属性到对应的值
@Update 负责修改,也能够直接传入对象
@delete 负责删除
第五,使用就能够了。mysql
//若是想使用@RestController和@RequestMapping就必须在pom.xml里面导入WEB支持(spring-boot-starter-web) @RestController public class GirlController { //注入GirlMapper @Autowired GirlMapper girlMapper; @RequestMapping("/girls") public List<Girl> findAll(){ return girlMapper.findAll(); } @RequestMapping("/girl/{id}") public Girl findOne(@PathVariable("id") Integer id){ return girlMapper.findOne(id); } }