文章字数:1,阅读全文大约需要1分钟
1 | URL resource = Test.class.getClassLoader().getResource("application.properties"); |
文章字数:1,阅读全文大约需要1分钟
1 | URL resource = Test.class.getClassLoader().getResource("application.properties"); |
文章字数:286,阅读全文大约需要1分钟
主键除了自己设置,还有很多种方法可以让数据库自动生成。将注解写在实体类属性上就可以获得相应功能
@GeneratorValue
注解—-JPA通用策略生成器1 | public enum GenerationType{ |
@GenericGenerator
使用1 | @GeneratedValue(generator="system-uuid")//关联system-uuid |
1 | @Id |
部分数据库(Oracle,PostgreSQL,DB2)支持序列对象,因为其不支持主键自增,所以这是自增的补充方法
1 | @Id |
@GenericGenerator
注解—-自定义主键生成策略1 | GENERATORS.put("uuid", UUIDHexGenerator.class); |
文章字数:474,阅读全文大约需要1分钟
java.awt.Robot 提供模拟点击,模拟用户输入等操作
1 | import java.awt.*; |
1 | /** |
1 | //先按下control再按下其它,松开其它再松开control |
1 |
|
1 |
|
按键都在 KeyEvent类中,和键盘对应
文章字数:846,阅读全文大约需要3分钟
Builder
模式xxxUtil
xxTools
内部都是static
方法,不需要实例化1 | Long sum = 0L; |
1 | int sum(int a, int... args) |
IlegalAraumentException
参数异常文章字数:94,阅读全文大约需要1分钟
FlushMode提供了4种缓存模式:MANUAL、COMMIT、AUTO和ALWAYS。使用
setFlushModel
切换
MANUAL
必须手动调用flush()
COMMIT
事物提交才会AUTO
事务提交或者手动刷新,都能将脏数据同步到数据库。除此之外,某些查询出现的时候也会导致缓存刷新。(不过不是很智能)ALWAYS
总是,一般不用文章字数:95,阅读全文大约需要1分钟
spring
在创建时会搜索所有的JpaRepository
,并使用SimpleJpaRepository
作为其实现类SimpleJpaRepository
的构造方法接收一个EntityManager
,是spring
在创建初期就注入了EntityManagerFactory
,并生成了一个EntityManager
并传入EntityManager
创建Query
对象Query
对象getResultList()
获取结果(获取一次就关闭了,所以需要及时保存结果)文章字数:204,阅读全文大约需要1分钟
jpa
提供了分页查询的接口,之前使用limit
进行分页,但是某些数据库(SQLServer
)不支持limit
语句,为了兼容于是想到jpa
自带的方法
1 | //排序方式,根据id升序 |
1 | getTotalPages() 总共有多少页 |
文章字数:691,阅读全文大约需要2分钟
实体间关联有
@OneToOne
、@OneToMany
or@ManyToOne
、ManyToMany
三种关系。其中,联机操作时只能One端操作Many端,代码层面则是cascade = CascadeType.ALL
只能写在One端。One端删除,修改可以影响到Many端。反之则不允许。
一个人有一个地址,就是一对一关系。其中people表的地址id对应地址表的id
1.1 通过外键关联一对一关系
people(id,name,addressId)
address(id,phone,city,address)
People.java
1 | @Entity |
Address.java
1 | @Entity |
1.2 通过关联表保持
People(id,name)
Address(id,address)
PeopleAddr(PeopleId,addrId)关联表
People.java
1 | @Entity |
一个班级有很多同学(一对多),班级被删除班上的同学的数据也没了(联级删除,默认没有)。删除同学的数据不会影响到班级(many不能影响one)
myClass.java
1 | @Entity |
Article.java
1 | @Entity |
User.getAuthority().remove(authority)
解除关系User.setAuthorities(authorities)
绑定关系用户和权限组的例子就是多对多User.java
1 | @ManyToMany |
user_authority
user_id
authority_id
Authority.java
1 | @ManyToMany(mappedBy = "authorityList") |
文章字数:107,阅读全文大约需要1分钟
用于数据库属性和java实体类直接转换,例如枚举,在数据库中存储或者读取都需要转换,此方法就是自动转换的方法。
AttributeConverter<X, Y>
接口的类1 |
|
jpa
实体类字段上使用1 |
|
文章字数:249,阅读全文大约需要1分钟
搭建一个基础的jpa
pom.xml
中加入依赖
1 | <dependency> |
主要作用是和数据库映射的实体类
1 | //用lombok或者自己写get和set |
数据库操作,一个model对应一个Dao
1 | //<实体类model,id类型> |
继承之后基本的增删改查功能都具备了
application.properties
1 | spring.datasource.url=jdbc:mysql://localhost:3306/test |