使用springboot + mybatis搭建后端工程,具体步骤如下:
1、new project
选择spring Initializr ,看SDK和service URL是否正确,然后点击next
3、填写工程名称及java版本,java版本根据上一步的SDK版本来选择,然后点击next
4、选择依赖,然后next —> finish
5、创建目录如下,这里新添加了一个application.yml,不使用原本的application.properties,会把后者删除
6、修改application.yml 配置文件
server:
port: 8081 # 配置启动端口号
servlet:
context-path: /SSM02 #项目请求路径
db:
host: localhost
database: test
username: root
password: 123456
mybatis:
config-location: classpath:mybatis-config.xml # mybatis主配置文件所在路径
type-aliases-package: com.ssm02.mz.entity # 定义所有操作类的别名所在包
mapper-locations: classpath:mappers/*.xml # 所有的mapper映射文件
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource # 配置当前要使用的数据源的操作类型
driverClassName: com.mysql.cj.jdbc.Driver # 配置mysql的驱动程序类
url: jdbc:mysql://${db.host}:3306/${db.database}?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8 # 数据库连接地址
username: ${db.username} # 数据库用户名
password: ${db.password} # 数据库密码
filters: stat,wall,log4j # 配置druid过滤器,开启监控
dbcp2: # 进行数据库连接池的配置
min-idle: 5 # 数据库连接池的最小维持连接数
initial-size: 5 # 初始化提供的连接数
max-total: 20 # 最大连接数
max-wait-millis: 200 # 等待连接获取的最大超时时间
pagehelper: #pagehelper分页插件
helperDialect: mysql #设置数据库方言
reasonable: true
supportMethodsArguments: true
params: count=countSql
7、在resources下新建mybatis-config.xml,添加如下内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
<settings>
<setting name="useGeneratedKeys" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
8、基本目录如下
9、修改启动类,如下
10、在各包下添加接口类
User实体类
package com.ssm02.mz.entity;
import java.io.Serializable;
public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public int id;
public String userName;
public String pwd;
public String sex;
public int age;
public String job;
public String phone;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + '\'' +
", pwd='" + pwd + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
", job='" + job + '\'' +
", phone='" + phone + '\'' +
'}';
}
}
dao层代码
package com.ssm02.mz.dao;
import com.ssm02.mz.entity.User;
import java.util.List;
public interface UserDao {
public User login(User user);
public List<User> selectList();
}
在mappers下添加UserMapper.xml
<?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.ssm02.mz.dao.UserDao">
<resultMap type="com.ssm02.mz.entity.User" id="UserResult">
<id property="id" column="id"></id>
<result property="userName" column="user_ame"></result>
<result property="pwd" column="password"></result>
</resultMap>
<select id="login" parameterType="com.ssm02.mz.entity.User" resultMap="UserResult">
select * from user where user_name=#{userName} and password=#{pwd}
</select>
<insert id="add" parameterType="com.ssm02.mz.entity.User" useGeneratedKeys="true">
insert into user (user_name,password) values(#{userName},#{pwd})
</insert>
<select id="selectList" resultType="com.ssm02.mz.entity.User">
select
id as id,
user_no as userNo,
user_name as userName,
user_code as userCode,
password as pwd,
sex as sex,
age as age,
job as job,
phone as phone from user where 1=1
</select>
</mapper>
UserService接口
package com.ssm02.mz.service;
import com.ssm02.mz.entity.User;
import java.util.List;
import java.util.Map;
public interface UserService {
public Map<String, Object> login(User user);
public List<User> selectList();
}
UserServiceImpl 业务层实现类
package com.ssm02.mz.serviceImpl;
import com.ssm02.mz.dao.UserDao;
import com.ssm02.mz.entity.User;
import com.ssm02.mz.service.UserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class UserServiceImpl implements UserService {
@Resource
UserDao userDao;
@Override
public Map<String, Object> login(User user) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("data", userDao.login(user));
return map;
}
@Override
public List<User> selectList() {
List<User> list = userDao.selectList();
return list;
}
}
在 util 下添加请求返回类
package com.ssm02.mz.util;
import java.io.Serializable;
import java.util.List;
public class ResultMessage implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private int code = 0;
private String message;
private List<?> data;
public ResultMessage(){
}
public ResultMessage(int code, String message, List<?> data){
this.code = code;
this.message = message;
this.data = data;
}
public static ResultMessage newInstance(int code, String message, List<?> data){
ResultMessage obj = new ResultMessage();
obj.code = code;
obj.message = message;
obj.data = data;
return obj;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<?> getData() {
return data;
}
public void setData(List<?> data) {
this.data = data;
}
@Override
public String toString() {
return "ResultMessage [code=" + code + ", message=" + message
+ ", data=" + data + "]";
}
}
UserController 接口层
package com.ssm02.mz.controller;
import com.ssm02.mz.entity.User;
import com.ssm02.mz.service.UserService;
import com.ssm02.mz.util.ResultMessage;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "/user")
public class UserController {
@Resource
UserService userService;
@ResponseBody
@RequestMapping(value = "/login", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public ResultMessage login(User user){
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
try {
Map<String, Object> map = userService.login(user);
list.add(map);
return ResultMessage.newInstance(0, "登录成功", list);
} catch (Exception e) {
e.printStackTrace();
return ResultMessage.newInstance(1, "登录失败", list);
}
}
@RequestMapping(value = "/selectList", method = RequestMethod.POST)
@ResponseBody
public ResultMessage selectList(){
List<User> list = new ArrayList<User>();
try {
list = userService.selectList();
return ResultMessage.newInstance(0, "查询成功", list);
} catch (Exception e) {
e.printStackTrace();
return ResultMessage.newInstance(1, "查询失败", list);
// return list;
}
}
}
都创建完成后,即可启动工程,打开启动类 MzApplication ,然后直接右击run即可,看到控制台输出如下即表示启动成功。
使用前端工程请求,调用后端接口;请求成功。