一、使用的工具:
1、JDK1.8
2、Eclipse
3、Maven
二、创建项目
1、创建SpringBoot项目
2、Maven 依赖配置如下:
4.0.0
com.zzg
SpringLearn
0.0.1-SNAPSHOT
JPADemo
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-data-jpa
mysql
mysql-connector-java
8.0.11
io.springfox
springfox-swagger2
2.2.2
io.springfox
springfox-swagger-ui
2.2.2
org.springframework.boot
spring-boot-configuration-processor
true
org.springframework.boot
spring-boot-maven-plugin
SpringBoot 父类项目依赖配置文件如下:
4.0.0
com.zzg
SpringLearn
0.0.1-SNAPSHOT
pom
org.springframework.boot
spring-boot-starter-parent
1.5.6.RELEASE
HikariCPDemo
JPADemo
项目截图如下:
包说明:
com.zzg.springboot.controller:控制层代码
com.zzg.springboot.entity:实体对象与数据库表对于关系
com.zzg.springboot.repository:dao层接口定义
com.zzg.springboot.service:service 接口定义
cong.zzg.springboot.service.impl:service 接口实现类
com.zzg.springboot.swagger:swagger 配置属性
四、代码实现
要求:基于mysql +jpa 构建简单的查询实例
4.1 entity 与table 对应关系
package com.zzg.springboot.entity;
import javax.persistence.*;
@Entity
@Table(name = "sys_user")
public class SysUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) // id自动增长
private Long id;
private String username;
private String password;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
4.2 、dao 层接口定义:基于主键ID查询
package com.zzg.springboot.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.zzg.springboot.entity.SysUser;
public interface SysUserRepository extends JpaRepository {
}
4.3、service层接口定义和service层接口实现:基于主键ID查询
package com.zzg.springboot.service;
import com.zzg.springboot.entity.SysUser;
public interface SysUserService {
public SysUser findById(Long id);
}
package com.zzg.springboot.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zzg.springboot.entity.SysUser;
import com.zzg.springboot.repository.SysUserRepository;
import com.zzg.springboot.service.SysUserService;
@Service
public class SysUserServiceImpl implements SysUserService {
@Autowired
private SysUserRepository repository;
public SysUser findById(Long id) {
// TODO Auto-generated method stub
return repository.findOne(id);
}
}
4.4、controller 层实现
package com.zzg.springboot.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zzg.springboot.entity.SysUser;
import com.zzg.springboot.service.SysUserService;
@RestController
@RequestMapping("/jpa")
public class JPAController {
@Autowired
private SysUserService service;
@RequestMapping("/findById")
public void findById() {
SysUser bean = service.findById(1l);
System.out.println("name is :" + bean.getUsername());
System.out.println("password is :" + bean.getPassword());
}
}
4.5、swagger 配置属性
package com.zzg.springboot.swagger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfigure {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.zzg.springboot.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot中使用Swagger2构建RESTful APIs")
.description("Spring Boot Swagger2")
.termsOfServiceUrl("http://blog.csdn.net/zhouzhiwengang")
.contact("swagger")
.version("1.0")
.build();
}
}
4.6、程序入口
package com.zzg.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@EnableAutoConfiguration
@ComponentScan
@Configuration
public class Application {
public static void main(String[] args) {
// TODO Auto-generated method stub
SpringApplication.run(Application.class,args);
}
}
五、建库脚本(sys_user)
CREATE TABLE `sys_user` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`username` VARCHAR(200) NOT NULL COLLATE 'utf8mb4_general_ci',
`password` VARCHAR(200) NOT NULL COLLATE 'utf8mb4_general_ci',
PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=3
今天就分享到这里。