从spring JDBC模板切换到JPA

时间:2016-03-29 13:28:06

标签: sql spring jdbc

我目前正在使用带有Spring MVC框架的JDBC模板访问数据和创建查询。我听说这不是一种有效的访问数据的方法,因为它有很多不必要的样板代码,并想知道是否有另一种方法来做这个E.G. Spring JPA / hibernate但仍不确定如何实现。

使用JDBC模板的简单示例

pip install -U sympy

//实体类

//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;
    }

}

}

代码工作正常,但这可能导致问题,例如样板代码 任何人都知道如何将其更改为更简单的版本?

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用spring Jpa Data:

    @Repository
    public interface UserDAO  extends CrudRepository<User, Long>, PagingAndSortingRepository<User, Long> {
     }

服务类:

 @Service   
 public UserService { 

      @Resource
      private UserDoa dao;

       @Transactional
       public List<User> getAllUsers() {
           List<User> users =  dao.findAll();
           return users;
        }
  }

这是query creation mechanism

的列表

你也可以在更复杂的场景中使用queryDsl and Specifications,你可以摆脱几乎所有的sql样板。

答案 1 :(得分:0)

使用Spring Data JPA,您可以为您生成大量代码。

主要步骤:

  1. 向spring-data-jpa
  2. 添加依赖项
  3. 启用JPA存储库
  4. 创建扩展CrudRepository
  5. 的存储库接口

    您现在可以使用存储库。将生成实现。

    查看详细说明:http://docs.spring.io/spring-data/jpa/docs/1.9.4.RELEASE/reference/html/#repositories.core-concepts