Sql 从spring JDBC模板切换到JPA
我目前正在使用JDBC模板和SpringMVC框架访问数据和创建查询。我听说这不是一种有效的访问数据的方法,因为它有很多不必要的样板代码,我想知道是否有其他方法可以做到这一点,例如Spring JPA/hibernate,但仍然不确定如何实现这一点 使用JDBC模板的简单示例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
//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,您可以生成大量代码 主要步骤:
请参阅详细说明:我是否需要在某处包含我的查询?我想我需要修改我的配置文件,例如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;
}
}