1.整合jdbc
2.整合数据源
3.整合mybatis 注解版
4.整合mybatis xml配置版
5.整合PageHelper
6.输出调试信息
1.整合jdbc
理解原理
默认是用org.apache.tomcat.jdbc.pool.DataSource作为数据源;
数据源的相关配置都在DataSourceProperties里面;
自动配置原理:
org.springframework.boot.autoconfigure.jdbc:
1、参考DataSourceConfiguration,根据配置创建数据源,默认使用Tomcat连接池;可以使用
spring.datasource.type指定自定义的数据源类型;
2、SpringBoot默认可以支持;
org.apache.tomcat.jdbc.pool.DataSource、HikariDataSource、BasicDataSource
1.加入pom支持
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
2.修改配置文件,增加配置
spring.datasource.username=root
spring.datasource.password=tiger
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/books
3.编写DAO
@Repository
public class BookDao {
@Autowired
JdbcTemplate jdbc;
public void save(Book book){
jdbc.update("insert into books values(?,?,?,?)",book.getIsbn(),book.getName(),book.getPrice(),book.getPublishDate());
}
public List<Book> getAll(){
List<Book> list=jdbc.query("select * from books",new RowMapper<Book>(){
@Nullable
@Override
public Book mapRow(ResultSet rs, int i) throws SQLException {
Book b=new Book();
b.setIsbn(rs.getString("isbn"));
b.setName(rs.getString("bookName"));
b.setPrice(rs.getInt("price"));
b.setPublishDate(rs.getDate("publishDate"));
return b;
}
});
return list;
}
}
2.整合数据源
整合dbcp
原理:自动配置(即只要有包,有配置,就自动为我们创建DataSource)
1.加入pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
</dependency>
2.加入配置
#type指定了数据源的类型
spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/books
spring.datasource.dbcp2.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.dbcp2.username=root
spring.datasource.dbcp2.password=tiger
spring.datasource.dbcp2.max-idle=10
spring.datasource.dbcp2.max-total=20
spring.datasource.dbcp2.initial-size=5
spring.datasource.dbcp2.max-wait-millis=5000
3.整合mybatis(注解版)
1.导包
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
2.配置接口
@Mapper
public interface BookMapper {
@Insert("insert into books values(#{isbn},#{name},#{price},#{publishDate})")
public void save(Book book);
@Delete("delete from books where isbn=#{isbn}")
public void delete(@Param("isbn") String isbn);
@Update("update books set bookName=#{name},price=#{price},publishDate=#{publishDate} where isbn=#{isbn}")
public void update(Book book);
@Select("select isbn ,bookname name,price,publishdate from books where isbn=#{isbn}")
public Book get(String isbn);
@Select("select isbn ,bookname name,price,publishdate from books")
public List<Book> getAll();
}
3.Service
@Service
public class BookService {
@Autowired
BookMapper bookMapper;
@Transactional
public void save(Book book){
bookMapper.save(book);
}
public void update(Book book){
bookMapper.update(book);
}
@Transactional
public void delete(String isbn){
bookMapper.delete(isbn);
}
public List<Book> getAll(){
return bookMapper.getAll();
}
public Book getBook(String isbn){
return bookMapper.get(isbn);
}
}
4.Controller与页面
参考thymeleaf文档
5.整合mybatis(xml配置版)
1.编写两类mybatis配置文件(configuration.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>
<typeAliases>
<package name="com.oracle.qab.boot0615.vo"/>
</typeAliases>
</configuration>
<?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.oracle.qab.boot0615.dao.BookDao2">
<insert id="save" parameterType="Book">
insert into books values(#{isbn},#{name},#{price},#{publishDate})
</insert>
<update id="update" parameterType="Book">
update books set bookName=#{name},price=#{price},publishDate=#{publishDate} where isbn=#{isbn}
</update>
<delete id="delete" parameterType="string">
delete from books where isbn=#{isbn}
</delete>
<select id="get" parameterType="string" resultType="book">
select isbn ,bookname name,price,publishdate from books where isbn=#{isbn}
</select>
<select id="getAll" resultType="book">
select isbn ,bookname name,price,publishdate from books
</select>
</mapper>
2.编写boot的配置文件
properties:
#mybatis配置
mybatis.config-location=classpath:mybatis/configuration.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
yml
6.整合PageHelper
1.增加包依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
2.设置分页配置项
pagehelper.helper-dialect=mysql
3.在Service中增加分页代码
@Transactional(readOnly = true)
public List<Book> getAll(){
//设置分页范围(首记录序号,每页记录数)
PageHelper.startPage(1,3);
return dao.getAll();
}
7.设置mybatis调试信息
application.properties
logging.level.com.oracle.thymeleaf.boot_thyme.dao=debug
调试信息如下