目录
SpringBoot数据访问
关系型数据库访问
非关系型数据库访问
SpringBoot数据访问
关系型数据库访问
1.连接池DataSource
Oracle、MySQL、DB2等
dbcp2、c3p0、druid、HikariCP、proxool等
连接池jar包、驱动包
spring-boot-starter-jdbc引入会默认追加连接池(1.x tomcat-jdbc连接池、2.x hikari连接池)
在application.properties定义连接参数
在启动类开启自动配置@SpringBootApplication
DataSourceAutoConfiguration自动配置组件规则:
默认按创建Hikari,然后tomcat,dbcp2顺序执行
如果需要创建指定类型连接池,可以采用下面配置
spring.datasource.type=xxx
2.Spring DAO(JdbcTemplate)
JdbcTemplateAutoConfiguration自动配置组件创建JdbcTemplate对象,使用时直接注入应用。
创建连接池对象(参考上述过程)
根据表定义实体类
定义Dao接口
编写Dao实现类,注入JdbcTemplate
@Repository public class JdbcDeptDao implements DeptDao { @Autowired private JdbcTemplate jdbcTemplate; public List<Dept> findAll() { String sql = "select deptno,dname name,loc from dept"; RowMapper<Dept> rowMapper = new BeanPropertyRowMapper<Dept>(Dept.class); return jdbcTemplate.query(sql, rowMapper); } }
3.Spring+MyBatis(mybatis-spring整合包)
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency>
创建连接池对象(参考上述过程)
根据表定义实体类
定义Mapper接口+SQL定义
public interface EmpMapper { @Select("select * from emp") public List<Emp> findAll(); }
在启动类前加@MapperScan标记扫描Mapper接口
@SpringBootApplication @MapperScan(basePackages={"cn.xdl.mapper"})//扫描指定包接口产生Mapper对象放到Spring容器 public class RunBoot { //... ... }
4.Spring+JPA(hibernate)
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>1.3.2</version> </dependency>
创建连接池对象(参考上述过程)
根据表定义实体类,追加与表映射信息
@Entity @Table(name="xdl_receive_address") public class Address implements Serializable{ @Id @Column(name="id") private Integer id; @Column(name="user_id") private Integer userId; @Column(name="receive_name") private String receiveName; @Column(name="province") private String province; @Column(name="address") private String address; //... ... }
定义Repository接口,可以选择继承JpaRepository、PagingAndSortingRepository、CrudRepository等父接口
public interface AddressRepository extends JpaRepository<Address, Integer>{ }
获取Spring容器调用
-5.Spring+Hibernate(以后讲)
非关系型数据库访问
Redis、MongoDB
1.Spring+Redis(RedisTemplate)
2.Spring+MongoDB(MongoTemplate)