关于如何使用SpringData和SpringData和JPA和Spring的整合,在这里我就不说了
下面就如何实现查询来说说
第一步:关于dao层如何来写,请看代码:
package org.peter.dao;
import org.peter.model.User;
import org.springframework.data.repository.Repository;
import java.util.List;
/**
* Created by Lenovo on 2017/7/28.
*/
public interface UserDao extends Repository<User,Long>{
// 根据id查询
User findById(Long id);
// 查询所有
List<User> findAll();
//根据名字查询
User findByAndUsername(String username);
// 根据姓氏查询
List<User>findByUsernameStartsWith(String u);
// 根据姓氏和住址来查询
List<User>findByUsernameStartingWithAndPassword(String u,String p);
// 查询名字中包含某个字人
List<User>getUserByUsernameContains(String u);
// 根据角色来查询人员
List<User>getUserByRoleId(Long l);
}
第二步:Service层如何实现看代码
package org.peter.service;
import org.peter.dao.UserDao;
import org.peter.model.User;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
* Created by Lenovo on 2017/7/28.
*/
@Service
@Transactional
public class UserService {
@Resource
UserDao userDao;
// 根据id查询
public User findById(Long id){
User user = userDao.findById(id);
return user;
}
// 查询所有
public List<User> findAll(){
List<User> users = userDao.findAll();
return users;
}
//根据名字查询
public User findByUsername(String username){
User user = userDao.findByAndUsername(username);
return user;
}
// 根据姓氏查询
public List<User> findByUsernameStartsWith(String u){
List<User> list = userDao.findByUsernameStartsWith(u);
return list;
}
// 根据姓氏和住址来查询
public List<User>findByUsernameStartingWithAndPassword(String u,String p){
List<User> list = userDao.findByUsernameStartingWithAndPassword(u, p);
return list;
}
// 查询名字中包含某个字人
public List<User> getUserByUsernameContains(String u) {
List<User> list = userDao.getUserByUsernameContains(u);
return list;
}
// 根据角色来查询人员
public List<User>getUserByRoleId(Long l){
List<User> list = userDao.getUserByRoleId(l);
return list;
}
}
第三步:创建main类做测试
package org.peter;
import org.junit.Test;
import org.peter.model.User;
import org.peter.service.UserService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
/**
* Created by Lenovo on 2017/7/28.
*/
public class main {
private ClassPathXmlApplicationContext ctx;
private UserService userService;
{
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
userService = ctx.getBean(UserService.class);
}
@Test
// 根据id查询
public void findById(){
User user = userService.findById(1l);
System.out.println(user);
}
@Test
// 查询所有
public void findAll(){
List<User> users = userService.findAll();
for (User user : users) {
System.out.println(user);
}
}
@Test
//根据名字查询
public void findByUsername(){
User user = userService.findByUsername("沙家浜");
System.out.println(user);
}
@Test
// 根据姓氏查询
public void findByUsernameStartsWith (){
List<User> list = userService.findByUsernameStartsWith("张");
for (User user : list) {
System.out.println(user);
}
}
注意:SpringData的查询的时候一定要按着SpringData的规则来。
因为我在最后一个查询的时候我用到了JPA的OneToOne,所以要在原有的基础上创建一个Role的model