1:Mybatis
1:回顾
1:方便测试
- 得到的接口
2:方便更换数据源
- 不能更换数据源
3:方便更换持久化实现层
- 可以的
4:屏蔽数据访问异常
- 屏蔽不了
- spring 转成了 runtime 异常,业务层想抓还是抓得到的
5:模板方法模式
6:spring提供的配置元bean 有哪些
将sql exception统一再进行处理,业务层不会catch到任何相关的异常
- 错的
2:新知识
1:hibernate
- hibernate 针对于Java的对象,以及对象的属性
- HcreateCriteria
- 原始的sql语句
2:注解
- repository
- 第一个是component的作用
- 第二个是抛出的异常可以转化为spring的统一异常,以spring.framwork
- 前提是需要引入一个bean
- service
- controller
- 都有 compoent的效果
3:JPA
- javax.persistance.entityManager
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.1.Final</version>
</dependency>
4:springdataJPA
-
解决什么问题呢?
- 把create read update delete 给你实现好
-
只需要定义一个reporisoty接口就可以了
-
定义了 findAll
-
继承了CRUD类
-
最终是repository,称为叫marker interface ,标签
-
componentScan,指定一个类,就会把这个类同层级的都搜一遍,定义一个空的接口,称为这个标签,没有其他的价值。
-
1:默认的18 个方法都帮你实现了
-
2:你可以定义一些方法的原型,签名,背后的实现spring帮你做
- findByUsername(String name)
- DSL,领域特定语言,动词+主题+断言
-
3:自己定义一个select 语句,和自己的方法关联在一起
- @Query("select * from Splitter where s.email = “beibei@”)
- List findAllGmailSpitters()
-
4:自己实现一个类,额外的操作,拿到一个entityManager
-
自己实现一个方法
-
dry 原则,不要重复你自己
-
public int eliteSweep(){
-
-
-
public interface SpittleRepository extends JpaRepository<Spittle, Long>, SpittleRepositoryCustom
- long 是主键
- spittle 就是表,也是你Java的类