首页 > 其他分享 >SpringBoot整合(部分内容)

SpringBoot整合(部分内容)

时间:2023-08-19 10:33:56浏览次数:52  
标签:tblStudent SpringBoot public 内容 Result 整合 Integer 查询 id

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

相关文章

  • 基于springboot的舞台服装租赁管理系统设计与实现-计算机毕业设计源码+LW文档
    文献综述:舞台服装租赁管理系统也属于电子商务的一部分,最早出现在美国克林顿,电子商务推出以来,对美国的经济造成了非常巨大的影响,带动了国内经济产值。从电子商务的形式来划分,包括企业对企业、企业对消费者,消费者和消费者模式。在电子商务发展过程中,也呈现出多种商务模式,比如企业和......
  • python+playwright 学习-71 expect 断言设置timeout 超时和自定义错误内容
    前言playwright提供了一个expect方法用于断言,还可以设置超时时间。expect使用断言描述expect(locator).to_be_checked()Checkboxischeckedexpect(locator).to_be_disabled()Elementisdisabledexpect(locator).to_be_editable()Elementisenabled......
  • macOS 特有内容
    Clipboard'pbpaste'outputthecontentofclipboard'pbcopy'copythecontenttoclipboard.Forexample,echo"hello"|pbcopyAingenioususage,collaboratewithtmuxbuffettocopythecontentfromtmuxtosystemcli......
  • springboot验证码-GoogleReCaptcha3 ReCaptcha
    现在的应用中对于登录,注册,短信验证码。。。这些场景来说,验证码真的是必不可少。随着技术的发展,也使得验证码从当初的图形验证码,发展到今天的滑块,倒立文字点击,数学计算,手势滑动,拼图,刮图。。。等等各种花样,总之一个目的,阻止机器人的访问。验证码这玩意儿,确实给用户带来了很不好的体......
  • springboot验证码-AJ-captcha
    准备资料:若依版本:ruoyi-vue3.8.2【点我去下载】aj-captcha版本:1.3.0【去下源码】参考:若依官方文档-集成aj-captcha开始若依vue版本的验证码用了数学运算,还得手工输入计算结果。看了官方文档,改成了目前比较流行的拖动滑块方式。1.引入MAVEN依赖若依官方引入的是1.2.7版......
  • springboot验证码-easy-captcha工具包
    说明Java图形验证码,支持gif、中文、算术等类型,可用于JavaWeb、JavaSE等项目pom引入 <dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha</artifactId> <version>1.6.2</version> </dependency> 详解参数类使用easy-cap......
  • springboot验证码-kaptcha
    前言网上实现生成验证码的方式有很多,我这里只记录下使用kaptcha生成验证码的方式。实现思路1、整合kaptcha,创建kaptcha的工具类。2、编写接口,在接口中使用kaptcha工具类来生成验证码图片(验证码信息)并返回。3、登录时从session中获取验证码进行校验。4、测试获取验证码......
  • springboot验证码-Hutool-captcha
    前言在Web应用程序中,为了保护用户信息的安全性,验证码已经成为了一个非常普遍的安全措施,而Hutool-captcha是一款非常优秀的开源图形验证码工具,简单易用,提供了丰富的特性,可以帮助我们快速实现验证码功能。本文将介绍如何使用SpringBoot整合Mybatis-Plus和Hutool-captcha实现验证码......
  • springboot验证码-kaptcha谷歌验证码工具
    验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息。Maven依赖在开发验证码功能的时候,kaptcha谷歌验证码工具,依赖。<!--验证码--><dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artif......
  • springboot验证码-kaptcha,hutool-captcha
    前言在springboot的登陆页面中为了防止机器大规模注册,机器暴力破解数据密码等危害,需要验证随机生成的验证码。现提出两种简易方案生成验证码功能,一种采用springboot整合kaptcha第三方验证码生成工具的生成方案;另一种采用springboot整合第三方类库hutool生成验证码,验证成功跳转至s......