第一步,在pom.xml文件中添加插件 包括了mysql,jpa , swgger
<!-- jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
第二步:编写接口controller
/**
* @ControllerAdvice : 注解定义全局异常处理类
* @RestController : 声明为controller
* @Api : swagger标题
* @CrossOrigin : 是用来处理跨域请求的注解
*/
@CrossOrigin
@RestController
@Api(value = "UserController")
@ControllerAdvice
public class UserController {
@Autowired
private IUserService userService;
@ApiOperation(value = "用户登录验证", notes = "根据用户Id验证用户密码是否正确,进行登录验证; 登录成功后,置为上线")
@ApiImplicitParam(name = "loginId", value = "用户Id", paramType = "Query", required = true, dataType = "String")
@RequestMapping(value = "/login", method = RequestMethod.GET, produces = "application/json")
public Map<?, ?> login(String loginId, String password) {
Map<?, ?> result = userService.userLogin(loginId, password);
return result;
}
}
第三步:编写servie层的接口规范
public interface IUserService {
//登录
Map<?, ?> userLogin(String loginId, String password);
}
第四步:编写实现service层接口的实现类
@Transactional(propagation = Propagation.REQUIRED)
@Service(value = "userService")
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public Map<?,?> userLogin(String loginId, String password) {
Map<String, Object> result = new HashMap<>();
try {
User user = userDao.findByLoginId(loginId);
if(user == null){
result.put("code",201);
result.put("result","该账号为注册");
return result;
}
if (user.getPassword().equals(password)) {
result.put("code",200);
result.put("result",user);
} else {
result.put("code",201);
result.put("result","密码错误");
}
}catch (Exception ex){
System.err.println("用户密码验证失败");
result.put("code",201);
result.put("result","内部错误");
}
return result;
}
}
第五步:通过jpa编写操作dao的类
/**
* user 用户表 查询
*/
public interface IUserDao extends JpaRepository<User, Long> {
User findByLoginId(String loginId);
}
第六步:编写model实体
/**
* 用户表
* @Entity 声明类为实体或表。
* @Table 声明表名。
*/
@Entity
@Table(name = "user")
public class User {
/**
* @Id 指定的类的属性,用于识别(一个表中的主键)。
* @GeneratedValue 指定如何标识属性可以被初始化,
* 例如自动、手动、或从序列表中获得的值。
* @SequenceGenerator 指定在@GeneratedValue注解中指定的属性的值。
* 它创建了一个序列
* @Column 指定持久属性栏属性
*/
@Id
@GeneratedValue(generator = "id")
@GenericGenerator(strategy = "assigned", name = "id")
@Column(length = 50)
private String loginId;// 登录ID 对应数据库的列为 login_id
@Column(length = 50)
private String password;
@Column(columnDefinition = "bit(1) default 0")
private boolean ifOnline;// 是否在线 对应数据库的列为 if_online
完成,这样通过jpa操作数据库的方式也就完成了,因为使用了swagger,所以可以通过
http://localhost:8080/swagger-ui.html 直接来测试我们写的接口是否正确。