• SpringDataJPA几种sql方式


    本文首次发布于My Blog,作者Ian,转载请保留原文链接。

    
    /**
     * 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);
    
    }
    
    1. @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 需要注意的注解

    1. @Modifying
    2. @Query(value="DELETE from user where id=:id",nativeQuery = true 这个里面的sql语句 前面是 类名 不是表名) 加nativeQuery = true 表示使用原生sql
    3. @Transactional

    shiro生命周期

    生命周期:

    • spring 把shiro 注入进去

    • 例子:

      • 登录请求会转发给shiro 里面
      • controller servlet 让shiro 来管理servlet
      • 用aop的方式去管理所有的controller,然后定义用shiro来代理它
    • 白名单:

      • spring-shiro.xml: anon 当前所有请求登录都可以处理

      • logout 登出

      • /** = authc 指定哪个请求 验证器

      • /** = user 除了上面的,其它的都要登录以后才能访问。

    • redirect:/admin/index redirect转发。

    
    /**
     * 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);
    
    }
    
    1. @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 需要注意的注解

    1. @Modifying
    2. @Query(value="DELETE from user where id=:id",nativeQuery = true 这个里面的sql语句 前面是 类名 不是表名) 加nativeQuery = true 表示使用原生sql
    3. @Transactional

    shiro生命周期

    生命周期:

    • spring 把shiro 注入进去

    • 例子:

      • 登录请求会转发给shiro 里面
      • controller servlet 让shiro 来管理servlet
      • 用aop的方式去管理所有的controller,然后定义用shiro来代理它
    • 白名单:

      • spring-shiro.xml: anon 当前所有请求登录都可以处理

      • logout 登出

      • /** = authc 指定哪个请求 验证器

      • /** = user 除了上面的,其它的都要登录以后才能访问。

    • redirect:/admin/index redirect转发。

  • 相关阅读:
    gorm 更新数据时,0值会被忽略
    xshell评估过期解决办法
    安装zoom
    aria2 加速百度网盘下载
    ubuntu17.10 安装firefox的flash
    c++ 回调函数使用
    ubuntu17 安装中文输入法
    ubuntu python3.6 找不到_sqlite3
    linux 获取CPU个数
    centos7 yum与Python3冲突
  • 原文地址:https://www.cnblogs.com/uniquezhangqi/p/9199367.html
Copyright © 2020-2023  润新知