有句話這樣說 欲練神功 揮刀自宮 請親們先回到第一個 從Spring data 介紹 開始看 搭好環境 跟着步伐一塊走java
Spring Data 的方法必須嚴格按照它的規範進行編寫,若是寫錯了就不行spring
下面是網上找的一張圖:仔細看 dom
我們先拿幾個方法來作個示例測試
在這以前 先往數據表插入一些數據 spa
insert into employee(name,age) values('wangwu',12); ..... 大家本身插寫數據code
先貼下個人數據xml
繼續 基於原先的代碼進行修改 EmployeeRepository.java 第二個方法 咱們所演示的blog
本按理接口對應的方法------>findByNameIsStartingWithAndAgeLessThan接口
package org.springdata.repository; import org.springdata.domain.Employee; import org.springframework.data.repository.Repository; import org.springframework.data.repository.RepositoryDefinition; import java.util.List; /*** * */ @RepositoryDefinition(domainClass = Employee.class, idClass = Integer.class) public interface EmployeeRepository /*extends Repository<Employee,Integer>*/ { /** * 根據名字找員工 * desc * @param name * @return */ public Employee findByName(String name); // name 以什麼開始 IsStartingWith 而且 年齡<多少歲的員工 還有不少方法 我就不一一演示了 好比已wang結尾的 就是findByNameIsEndingWith public List<Employee> findByNameIsStartingWithAndAgeLessThan(String name, Integer gae);
}
測試類仍是基於原先的 修改 本案例測試類方法---------->testfindByNameIsStartingWithAndAgeLessThan 查詢name已wang開始的而且年齡小於50歲的get
package org.springdata; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springdata.domain.Employee; import org.springdata.repository.EmployeeRepository; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.List; /** * 測試類 */ public class SpringDataTest { private ApplicationContext ctx = null; private EmployeeRepository employeeRepository = null; @Before public void setup(){ ctx = new ClassPathXmlApplicationContext("beans.xml"); employeeRepository = ctx.getBean(EmployeeRepository.class); System.out.println("setup"); } @After public void tearDown(){ ctx = null; System.out.println("tearDown"); } @Test public void testEntityManagerFactory(){ } @Test public void testFindByName(){ System.out.println(employeeRepository); Employee employee = employeeRepository.findByName("zhangsan"); System.out.println("id:" + employee.getId() + " , name:" + employee.getName() + " ,age:" + employee.getAge()); } @Test public void testfindByNameIsStartingWithAndAgeLessThan(){ System.out.println(employeeRepository); List<Employee> employees = employeeRepository.findByNameIsStartingWithAndAgeLessThan("wang",50); for (Employee employee: employees) { System.out.println("id:" + employee.getId() + " , name:" + employee.getName() + " ,age:" + employee.getAge()); } } }
執行下測試 看下答應結果
是否是達到效果啦