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