首页 > 其他分享 >Springboot+Mybatis(三)

Springboot+Mybatis(三)

时间:2023-09-24 11:22:48浏览次数:24  
标签:Springboot spring public flag user Mybatis id

今天学习了如何使用Mybatis实现增删改查 为此做一个梳理发表一篇博客,也是为了总结一下 首先,要使用Mybatis需要添加依赖 从建立项目的时候选择java8+Springboot2这样的方式,避免高版本存在一些兼容性的问题 然后添加Mybatis-plus依赖,老师讲的是添加了plus会自动添加Mybatis的依赖,但是很遗憾我后续出现了报错因此还是手动添加了

  <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.0.7</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.5</version>
        </dependency>

四个依赖 从上到下分别是 Mybatis-plus 、mysql、Mybatis、德鲁伊连接池

单独解释一下德鲁伊,说白了就是对数据库进行多次链接,提高连接的效率,然后报错的时候你就会发现,它会不断的报错,就像写了一个循环不断执行连接一样

然后配置properties

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis??useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=****
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

这里第三行如果写userUnicode=fasle会出现报错 因此我对编码进行了修改

然后需要对主类写一个@MapperScan的注解,注解的内容是要用到的接口所在的包

建议使用全名,这个是用于扫描mapper实现mybatis的操作的,因此路径不能错

 然后创建mapper和controller包,还是先写controller类

controller类中 首先添加@RestController注解,然后就可以等待实现一些mybatis的方法了

然后建议先创建entity包,用以把数据封装成对象,这样使用起来比较方便

建议创建的名称与数据库中一致,值得注意的是 Springboot中存在驼峰命名的规则

因此如果你的数据库中名称为day_id

在实体类中需要写dayId。

然后创建Mapper类

对Mapper类添加一个@Mapper的注解,意味着这是一个Mapper主键,上面在主类中所添加的@MapperScan注解就是为了在这里扫描到这个Mapper注解

然后就可以创建方法了

这里创建方法基于Mybatis就变得十分容易,只需要创建方法名称,然后添加对应接口就可以

例如

实现查询操作

@Select("select * from user")
public List<User> find();

这样就完成了接口的创建,去到Controller类中就可以实现对它的使用了

@GetMapping("/user")
        public List query()
        {
            List<User> list = userMapper.find();
            System.out.println(list);
            return list;
        }

这里单独说一下,接口类是无法被实例化的,它是由spring自动实例化的,因此只需要在Controller类中添加一个

@Autowired
    private UserMapper userMapper;

就可以调用userMapper这个对象中的方法了

其他的三个方法也是类似的,单独说一下的是,如果你使用的是对象,在sql语句中需要写成#{}的格式,这样mybatis会自动从你所传入的参数中寻找和它一致的进行注入,但是如果不一致则需要进行注解和映射的配置,建议还是保持一致避免麻烦

 @Insert("insert into user values(#{id},#{username},#{password},#{birthday})")
        public int insert(User user);
    @Delete("delete from user where id = #{id}")
        public int delete(String id);
    @Update("update user set username = #{username},password = #{password},birthday = #{birthday} where id = #{id}")
        public int update (User user);

 

@PostMapping("/user")
        public String insert(User user)
        {
            int flag = 0;
            flag = userMapper.insert(user);
            if(flag>0)
            {
                return "插入成功";
            }else
            {
                return "插入失败";
            }

        }
        @PostMapping("/delete")
        public String delete(String id)
        {
            int flag = 0;
            flag = userMapper.delete(id);
            if(flag>0)
            {
                return "删除成功";
            }else
            {
                return "删除失败";
            }
        }
        @PostMapping("/update")
        public String update(User user)
        {
            int flag = 0;
            flag = userMapper.update(user);
            if(flag>0)
            {
                return "更新成功";
            }else
            {
                return "更新失败";
            }

        }

然后需要传入参数的基本上都是post方法,当然写RequestMapping(value = "/",method =RequestMethod.POST)也是一样的

通过Apipost软件可以发送post请求,省去了创建form表单的过程。

 

标签:Springboot,spring,public,flag,user,Mybatis,id
From: https://www.cnblogs.com/Arkiya/p/17725736.html

相关文章

  • springBoot上传文件时MultipartFile报空问题解决方法
    1.问题描述:之前用springMVC,转成springboot之后发现上传不能用。网上参考说是springboot已经有CommonsMultipartResolver了,但是我的上传后台接收的还是null。2.解决方法加入配置类importorg.springframework.context.annotation.Bean;importorg.springframework.context......
  • SpringBoot开发实战(微课视频版)
    ISBN:978-7-302-52819-7编著:吴胜页数:311页阅读时间:2023-06-24推荐指数:★★★★☆本文介绍SpringBoot2.0.5、JDK1.8,虽然现在已经不维护了,但是大体的流程还是对口的,而且书里面讲解的也比较简单易懂,还是推荐阅读的。第一章:SpringBoot简介SpringBoot发展背景、特征、工......
  • springboot的Maven的镜像
     Maven的镜像<!--阿里镜像--><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyunmaven</name><url>http://maven.aliyun.com/nexus/content/repositories/central/</url>......
  • MyBatis MySQL limit分页含运算动态语句
    MySQL基本的分页语句select*fromtablelimitoffset,pageSize正常情况下是没问题的,如果offset是动态的select*fromtablelimit(pageNum-1)*pageSize,pageSize这样就无法执行了。具体原因可以在MySQL中直接执行这种含运算符的语句试下就知道了。现在给出两种解决方案使用MySQ......
  • mybatis大于小于等于的写法
    第一种写法(1):原符号<<=>>=&'"替换符号<<=>>=&'"例如:sql如下:create_date_time>=#{startTime}andcreate_date_time<=#{endTime}第二种写法(2):大于等于=]]>小于等于例如:sql如下:create_date_time=]]>#{startTime}......
  • SpringBoot返回字符串乱码如何解决
    场景:controller某个接口是直接返回字符串,用于测试的。当返回中文字符串的时候乱码。解决方法:在controller的映射加上produces="text/html;charset=utf-8"示例:@RequestMapping(value="/ping",produces="text/html;charset=utf-8")publicStringping(){return"pon......
  • 关于初次new springboot项目
    如果是新手初学,然后做springboot项目报各种错,改来改去最终都无法出现successful字样。请先检查,maven环境是否配好。maven环境决定你下载依赖的速度,以及能否下载成功。 maven管理你的springboot项目,所以配置它的环境是必不可少的。 比如未配置maven环境直接运行项目可能会......
  • Springboot+Vue(二)
    上传的静态资源文件放到static文件夹下即可表单的enctype属性规定再发送到服务器之前该如何对表单数据进行编码默认情况下数据格式为key=value&key=value需要改成enctype="multipart/form-data"默认情况下限制了单次请求文件的大小单个文件不能超过1Mb所有文件不能超过......
  • springboot 接收前端数组
    前端:(黄色内容为必选项!!!)axios({url:"/access/getArr",method:"post",data:JSON.stringify([1,2,3,4]),headers:{"Content-Type":"application/json",},});后端:@RequestMapping(value=......
  • springboot项目可以是那些缓存技术
    SpringBoot项目可以使用多种缓存技术,下面列举了一些常见的缓存技术以及它们的优缺点:Redis:优点:Redis是一个开源的内存数据结构存储,用作数据库、缓存和消息代理。其读写速度非常快,因为数据存储在内存中。Redis支持丰富的数据类型,如字符串、列表、集合、哈希、有序集合等,可以满足不同......