springboot整合mybatis

创建工程
创建springboot应用时,添加web依赖,mybatis依赖,mysql驱动的依赖
在这里插入图片描述
项目创建成功后,pom文件依赖如下:

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.1.2</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<!--如果用的mysql8要修改成对应版本-->
			<version>8.0.19</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

在配置文件application.properties添加相关配置,这里默认使用Hikari数据源

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///mybatis?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root;
spring.datasource.password=admin;

配置完成后,就可以直接创建mapper进行crud了

  • 建表
CREATE DATABASE mybatis;
USE mybatis;
CREATE TABLE USER(	
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(20)
);

  • userbean
public class User {
    private Integer id ;
    private String name ;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

  • mapper类
@Mapper
public interface UserMapper {

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

    @Select({"select * from user where id=#{id}"})
    public User findById(int id);

    @Insert("insert into user(name) values(#{name})")
    @Options(useGeneratedKeys = true,keyProperty = "id")
    public int add(User user);

    @Update("update user set name=#{user.name} where id=#{user.id}")
    public void update(User user);

    @Delete("delete from user where name=#{user.name}")
    public void delete(User user);
}

通过注解的方式写SQL语句,@Mapper注解表示这是一个mapper类,springboot扫描到后将其添加到容器中,当然,也可以采用另外一种方式,就是在启动类中添加Mapper扫描:

@MapperScan(basePackages="com.xsw.mappe.*")//扫描这个包下

@Insert、@Update、@Select、@Delete分别就对应标签insert、update、select、delete的作用。
@options注解实现主键回填的功能;useGeneratedKeys = true 表示使用数据库表的自增长主键, keyProperty = “id” 表示回填的对象属性。

测试
创建controller:

@RestController
public class UserController {

    //注入mapper
    @Autowired
    UserMapper userMapper;

    /*
    查询所有
     */
    @RequestMapping("/findAll")
    public List<User> findAll(){
        return userMapper.findAll();
    }
    /*
    添加
     */
    @RequestMapping("/add")
    public String add(User user){
        int result = userMapper.add(user);
        if(result!=0){
            return "添加成功";
        }else{
            return "添加失败";
        }

    }
}

测试添加:
在这里插入图片描述

测试查询
在这里插入图片描述
前面是通过注解的方式写SQL语句,简单快速;也可以使用xml配置文件的方式,灵活动态的生成SQL:

配置
跟注解的方式一样,只不过需要添加:

mybatis.mapper-locations=classpath:mapper/*.xml

这是告诉mybatis到哪里去扫描mapper

在类路径下创建mapper目录,添加userMapper.xml配置文件
在这里插入图片描述
然后就可以在xml文件中写对应接口的SQL语句了,

<?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="com.xsw.springbootmybatis.dao.UserDao">
    <insert id="add" parameterType="com.xsw.springbootmybatis.entity.User">
        insert into user(name) values(#{name})
    </insert>

    <update id="update" parameterType="com.xsw.springbootmybatis.entity.User">
        update user set name=#{name} where id=#{id}
    </update>

    <select id="findAll" resultType="com.xsw.springbootmybatis.entity.User">
        select * from user
    </select>

    <select id="findByName" parameterType="java.lang.String" resultType="com.xsw.springbootmybatis.entity.User">
        select * from user where name=#{name}
    </select>

    <delete id="delete" parameterType="com.xsw.springbootmybatis.entity.User">
        delete from user where name=#{name}
    </delete>

</mapper>


编写dao层对应的接口

@Mapper
public interface UserDao {

    public List<User> findAll();
    public User findByName(String name);
    public int add(User user);
    public void update(User user);
    public void delete(User user);

}

使用就是跟注解的方式一样了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值