Spring框架(十五)SpringBoot框架+SpringBoot數據訪問

目錄
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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章