springboot整合mybatis快速入门

        本文采用springboot整合orm框架mybatis对数据库进行操作。

一、目录结构

给出springboot整合mybatis框架的项目目录,目录大致分为4层,controller层(控制层)、service(业务层),mapper(数据操作层),persist(实体层)

二、引入依赖

                在相应的pom.xml里面引入以下依赖:web依赖、mysql驱动依赖、mybatis框架依赖、lombok依赖。其中,lombok可以简化代码,在对应实体类上加入@Data注解,可以省略属性get、set方法。

<dependencies>
        <!--  web依赖      -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--mysql数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>

        <!--    lombok简化开发    -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

三、使用mybatis进行操作(以添加为例)

        1.application.yml

        mybatis需要设置mapper的加载位置,使用mapper-locations来进行设置,使用map-underscore-to-camel-case来设置是否开启驼峰模式。

        驼峰模式指的是:将下划线后的第一个字母变成大写,即user_name->userName

        spring下的datasource是对数据源进行配置。

server:
  port: 8080
#mybatis
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=true&allowMultiQueries=true
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  #mapper
  mapper-locations: classpath:mapper/*.xml
  #驼峰
  configuration:
    map-underscore-to-camel-case: true

        2.User.class

                用户实体类,这里只是一个demo,因此只包含用户名和密码两个属性,使用@Data注解可以省略属性的set、get方法

@Data
public class User {
    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
    private String password;
}

        3.UserController.class

        用户控制器:@RestController注解由@Controller和@ResponseBody两个注解组成,其中@ResponseBody可以使返回的结果变成json字符串,而不是视图model。

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/create")
    public String create(@RequestBody User user){
        userService.create(user);
        return "success";
    }
}

        4.UserService.class

        用户业务层:对于业务层来讲,不需要try catch方法,由于SpringBoot可以使用@ControllerAdvice和@ExceptionHandler注解来进行全局异常处理,因此,这里不需要进行try catch方法,对异常进行捕捉。

        如果需要查看:springboot实现全局异常处理_安心不心安的博客-CSDN博客

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public void create(User user) {
        userMapper.create(user);
    }
}

        5.UserMapper.interface

@Repository
public interface UserMapper {

    /**
     * 添加用户
     */
    int createUser(User user);
}

        6.user-mapper.xml

         这里的namespace需要手动进行设置,由于本项目UserMapper所在全路径为cn.com.springboot.mapper.UserMapper,因此,namespace设置为这个。mybatis可以使用${XXXX}和#{XXXX}两种方式对属性进行识别,但是为了防止SQL注入,尽量使用#{XXXX}来对属性进行注入。

<?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" >
<mapper namespace="cn.com.springboot.mapper.UserMapper">

    <insert id="createUser">
        insert into user(username,password) values(#{username},#{password})
    </insert>

</mapper>

        7.Main.class

        这里,在主函数里面需要加入@MapperScan注解,对mapper下的UserMapper.interface来进行扫描

@SpringBootApplication
@MapperScan(basePackages = "cn.com.springboot")
public class Main {

    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

        8.user表(以mysql为例)

四、使用postman工具来进行测试

        请求方法:post

        请求路径: http://localhost:8080/user/create

        请求体:

                        {

                            "username":"admin",

                            "password":"123456"

                        }

        请求结果,可见请求成功,查看数据库:

        查看数据库可得,插入成功:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安心不心安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值