确保配置好mysql-conntor 和 jpa 的依赖。
并在本地创建对应数据库!
http://784838898.iteye.com/admin/blogs/2390284
项目启动后会老一套的正向生成DB TABLE。
Step 1:
创建用于测试CRUD的JAVA-BEAN [Person] ,
随便写几个Field 添加 G+S Method 及无参Constructor.
import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Person { @Id @GeneratedValue private Integer id; private String nickName; private String gender; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Person() { } }
需标注@Entity
@Id
@GeneratedValue
此处代表PrimaryKey自增长序列
-------------------------------------------------------------------------------
添加数据持久化接口类
[PersonRepository.java]
import org.springframework.data.jpa.repository.JpaRepository; import com.demo.bean.Person; public interface PersonRepository extends JpaRepository<Person,Integer> { }
这里的PersonRepository接口实现了JpaRepository接口;
实际上JpaRepository实现了PagingAndSortingRepository接口,PagingAndSortingRepository接口实现了CrudRepository接口,CrudRepository接口实现了Repository接口;
说明:
Repository接口是一个标识接口,里面是空的
CrudRepository接口定义了增删改查方法
PagingAndSortingRepository接口用于分页和排序
由于JpaRepository接口继承了以上所有接口,所以拥有它们声明的所有方法
以findAll方法为例,JpaRepository接口返回的是List, PagingAndSortingRepository和CrudRepository返回的是迭代器!
简单的增删改查在Controller中如下
@Autowired private PersonRepository personRepository ; /** * findAll * */ @GetMapping(value = "/persons") public List<Person> personList(){ return personRepository.findAll(); } /** * findOne * */ @GetMapping(value = "/persons") public Person personById(){ return personRepository.findOne(1); } /** * Add Person / Update Person IF PK EXSITS * @param name * */ @GetMapping(value = "/personAdd") public Person addPerson(@RequestParam("name") String name){ Person person = new Person(); person.setName(name); return personRepository.save(person); } @GetMapping(value = "/personRemove") public String removePerson(@RequestParam("id") String id){ personRepository.delete(Integer.parseInt(id)); return "success"; }
家里尽量模块化规范。
+- PorjectRoot
+- domain
| +- Person.java
|
+- service
+-impl
| +- PersonService.java
| +- PersonRepository.java
+- web
| +- PersonController.java
|