SpringBoot随计——数据访问

JDBC

①原生的JDBC注意DataSourceInitializer:ApplicationListener,runSchemaScripts()运行建表语句,runDataScripts()运行插入数据的语句,只需要将文件命名为:schema-*.sql、data-*.sql,自定义文件要在配置文件spring.data source.schema指定,每次启动时都会运行sql文件,要注意。
②通过spring.datasource.type切换数据源,整合Druid数据源需要自定义DruidDataSourCe,可以配置管理后台的ServletRegistrationBean和web监控的FilterRegistrationBean

MyBatis

①注解版:
@Mapper:指定为操作数据库的mapper,可以在主类通过@MapperScan批量扫描指定包
@Select(“sql”)
@Options(useGeneratedKeys=true,keyProperty="id")返回主键在@Insert
注意驼峰命名,自定义通过添加ConfigurationCustomizer的Bean,放入mapUnderscoreToCamelCase。
②配置文件:
@MapperScan扫描到容器
写config和sql的xmI,在yml配置mybatis,指定config-location和mapper-location

JPA

①SpringData为我们提供统一的API(Repository接口)来对数据访问层进行操作(CURD,分页),提供数据访问模板类xxxTemplate
②JPA:ORM思想
@Entity:告诉JPA这是一个实体类(和数据表映射的类)
@Table(name="tb_user"):如果省略默认表名就是类名小写
@Id:声明主键
@GeneratedValue:自增
@Column:省略默认列名就是属性名
操作数据:
Dao接口继承JpaRepository<实体,id类型>,在ymI配置jpa:jpa.hibernate.ddl-auto:update更新或创建表结构,jpa.show-sql:true打印sqI
xxxDao.findOne:自带的API

其它

①JDBC是数据库访问的标准,jpa是ORM框架的标准,ORM和Mybatis都是持久层框架
②JPA更靠近面向对象,更关心的是领域建模;Mybatis更拥抱sql,数据库设计,可以逆向生成mapper文件和实体
③JPA对复杂sql编写困难
④JPA和Mybatis可以一起使用

你可能感兴趣的:(框架整理,springboot)