数据库类型:关系型数据库(MySQL、Oracle)、非关系型数据库(Redis、MongoDB)
关系型数据库访问技术:JDBC、commons-dbutil、JdbcTemplate、MyBatis、Hibernate、JPA等
连接池(DataSource 接口类型、dbcp: BasicDataSource、druid: DruidDataSource、hikari、c3p0、proxool等
SpringBoot连接池使用
1.在pom.xml引入spring-boot-starter-jdbc、驱动包
2.在application.properties或yml配置数据库连接参数spring.datasource.username=xx spring.datasource.password=xx spring.datasource.url=xx spring.datasource.driver-class-name=xx spring.datasource.type=xx
3.定义启动类,开启自动配置、组件扫描、Bean组件定义等功能
@SpringBootApplication
方案一:SpringBoot+JdbcTemplate
1.创建连接池
2.根据表定义实体类
3.定义Dao接口
4.定义Dao实现类,扫描Dao并注入JdbcTemplate
@Repository
public class JdbcDeptDao implements DeptDao {
@Autowired
private JdbcTemplate template;
public Dept findById(int no) {
String sql = "select deptno,dname,loc from dept where deptno=?";
Object[] args = {no};
RowMapper<Dept> rowMapper = new BeanPropertyRowMapper<Dept>(Dept.class);
Dept dept = template.queryForObject(sql,args,rowMapper);
return dept; }
public List<Dept> findPage(int page, int size) {
String sql = "select deptno,dname,loc from dept limit ?,?";
Object[] args = {(page-1)*size,size};
RowMapper<Dept> rowMapper = new BeanPropertyRowMapper<Dept>(Dept.class);
List<Dept> list = template.query(sql,args,rowMapper);
return list; }
public void save(Dept dept) {
String sql = "insert into dept (dname,loc) values (?,?)";
Object[] args = {dept.getDname(),dept.getLoc()};
template.update(sql,args); } }
方案二:SpringBoot+MyBatis
1.创建连接池
2.导入mybatis-spring-boot-starter
3.根据表定义实体类(与原mybatis使用相同)
4.定义SQL语句(与原mybatis使用相同)
5.定义Mapper接口(与原mybatis使用相同)
6.配置mybatis元素
在application.properties配置sql文件
mybatis.mapperLocations=classpath:sql/*.xml
在启动类配置Mapper接口
@SpringBootApplication
@MapperScan(basePackages="cn.xdl.dao")
public class RunBoot {
//省略main方法 }
注解SQL使用时,利用@Select、@Insert、@Update、@Delete标记在Mapper接口直接定义SQL,不需要mybatis.mapperLocations配置。
public interface EmpDao {
@Select("select * from emp where empno=#{no}")
public Emp findById(int no);
@Select("select * from emp")
public List<Emp> findAll();
@Insert("insert into emp (ename,sex,deptno) values (#{ename},#{sex},#{deptno})")
public void save(Emp emp); }
方案三:SpringBoot+JPA
Spring Data : redis、mongodb、jpa
1.创建连接池
2.导入spring-boot-starter-data-jpa
3.根据表定义实体类
@Entity
@Table(name="dept")
public class Dept implements Serializable{
@Id
@Column(name="deptno")
private int deptno;
@Column(name="dname")
private String dname; } }
4.定义Dao接口
public interface DeptDao extends JpaRepository<Dept, Integer>{
}