1.springboot整合数据源--连接数据库
1.1 pom文件配置
首先,创建SpringBoot项目时勾选
创建好之后在pom文件中继续添加Druid数据库连接池依赖
<!-- 数据库连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.1</version>
</dependency>
1.2 application.properties文件配置
后缀.properties格式:
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.username=root
spring.datasource.druid.password=root
spring.datasource.druid.url=jdbc:mysql://localhost:3306/aaasql?serverTimezone=Asia/Shanghai
后缀.yml格式:
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
password: root
url: jdbc:mysql://localhost:3306/aaasql?serverTimezone=Asia/Shanghai
username: root
测试运行:
如果没报错就是成功
【注:springboot版本和jdk版本酌情选择,否则会引起报错】
2.springboot整合Mybatis
如果以上没报错,那就继续,整合Mybatis
由于在创建项目时已经勾选过Mybatis依赖包,所以不用管pom文件
如果忘记勾选或者什么原因,只需加上mybatis依赖就成
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>2.3.1</version>
<scope>test</scope>
</dependency>
2.1 继续配置application.properties文件
#Mapper文件映射路径
mybatis.mapper-locations=classpath:/mapper/*.xml
#Mapper文件实体类映射路径
mybatis.type-aliases-package=com.aaa.entity
#开启驼峰命名自动映射
mybatis.configuration.map-underscore-to-camel-case=true
2.2 主启动类配置扫描
在主启动类上添加注解@MapperScan(basePackages = "com.aaa.dao")
2.3 开始整合测试
写上对数据库的增删改查
- 创建Mapper映射文件
- 创建dao层
- 创建service层
- 创建entity实体类层
- 创建controller层
- 创建VO层
2.3.1 创建数据库实体类,这里就用我自己的数据库演示
TBStudent:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TblStudent {
private int id;
private String sname;
private String sex;
private int cid;
private TblClass tblClass;
}
TBClass:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TblClass {
private int id;
private String cname;
}
【注:如果实体类要使用注解,必须要加Lombok依赖】
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
2.3.2 VO层
创建result类,以便一会统一返回relust类型
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
private int code;
private String msg;
private Object data;
}
2.3.3 Dao层
public interface StudentDao {
//增加
int InsertStudent(TblStudent tblStudent);
//删除
int DelStudent(Integer id);
//修改
int UpdateStudent(TblStudent tblStudent);
//查询
TblStudent SeleStudent(Integer id);
//查询所有
List<TblStudent> seleAll();
}
2.3.4 Mapper映射文件
<?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">
<!--namespace必须和dao接口的名称一模一样-->
<mapper namespace="com.aaa.dao.StudentDao">
<!-- //增加-->
<insert id="InsertStudent" keyProperty="id" useGeneratedKeys="true">
insert into tbl_student(id,s_name,sex,cid) values (null,#{sname},#{sex},#{cid})
</insert>
<!-- //修改-->
<update id="UpdateStudent">
update tbl_student set s_name=#{sname},sex=#{sex},cid=#{cid} where id=#{id}
</update>
<!-- 删除-->
<delete id="DelStudent">
delete from tbl_student where id=#{id}
</delete>
<!-- 查询-->
<sql id="tblstu">
id,s_name sname,sex,cid
</sql>
<select id="SeleStudent" resultType="tblStudent">
select
<include refid="tblstu" />
from tbl_student where id=#{id}
</select>
<!-- 查询所有-->
<resultMap id="seleAllMap" type="tblStudent" autoMapping="true">
<id property="id" column="id"/>
<result property="sname" column="s_name"/>
<association property="tblClass" javaType="tblClass" autoMapping="true">
<id property="id" column="id"/>
</association>
</resultMap>
<select id="seleAll" resultMap="seleAllMap">
SELECT * from tbl_student
JOIN tbl_class on tbl_class.id = tbl_student.cid
</select>
</mapper>
【注:查询所有需要联表查询】
【注:查询,因为实体类属性名与数据库 列名不一致,这里为省方便没用Map,使用的是SQL片段】
2.3.5 service层
service接口:
public interface StudentService {
//增加
Result InsertStudent(TblStudent tblStudent);
//删除
Result DelStudent(Integer id);
//修改
Result UpdateStudent(TblStudent tblStudent);
//查询
Result SeleStudent(Integer id);
//查询所有
Result seleAll(Integer page,Integer numller);
}
【注:所有返回类型为relust】
service实现类:
@Service
public class StudentServiceim implements StudentService {
@Autowired
private StudentDao studentDao;
//增加
@Override
public Result InsertStudent(TblStudent tblStudent) {
int i = studentDao.InsertStudent(tblStudent);
return i !=0 ? new Result(200,"添加成功",tblStudent):new Result(500,"添加失败",null);
}
//删除
@Override
public Result DelStudent(Integer id) {
int i = studentDao.DelStudent(id);
return i !=0 ? new Result(200,"删除成功",null):new Result(500,"删除失败",null);
}
//更改
@Override
public Result UpdateStudent(TblStudent tblStudent) {
int i = studentDao.UpdateStudent(tblStudent);
return i !=0 ? new Result(200,"修改成功",null):new Result(500,"修改失败",null);
}
//查询
@Override
public Result SeleStudent(Integer id) {
TblStudent tblStudent = studentDao.SeleStudent(id);
return tblStudent != null?new Result(200,"查询成功",tblStudent) : new Result(500,"查询失败",null);
}
//查询所有
@Override
public Result seleAll(Integer page,Integer numller) {
PageHelper.startPage(page,numller);
List<TblStudent> tblStudents = studentDao.seleAll();
PageInfo<TblStudent> tblStudentPageInfo = new PageInfo<>(tblStudents);
return tblStudents != null?new Result(200,"查询成功",tblStudentPageInfo):new Result(500,"查询失败",null);
}
}
【注:查询所有需要使用分页插件,需要向pom文件中添加依赖】
<!--pageHelper的依赖-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.5</version>
</dependency>
2.3.6 controller层
@RestController
public class StudentController {
@Autowired
private StudentService service;
//添加
@RequestMapping("/insert")
public Result stuinsert(@RequestBody TblStudent tblStudent) {
return service.InsertStudent(tblStudent);
}
// 修改
@RequestMapping("/update")
public Result stuupdate(@RequestBody TblStudent tblStudent) {
return service.UpdateStudent(tblStudent);
}
//删除
@RequestMapping("/del")
public Result studel(Integer id) {
return service.DelStudent(id);
}
//id查询
@RequestMapping("/seleid")
public Result stuid(Integer id){
return service.SeleStudent(id);
}
//查询所有
@RequestMapping("/seleall")
public Result stu(Integer page, Integer numller) {
return service.seleAll(page, numller);
}
}
3. 测试运行
3.1 添加
3.2 修改
3.3 删除
3.4 查询
3.5 查询所有
4.springboot整合定时器
可以在规定的时间内执行相应的代码。
比如: OSS文件上传---OSS的文件冗余的文件。OSS的浪费。 指定的时间自动删除。[夜间删除]
比如: 下单--->30分钟未支付---取消订单。
4.1 添加定时器依赖
<!--引入定时器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
4.2 开启定时注解驱动
在主体类上添加注解开启定时器@EnableScheduling
4.3 编写定义的业务代码
创建定时器类且声明一个方法(随便)
@Scheduled(cron = "0/2 * * * * ?")
public void xw(){
System.out.println("定时器,Hello Word");
}
【注:注解 @Scheduled(cron = "0/2 * * * * ?") 添加定时的时间,所长时间执行一次代码,这里的 0/2 * * * * ? 为每2秒执行一次】
【注:cron中的表达式不会写可以百度cron转换即可】
测试运行:
以上便是SpringBoot整合(部分内容)中的内容,如有漏缺请在下方留言告知,我会及时补充
标签:tblStudent,SpringBoot,public,内容,Result,整合,Integer,查询,id From: https://www.cnblogs.com/9--1/p/17642041.html