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轉發。

![](https://ws3.sinaimg.cn/large/006tKfTcgy1fqj5aochgoj309k09kmwz.jpg)
掃描關注:熱愛生活的大叔
轉載本站文章請注明作者和出處 熱愛生活的大叔-uniquezhangqi


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM