需要的东西
1.IntelliJ IDEA里面的spring initializer
2.Mysql的实例数据库sakila
3.自己创建几个文件夹
![这里写图片描述](https://img-blog.csdn.net/20170921191002821?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3d0MDQyNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
属性配置文件
#application.property
mybatis.type-aliases-package=com.example.boot.domain
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/sakila
spring.datasource.username = root
spring.datasource.password = 123456
设置MyBatis的自动Mapper扫描
@SpringBootApplication
@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
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)
@SpringBootTest
public 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
public class TestController {
@Autowired
ActorMapper mapper;
@RequestMapping
public String hello(){
Actor actor = mapper.findActorById(2);
return actor.getFirstName()+"-"+actor.getLastName();
}
}