-
- 创建一个以Gradle构建的spring project,导入工程并进行配置
- Spring MVC——Controller
Controller的作用:监听输入请求;将数据发送到Model进行进一步处理;
从Model获取处理后的数据,发送给View显示。
- REST
REST是设计分布式系统的体系结构风格。 它不是标准,而是一组约束。
资源显示了URI的内容。
传递JSON或XML来表示数据对象和属性。
使用HTTP方法对资源进行操作(POST, PUT, GET, DELETE)。
- SpringMVC注解
使用@Controller标记某类,表明它是Controller对象。
使用@RequestMapping来注释控制器类,在这种情况下,所有方法都将映射为相对于类级别的请求,表示该控制器处理的所有请求都被映射到value属性所指示的路径下。
使用@ResponseStatus可以实现自定义异常,同时在页面上进行显示。
使用@ResponseBody 令该方法的返回结果直接写入 HTTP response body 中。
@Controller public class MyFirstController { @RequestMapping(value = "/cars", method = RequestMethod.GET) @ResponseStatus(HttpStatus.OK) @ResponseBody public List<Car> listOfCars(){ List<Car> availableList = new ArrayList<Car>(); for(int i=0;i<s.getAllCars().size();i++){ if(!s.getAllCars().get(i).isRented()) { availableList.add(s.getAllCars().get(i)); } } return availableList; } }
- JPA实体类注解
@Entity作为实体类标识
@Id 标识的实体类的属性映射对应表中的主键
@Entity public class Car { int id; String plateNumber; String model; @Id public int getId() { return id; } public void setId(int id) { this.id = id; } public String getPlateNumber() { return plateNumber; } public void setPlateNumber(String plateNumber) { this.plateNumber = plateNumber; } public String getModel() { return model; } public void setModel(String model) { this.model = model; } }
@OneToOne、@ManyToOne、@OneToMany、@ManyToMany分别代表一对一、多对一、一对多、多对多的关联
一对一双向关联
public class Person{ private Car car; @OneToOne(mappedBy = “driver") public Car getCar(){ return car; } public void setCar( Car car ){ this.car = car; } }
public class Car{ private Person driver; @OneToOne public Person getDriver(){ return driver; } public void setDriver ( Person driver){ this.driver = driver; } }
一对多的双向关联
@Entity public class Customer { private Collection<OrderService> order; @OneToMany(mappedBy="customer") public Collection<OrderService> getOrder() { return order; } public void setOrder(Collection<OrderService> order) { this.order = order; } public void addOrder( OrderService order1 ){ this.getOrder().add(order1); order1.customer = this; } }
@Entity public class OrderService { @ManyToOne public Customer getCustomer() { return customer; } public void setCustomer(Customer customer) { this.customer = customer; } }
- 使用JPA进行HSQLDB连接
配置Persistence.xml,作用是映射表和类,里面也可以配置数据库连接信息
下载HSQLDB
终端打开HSQLDB下的lib文件夹,输入
java -cp hsqldb.jar org.hsqldb.Server
另开一个终端,打开HSQLDB下的lib文件夹,输入
java -cp hsqldb.jar org.hsqldb.util.DatabaseManagerSwing
弹出窗口选择HSQL Database Engine Server类型
- EntityManager
EntityManager由EntityManagerFactory创建,EntityManagerFactory包含有当前O-R映射的元数据信息,每个EntityManagerFactory,可称为一个持久化单元(PersistenceUnit),每个持久化单元可认为是一个数据源的映射。
PersistenceContext,称为持久化上下文,它一般包含有当前事务范围内的、被管理的实体对象(Entity)的数据。每个EntityManager都会跟一个PersistenceContext相关联。
EntityManager可以通过@PersistenceContex注入或EntityManagerFactory创建获得
@PersistenceContext EntityManager em;
EntityManagerFactory emf; EntityManager em = emf.createEntityManager();
- EntityManager的接口方法
添加
@PersistenceContext EntityManager em; ... Personne personne = new Personne(); em.persist( personne );
删除
@PersistenceContext EntityManager em; long id = ... Person person = em.find(Person.class, id ); em.remove( person );
查找
@PersistenceContext EntityManager em; long id = ... Person person = em.find(Person.class, id );
- JPQL数据查询
@Entity @NamedQuery(name = "findAllPersons", query = "SELECT p FROM Person p") public class Person{ ... }
@PersistenceContext EntityManager em; ... List persons = em.createNamedQuery("findAllPersons").getResultList(); for (Iterator it = persons.iterator(); it.hasNext();){ Person person = (Person) it.next(); ... }
http://www.baeldung.com/spring-controllers
https://spring.io/understanding/REST
http://blog.csdn.net/lamb7758/article/details/54135572
http://blog.sina.com.cn/s/blog_49c16fee0102uzgo.html
http://blog.csdn.net/lijia791541916/article/details/50377829
使用Spring+Angular+HSqlDB的web项目开发(1)
最新推荐文章于 2024-05-21 23:12:07 发布