三分钟让Mybatis与SpringBoot共舞

一、准备工作

为了节约这三分种,首先你要准备一个可以启动的SpringBoot程序,以及一张数据表。为了和以下内容同步,可以直接复制我的SQL语句粘贴到你的数据库中运行。

CREATE TABLE `tb_user` (
  `user_tel` varchar(100) NOT NULL,
  `user_name` varchar(100)  NULL,
  `user_passwd` varchar(100) NOT NULL,
  PRIMARY KEY (`user_tel`)
) ENGINE=InnoDB ;

二、加入依赖

  <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.1.1</version>
  </dependency>
  <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.18</version>
  </dependency>

此时,完整的pom文件可能是这样的。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.hxl</groupId>
    <artifactId>gongzhonghao</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>gongzhonghao</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </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>


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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>
    </dependencies>

</project>

点击运行,试图启动SpringBoot程序,而他会报异常,告诉你没有配置数据源。
在这里插入图片描述
好,那就给你配置数据源,在项目的application.properties下加入数据库连接信息。

spring.datasource.url=jdbc:mysql://localhost:3306/你的数据库名称
spring.datasource.username=root(你的用户名)
spring.datasource.password=(你的密码)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

可能有的博客的class-name是com.mysql.jdbc.Driver,而这里要用com.mysql.cj.jdbc.Driver,因为Mysql从6+版本后开始使用com.mysql.cj.jdbc.Driver,而上面中引入的版本是8+.
在这里插入图片描述
点击运行后,上面错误消失。

三、Mapper

还记得你在普通Java项目中使用Mybatis吗。
1.创建mybatis-config.xml,填写连接信息。
2.编写接口,调用getMapper后对数据进行噼里啪啦的操作。
此时已经就完成了第一步,即填写数据库连接的信息,接下来就是创建增删查改接口。


@Mapper
public interface UserDao {
    /**
     * 插入一条记录
     * @return
     */
    @InsertProvider(type = InsertSql.class,method ="createInsertSql" )
     int insert(@Param("tel")String tel,@Param("name")String name,@Param("pass")String pass);

    /**
     * 更具tel获取记录
     * @return
     */
    @SelectProvider(type = SelectSql.class,method = "createSelectByTelSql")
    Map<String,String> selectByTel(@Param("tel")String tel);


    class InsertSql{
        public String createInsertSql(){
            return new SQL(){{
                INSERT_INTO("tb_user");
                VALUES("user_tel","#{tel}");
                VALUES("user_name","#{name}");
                VALUES("user_passwd","#{pass}");

            }}.toString();
        }
    }
    class SelectSql{
        public String createSelectByTelSql(){
            return new SQL(){{
                SELECT("*");
                FROM("tb_user");
                WHERE("user_tel=#{tel}");
            }}.toString();
        }
    }
}

四、测试

import com.hxl.gongzhonghao.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
    @Autowired
    UserDao mUserDao;
    @GetMapping("insert")
    public Object insert(){
        String tel ="178484";
        mUserDao.insert(tel,"张三","pass");
      return   mUserDao.selectByTel(tel);
    }
}

在浏览器输入http://localhost:8080/insert可以看到以下结果
在这里插入图片描述
回到数据库中,插入的数据正在这里躺着。
在这里插入图片描述

五、注意

1.xml配置
Mybatis提供注解式和xml式,而上面的例子用的是注解式,如果想通过xml来实现,首先在resources目录下创建一个存放mapper的文件夹。
在这里插入图片描述
并在application.properties下告诉mybatis,你去这个文件夹下加载。
mybatis.mapper-locations=classpath:mapper/*.xml

UserMapper.xml

<?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.hxl.gongzhonghao.dao.UserDao">
    <insert id="insert" parameterType="string">
        insert into tb_user values (#{tel},#{name},#{pass})
    </insert>
</mapper>
发布了42 篇原创文章 · 获赞 7 · 访问量 7753

猜你喜欢

转载自blog.csdn.net/HouXinLin_CSDN/article/details/104136159