Sql 从spring JDBC模板切换到JPA

Sql 从spring JDBC模板切换到JPA,sql,spring,jdbc,Sql,Spring,Jdbc,我目前正在使用JDBC模板和SpringMVC框架访问数据和创建查询。我听说这不是一种有效的访问数据的方法,因为它有很多不必要的样板代码,我想知道是否有其他方法可以做到这一点,例如Spring JPA/hibernate,但仍然不确定如何实现这一点 使用JDBC模板的简单示例 //DAO Class @Repository public class UserDAO { private final String GET_USERS_SQL = "SELECT users.username A

我目前正在使用JDBC模板和SpringMVC框架访问数据和创建查询。我听说这不是一种有效的访问数据的方法,因为它有很多不必要的样板代码,我想知道是否有其他方法可以做到这一点,例如Spring JPA/hibernate,但仍然不确定如何实现这一点

使用JDBC模板的简单示例

//DAO Class
@Repository
public class UserDAO  {

 private final String GET_USERS_SQL = "SELECT users.username AS 'users.username',\n"
        + "      users.enabled AS 'users.enabled',\n"
        + "      users.timestamp AS 'users.timestamp',\n"
        + "      users.id AS 'users.id'\n"
        + "  FROM users";

 @Autowired
 private JdbcTemplate jt;

 public List<User> getAllUsers() {
 List<User> users = this.jt.query(GET_USERS_SQL, new UserRowMapper());

    return users;
    }

}
}

代码运行良好,但这可能导致诸如样板代码之类的问题 有人知道如何将其更改为更简单的版本吗


谢谢

您可以使用spring Jpa数据:

    @Repository
    public interface UserDAO  extends CrudRepository<User, Long>, PagingAndSortingRepository<User, Long> {
     }
@存储库
公共接口UserDAO扩展了crudepository、paging和sortingrepository{
}
服务类别:

 @Service   
 public UserService { 

      @Resource
      private UserDoa dao;

       @Transactional
       public List<User> getAllUsers() {
           List<User> users =  dao.findAll();
           return users;
        }
  }
@服务
公共用户服务{
@资源
私有用户doa-dao;
@交易的
公共列表getAllUsers(){
List users=dao.findAll();
返回用户;
}
}
这是一份清单


您还可以从更复杂的场景中使用,并且可以摆脱几乎所有的sql锅炉板方式。

使用Spring数据JPA,您可以生成大量代码

主要步骤:

  • 向spring数据jpa添加依赖项
  • 启用JPA存储库
  • 创建扩展Crudepository的存储库接口
  • 现在可以使用存储库了。将生成实现


    请参阅详细说明:

    我是否需要在某处包含我的查询?我想我需要修改我的配置文件,例如pom.xml和servlet.xml?如果需要,您可以使用
    @NamedQuery
    包含查询,是的,您必须添加spring数据工件依赖项,但我认为这是值得的。@r93此教程列表可能会有所帮助
     @Service   
     public UserService { 
    
          @Resource
          private UserDoa dao;
    
           @Transactional
           public List<User> getAllUsers() {
               List<User> users =  dao.findAll();
               return users;
            }
      }