新建一个maven项目,指定其父项目为springboot,再添加spring data jpa的坐标(定义了一系列的crud接口【我们要做的就是在dao层写接口继承这些spring data jpa封装实现好的父接口,我们的dao层就可以直接获得简单的crud功能了】,其背后spring通过代理,默认使用hibernate来实现之-----因此可以不用引入hibernate的坐标),再添加spring-boot-starter-web坐标(引入springmvc,供我们浏览器测试使用。)。最后再添加mysql 的驱动连接即可:
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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com</groupId>
<artifactId>newSjpa</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>newSjpa Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
写个与数据库对应的pojo类
@Entity
@Table(name = "user")
public class UserEntity implements Serializable {
@Id
@GeneratedValue
private Integer id;
@Column(name = "username")
private String username;
@Column(name ="password")
private String password;
@Column(name ="sex")
private String sex;
@Column(name ="photo_url")
private String photoUrl;
@Column(name ="email")
private String email;
@Column(name = "type")
private Integer type;
@Column(name ="register_date")
private String registerDate;
@Column(name ="signature")
private String signature;
@Column(name ="level")
private Integer level;
@Column(name ="active_code")
private String activeCode;
@Column(name ="has_active")
private Integer hasActive;
//省略getter和setter方法.............
UserDao层的代码如下:
public interface UserDao extends JpaRepository<UserEntity,Long> ,JpaSpecificationExecutor<UserEntity> , Serializable {
}
controller层代码如下:
@RestController
public class HiController {
@Autowired
UserDao userDao;
@RequestMapping
public List<UserEntity>hi(){
return userDao.findAll();
}
}
application.properties配置如下:
server.port=8000
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/bbs?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.database=mysql
spring.jpa.show-sql=true
加个springbootapplication的注解,写个sprongboot项目的启动类,调一下springApplication类的静态run方法,启动整个项目:
@SpringBootApplication
public class StartApp {
public static void main(String[]args){
SpringApplication.run(StartApp.class,args);
}
}