1、新建Spring Starter Project 项目
2、选择需要的依赖
当然如果此时你不选择相关依赖,等一会可以在项目的pom.xml中再次添加
3、我们先看下整个项目目录
4、刚才我们选择的,会在pom.xml中配置好,无需我们手动去添加
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>HibernateDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>HibernateDemo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
5、我们先配置下数据库的相关信息,在resources下的applicantion.properties中
spring.datasource.url =jdbc:mysql://localhost:3306/new_schema?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
spring.jpa.hibernate.naming.strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
注意:需要修改成你自己的数据库的url、username、password
6、新建一个水果的实体类Fruits.java
package com.yuna.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="fruits")//表名称
public class Fruits {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
private String name;
private float price;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
}
7、新建一个接口FruitsRepository
package com.yuna.repository;
import javax.persistence.Table;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.yuna.entity.Fruits;
@Repository
@Table(name="fruits")
@Qualifier("fruitsRepository")
public interface FruitsRepository extends CrudRepository<Fruits, Long > {
public Fruits findOne(Long id);
@SuppressWarnings("unchecked")
public Fruits save(Fruits u);
@Query("select t from Fruits t where t.name=:name")
public Fruits findUserByName(@Param("name") String name);
}
8、新建一个controller来测试下
package com.yuna.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.yuna.entity.Fruits;
import com.yuna.repository.FruitsRepository;
@Controller
@RequestMapping("/hibernate")
@EnableAutoConfiguration//此注释自动载入应用程序所需的所有Bean
public class HibernateController {
@Autowired
private FruitsRepository fruitsRepository;
@RequestMapping("getFruitsById")
@ResponseBody
public Fruits getFruitsById(Long id) {
Fruits u = fruitsRepository.findOne(id);
System.out.println("userRepository: " + fruitsRepository);
System.out.println("id: " + id);
return u;
}
/*@RequestMapping("saveFruits")
* RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
* */
/*@ResponseBody
* i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
* */
@RequestMapping("saveFruits")
@ResponseBody
public void saveFruits() {//注意 @RequestMapping("saveFruits")里的value值要与方法名称一致,否则找不到
Fruits fruitsEntity = new Fruits();
fruitsEntity.setName("苹果");
fruitsEntity.setPrice(10.9f);
fruitsRepository.save(fruitsEntity);
}
}
9、在HibernateDemoApplication的main方法上添加一些注解
package com.yuna.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@SpringBootApplication
@EnableJpaRepositories(basePackages = "com.yuna.repository")
@EntityScan(basePackages = "com.yuna")
public class HibernateDemoApplication {
public static void main(String[] args) {
SpringApplication.run(HibernateDemoApplication.class, args);
}
}
10、运行 run as —spring boot app,等服务启动好之后,在浏览器中输入
http://localhost:8080/hibernate/saveFruits
将水果的一些数据添加到表fruits中,我们可以在数据库中,查询下我们添加的数据是否添加了
11、我们根据id查询相关数据,在浏览器中输入:
http://localhost:8080/hibernate/getFruitsById?id=2