/**
* SpringDataJPA 几种sql方式。
*/
public boolean login(String name,String password){
// User user = userDao.findByNameAndPassword(name,password);
/** User user = userDao.findOne(new Specifiaction<User>() {
public Predicate toPredicate(Root<User> root, CrieriaQuery<?> cq, CriteriaBuilder cb){
return cb.and(
cb.equal(
root.get("name").as(String.class),
name
),
cb.equal(
root.get("password").as(Stirng.class),
password
)
);
}
});
return user != null;
*/
@Modifying
@Query("delete User u where u.id =: id")
@Transactional
void delByUserId(@Param("id") Long id);
// select * from user where name =? and password =?
/**
* JPA 运行原生 sql 语句进行删除 一个user
*/
@Modifying
@Query(value="DELETE FORM user WHERE id=:id",nativeQuery = true)
@Transactional
void delUserByNativeSql(@Param("id")Long id);
}
- @Component 加到类路径自动扫描
- @Controller 一个web的控制层,在Spring MVC中使用
- @Repository 数据管理/存储,企业级应用使用(Dao, DDD)
- @Service 提供一个商业逻辑 - 一个无状态的切面
Page<AcquisitionResults> AcquisitionResultsPage = acquisitionResultsService.findAll((root, cq, cb) -> {
root 路径相关 https://www.objectdb.com/api/java/jpa/criteria/Root
cq 查询相关 https://docs.oracle.com/javaee/6/api/javax/persistence/criteria/CriteriaQuery.html
cb 创建相关 https://docs.oracle.com/javaee/7/api/javax/persistence/criteria/CriteriaBuilder.html 条件对象
equal 等价于 and
大于 gn
小于 le
springDataJpa 需要注意的注解
- @Modifying
- @Query(value=”DELETE from user where id=:id”,nativeQuery = true 这个里面的sql语句 前面是 类名 不是表名) 加nativeQuery = true 表示使用原生sql
- @Transactional
shiro生命周期
生命周期:
- spring 把shiro 注入进去
- 例子:
- 登录请求会转发给shiro 里面
- controller servlet 让shiro 来管理servlet
- 用aop的方式去管理所有的controller,然后定义用shiro来代理它
- 白名单:
-
spring-shiro.xml:
anon 当前所有请求登录都可以处理 -
logout 登出
-
/** = authc 指定哪个请求 验证器
-
/** = user 除了上面的,其它的都要登录以后才能访问。
-
- redirect:/admin/index redirect转发。
版权声明:本文由 Ian 在 2018年04月07日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《SpringDataJPA几种sql方式》