Spring Boot(1)集成MyBatis的简单使用

来源:互联网 发布:mac 拷贝文件夹路径 编辑:程序博客网 时间:2024/05/28 04:54

需要的东西

1.IntelliJ IDEA里面的spring initializer

2.Mysql的实例数据库sakila

3.自己创建几个文件夹

这里写图片描述

属性配置文件

#application.propertymybatis.type-aliases-package=com.example.boot.domainspring.datasource.driverClassName = com.mysql.jdbc.Driverspring.datasource.url = jdbc:mysql://localhost:3306/sakilaspring.datasource.username = rootspring.datasource.password = 123456

设置MyBatis的自动Mapper扫描

@SpringBootApplication//使用Java配置,在org.mybatis.spring包下,提供整合@MapperScan("com.example.boot.dao")public class BootApplication {    public static void main(String[] args) {        SpringApplication.run(BootApplication.class, args);    }}

新建一个实体类

public class Actor {    public Actor() {    }    private int id;    private String firstName;    private String lastName;    ...省略getter/setter方法}

新建Mapper

/*数据格式是这样的,我们省略last_update这一列+----------+-------------+--------------+---------------------+| actor_id | first_name  | last_name    | last_update         |+----------+-------------+--------------+---------------------+|        1 | PENELOPE    | GUINESS      | 2006-02-15 04:34:33 ||        2 | NICK        | WAHLBERG     | 2006-02-15 04:34:33 |*/public interface ActorMapper {    @Select("select actor_id,first_name,last_name from actor")    @Results({            @Result(id = true, column = "actor_id", property = "id"),            @Result(column = "first_name", property = "firstName"),            @Result(column = "last_name", property = "lastName")    })    List<Actor> findAllActors();    @Select("select actor_id,first_name,last_name from actor " +            "where actor_id = #{id}")    @Results({            @Result(id = true, column = "actor_id", property = "id"),            @Result(column = "first_name", property = "firstName"),            @Result(column = "last_name", property = "lastName")    })    Actor findActorById(int id);}

写一个单元测试看看效果

@RunWith(SpringRunner.class)@SpringBootTestpublic class BootApplicationTests {    @Autowired    private ActorMapper mapper;    @Test    public void databaseTest() {        Actor a = mapper.findActorById(1);        System.out.println(a.getLastName()+" "+a.getFirstName());    }}

Spring boot将DataSource自动注入SqlSessionFactory, 再将SqlSessionFactory自动注入到Mapper里面,所以,这居然就能用了??!!

最后写个网页看看效果

@RestController //不要写html,就看看public class TestController {    @Autowired    ActorMapper mapper;    @RequestMapping    public String hello(){        Actor actor = mapper.findActorById(2);        return actor.getFirstName()+"-"+actor.getLastName();    }}
原创粉丝点击