目錄
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)