1. 项目环境创建
去看别人的哈,这里不说了。
2. 引入相关包
在pom.xml中整体包信息如下:
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.4.2
com.lexue
fir
0.0.1-SNAPSHOT
fir
LeXue Fir for Spring Boot
1.8
2020.0.0
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.4
com.baomidou
mybatis-plus-boot-starter
3.1.2
org.projectlombok
lombok
org.springframework.cloud
spring-cloud-config-server
org.springframework.cloud
spring-cloud-function-web
org.springframework.cloud
spring-cloud-starter
org.springframework.cloud
spring-cloud-starter-task
mysql
mysql-connector-java
8.0.15
org.springframework.boot
spring-boot-starter-test
test
com.alibaba
fastjson
1.2.54
org.apache.commons
commons-collections4
4.3
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
1.1 mysql
mysql
mysql-connector-java
8.0.15
1.2 mybatis
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.4
注意版本号,最新的版本可用
runtime 代替 2.1.4
1.3 plus相关
com.baomidou
mybatis-plus-boot-starter
3.1.2
org.projectlombok
lombok
lombok的使用需要在plugins中倒入插件lombok,否则无效。
1.4 其他工具类
com.alibaba
fastjson
1.2.54
org.apache.commons
commons-collections4
4.3
fastjson是json解析工具类
1.5 SpringCloud
org.springframework.cloud
spring-cloud-config-server
org.springframework.cloud
spring-cloud-function-web
org.springframework.cloud
spring-cloud-starter
org.springframework.cloud
spring-cloud-starter-task
3. 开发
3.1 数据库配置
在application.yml中配置
# mysql配置
spring:
freemarker:
cache: false
thymeleaf:
cache: false
datasource:
url: jdbc:mysql://127.0.0.1:3306/sensor?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8
name: sener
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
# mybatis配置
mybatis:
mapper-locations: classpath:mapper/*.xml #对应mapper映射xml文件所在路径
type-aliases-package: com.lexue.fir.model #对应实体类路径
#开启驼峰命名
configuration:
map-underscore-to-camel-case: true
3.2 mybatis使用包含4部分
1⃣️ 新建model包,创建UserInfo对象
@Data
public class UserInfo {
private String account;//账号
private String pwd;
private String name;//姓名
private int sex;//性别
private int age;
private String nickName;//昵称
private String idCard;//身份证
private String mobile;//手机号
private String email;//邮箱
}
用@Data是使用了lombok插件,不然要自己写set和get方法了,乱极了。
2⃣️ 新建包mapper,创建 UserInfoMapper,里面可以实现一个方法,findAll,查询user_info表格中所有数据
@Repository
//@Mapper //application
public interface UserInfoMapper {
List findAll();
}
3⃣️ 在resources目下,新建mapper文件,创建 UserInfoMapper.xml文件,这里是数据库查新sql语句
一定要注意,resultType是相对路径,带包名的,不然找不到。
4⃣️ 在application中加入扫描路径,不然application找不到
@SpringBootApplication
@MapperScan(basePackages = {"com.lexue.fir.db.mapper"})
public class FirApplication {
public static void main(String[] args) {
SpringApplication.run(FirApplication.class, args);
}
}
就是这句 @MapperScan(basePackages = {"com.lexue.fir.db.mapper"})
也可以用另一种方式,就是在UserInfo上加 @Mapper,两个方式都可以。
3.2 数据库使用
创建login包,创建 LoginController文件,内容如下
@RestController
@RequestMapping(value = "/login")
public class LoginController {
private final UserInfoService userInfoService;
public LoginController(UserInfoService userInfoService) {
this.userInfoService = userInfoService;
}
/**
* 获取用户列表
*
* @return 信息
*/
@RequestMapping(value = "/getUserInfo")
public String getUserInfo() {
List userInfoList = userInfoService.findAll();
BaseInfo> baseInfo = BaseInfo.fail(userInfoList);
return JSON.toJSONString(baseInfo);
}
}
"/login"是接口路径,"/getUserInfo"是接口,这里需要service,怎么创建呢,看下面
service代码
public interface UserInfoService {
List findAll();
void insertData(UserInfo userInfo);
}
impl代码
@Service
public class UserInfoServiceImpl implements UserInfoService {
final UserInfoMapper userInfoMapper;
public UserInfoServiceImpl(UserInfoMapper userInfoMapper) {
this.userInfoMapper = userInfoMapper;
}
@Override
public List findAll() {
return userInfoMapper.findAll();
}
@Override
public void insertData(UserInfo userInfo) {
if (userInfo != null) {
userInfoMapper.insert(userInfo);
}
}
}
其中的
List userInfoList = userInfoService.findAll();
是获取返回对象。
3.3 mybatis-plus使用
很简单,让mapper继承BaseMapper即可
@Repository
//@Mapper //application
public interface UserInfoMapper extends BaseMapper {
List findAll();
}
这样就可以使用plus里面封装的数据库操作方式,这几个方式是不需要我们再写在mapper.xml里了,在plus中可以实现的数据库操作有条件查询,逻辑删除等。
比如:对于
UserInfoMapper userInfoMapper, 可以使用userInfoMapper.selectList(null)查询所有数据,这个selectList方法并不是我们自己自己定义的,而是plus框架里面定义好的,节约我们自己的处理时间。
更新中... 更新中... 更新中... 更新中... 更新中... 更新中... 更新中... 更新中...