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可以一起使用
|