目录
2.3在mappers中添加usermapper.xml文件进行sql语句的书写
三.创建controller文件 添加UserController类对数据进行前后端数据交互
一.搭建基础框架
1.1创建application文件连接数据库
spring:
# 配置数据源信息
datasource:
# 配置数据源类型
type: com.zaxxer.hikari.HikariDataSource
# 配置连接数据库信息
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/commit?characterEncoding=utf-8&useSSL=false
username: root
password: 123456
mybatis-plus:
mapper-locations: classpath:mappers/*.xml
type-aliases-package: com.woniu.commit.entity
1.2导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <optional>true</optional>
</dependency>
<!-- mysql-connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- mybatis-plus代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
</dependencies>
1.3创建启动类
@SpringBootApplication
@MapperScan("com.woniu.commit.mapper")
public class Demo {
public static void main(String[] args) {
SpringApplication.run(Demo.class,args);
}
}
二.写逻辑代码
2.1创建entity实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String username;
private String password;
private int type;
private String remarks;
}
2.2创建mapper类将方法同一交给AOC容器管理
public interface UserMapper {
//登录
User selecyByNameAndPwd(String username, String passwd);
//查询所有
List<User> selectAll(int start,int size);
//查询数据条数
int selectCount();
//增加
int insertUser(User user);
//修改
int updateUser(User user);
//删除
int deleteUser(int id);
//根据id查询
User selectUserById(int id);
}
2.3在mappers中添加usermapper.xml文件进行sql语句的书写
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.woniu.commit.mapper.UserMapper">
<!-- User实体类和数据库userinfo表的映射关系-->
<resultMap id="userResult" type="User">
<!-- colum对应的数据库名字,property对应实体类中名字-->
<result column="id" property="id"></result>
<result column="username" property="username"></result>
<result column="password" property="password"></result>
<result column="type" property="type"></result>
<result column="remarks" property="remarks"></result>
</resultMap>
<insert id="insertUser">
insert into userinfo (username,password) values(#{username},#{password})
</insert>
<update id="updateUser">
update userinfo set username=#{username},password=#{password} where id=#{id}
</update>
<delete id="deleteUser">
delete from userinfo where id=#{id}
</delete>
<!-- sql语句中的#括号中的东西必须对应mapper里面的参数-->
<select id="selecyByNameAndPwd" resultMap="userResult">
select * from userinfo where username=#{username} and password=#{passwd}
</select>
<select id="selectAll" resultMap="userResult">
SELECT * FROM userinfo limit #{start},#{size}
</select>
<select id="selectCount" resultType="int">
SELECT count(id)FROM userinfo
</select>
<select id="selectUserById" resultMap="userResult">
select * from userinfo where id =#{id}
</select>
</mapper>
2.4在service层中写我们的业务逻辑代码
public interface IUserService {
/**
* 登录
* @param userName
* @param passwd
* @return
*/
HttpResult login(String userName,String passwd);
/**
* 查询用户列表,分页车讯
* @param pageIndex 页码
* @param pageSeze 每页的条数(显示多少信息)
* @return
*/
HttpResult getUsers(int pageIndex,int pageSeze);
/**
* 增加
* @param user
* @return
*/
HttpResult addUser(User user);
/**
* 删除
* @param id
* @return
*/
HttpResult removeUser(int id);
/**
* 修改
* @param user
* @return
*/
HttpResult updateUser(User user);
/**
* 查询用户
* @param id
* @return
*/
HttpResult getUserInfo(int id);
}
2.5添加@service注解实现IUservice
@Service
public class UserServiceImpl implements IUserService {
//管理权交给ioc容器
@Autowired(required = false)
private UserMapper userMapper;
@Override
public HttpResult login(String userName, String passwd) {
HttpResult result = null;
User user = userMapper.selecyByNameAndPwd(userName, passwd);
if (user!=null){
result= new HttpResult(user,0,200,null);
}else{
result= new HttpResult(null,0,500,"用户名或密码错误");
}
return result;
}
@Override
public HttpResult getUsers(int pageIndex, int pageSize) {
List<User> users = userMapper.selectAll((pageIndex - 1) * pageSize, pageSize);
int count = userMapper.selectCount();
HttpResult result=null;
System.out.println(users.size());
if (users!=null &&users.size()>0){
result=new HttpResult(users,count,200,null);
}else{
result= new HttpResult(null,0,500,"没有更多数据");
}
return result;
}
@Override
public HttpResult addUser(User user) {
int count = userMapper.insertUser(user);
HttpResult result=null;
if (count>0){
result=new HttpResult(null,0,200,"添加成功");
}else {
result=new HttpResult(null,0,500,"添加失败");
}
return result;
}
@Override
public HttpResult removeUser(int id) {
int count = userMapper.deleteUser(id);
HttpResult result=null;
if (count>0){
result=new HttpResult(null,0,200,"删除成功");
}else {
result=new HttpResult(null,0,500,"删除失败");
}
return result;
}
@Override
public HttpResult updateUser(User user) {
int count = userMapper.updateUser(user);
HttpResult result=null;
if (count>0){
result=new HttpResult(null,0,200,"修改成功");
}else {
result=new HttpResult(null,0,500,"修改失败");
}
return result;
}
@Override
public HttpResult getUserInfo(int id) {
User user = userMapper.selectUserById(id);
HttpResult result=null;
if (user!=null){
result=new HttpResult(user,0,200,null);
}else{
result= new HttpResult(null,0,500,"没有更多数据");
}
return result;
}
三.创建controller文件 添加UserController类对数据进行前后端数据交互
@RequestMapping("/user")
@RestController
@CrossOrigin(origins = "*")
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("/login")
public HttpResult login( @RequestBody UserVo userVo){
return userService.login(userVo.getUsername(),userVo.getPassword());
}
@RequestMapping("/login1")
public HttpResult login1( String username,String password){
return userService.login(username,password);
}
@RequestMapping("/list")
public HttpResult getUsers(int pageIndex, int pageSize){
return userService.getUsers(pageIndex,pageSize);
}
@RequestMapping("/add")
HttpResult insertUser(@RequestBody UserVo vo){
User user = new User();
user.setUsername(vo.getUsername());
user.setPassword(vo.getPassword());
return userService.addUser(user);
}
@PostMapping("/update")
HttpResult updateUser(@RequestBody User user){
return userService.updateUser(user);
}
@RequestMapping("remove")
HttpResult deleteUser(int id){
return userService.removeUser(id);
}
@RequestMapping("info")
HttpResult selectUserById(int id){
return userService.getUserInfo(id);
}
}