JDBC ①原生的JDBC注意DataSourceInitializer:ApplicationListener,runSchemaScripts()运行建表语句,runDataScripts()运行插入数据的语句,只需要将文件命名为:schema-*.sql、data-*.sql,自定义文件要在配置文件spring.data source.schema指定,每次启动时都会运行sql文件,要注意。
②通过spring.datasource.type切换数据源,整合Druid数据源需要自定义DruidDataSourCe,可以配置管理后台的ServletRegistrationBean和web监控的FilterRegistrationBean
MyBatis 【框架整理|SpringBoot随计——数据访问】①注解版:
@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可以一起使用
推荐阅读
- 微服务的学习|微服务08_RabbitMQ的SpringAMQP基本介绍
- 微服务的学习|微服务24_服务异步通信02(RabbitMQ延迟消息的问题-DelayExchange插件)
- #|【JAVA后端开发】Part1--瑞吉外卖项目
- springboot中内置tomcat什么时候创建的,又是什么时候启动的()
- Spring Boot工程中如何优雅地处理异常
- 计算机毕业论文和程序设计|基于 SpringBoot 的个人博客系统设计与实现(含论文与程序代码).rar
- Java进阶之路|Quartz(老而弥坚的开源任务调度框架,用起来够丝滑)
- SpringBoot 集成缓存性能之王 Caffeine
- Java学习|Spring boot微服务架构中,利用RestTemplate调用别人提供的接口