SpringBoot整合(部分内容)

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整合(部分内容)中的内容,如有漏缺请在下方留言告知,我会及时补充

 

posted @   九极致之术  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示