美文网首页程序员
SpringBoot 集成Mybatis

SpringBoot 集成Mybatis

作者: 阿懒土灵 | 来源:发表于2018-07-06 16:31 被阅读27次

    要在spring boot中使用mybatis,首先需要在项目中引入jar包
    在pom.xml文件中添加配置:

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    

    配置文件application.properties中配置数据源信息:

    spring.datasource.url = jdbc:mysql://localhost:3306/{baseName}?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
    spring.datasource.username = root
    spring.datasource.password = 123456
    spring.datasource.driverClassName = com.mysql.jdbc.Driver

    {baseName}改成你自己的数据库名。

    以下有两种方法操作sql语句。


    1、注解式

    项目底下新建一个包:com.example.mapper
    在新建一个UserMapper接口:

    @Repository
    public interface UserMapper {
         @Select("select * from user where id = #{id}")
        User findUserById(@Param("id")int id);
        
        @Insert("insert into user (name,sex) values (#{user.name},#{user.sex})")
        int insertUser(@Param("user")User user);
    
        @Update("update user set name = #{name} where id = #{id}")
        User updateUserById(@Param("id")int id,@Param("name")String name);}
        
        @Delete("delete from user where id = #{id}")
        User deleteUserById(@Param("id")int id);
    

    然后再启动类上加上注解:

    @MapperScan("com.example.mapper")

    告诉容器,启动的时候需要扫描这个包

    使用前先注入:

        @Autowired
        private UserMapper userMapper;
        
        User user = userMapper.findUserById(1);
    

    注解式使用和书写都比较简单,清晰明了。
    但是不能应对复杂的sql逻辑。那么就需要配置文件的方式去使用了。
    当然这两种方式在项目中是可以共存的。


    2、配置文件式

    首先新建一个xml文件,这个是存放位置:
    resources/mapping/

    这里就直接贴一个内容了:

    <?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.les.CMS.mapper.JobMapper">
        <select id="findAllDogs" resultType="com.xyy.domain.Dog">
            SELECT * FROM dog;
        </select>
        <select id="findById" resultType="com.xyy.domain.Dog" parameterType="int">
            SELECT * FROM dog WHERE id=#{id};
        </select>
        <insert id="saveDog" parameterType="com.xyy.domain.Dog">
            INSERT INTO dog(age,name) VALUES(#{age},#{name});
        </insert>
    </mapper>
    

    然后再配置文件:application.properties中添加:

    mybatis.mapperLocations = classpath:mapping/*.xml

    下面需要在写一个接口,接口名跟mapper.xml配置文件中 sql语句的id一样:

    @Repository
    public interface DogMapper{
        List<Dog> findAllDogs();
        Dog findById(@Param("id")int id);
    }
    

    调用该接口就跟注解式是一样的,这里就省略了。


    数据库连接池的配置还没有加入,等待下次。

    相关文章

      网友评论

        本文标题:SpringBoot 集成Mybatis

        本文链接:https://www.haomeiwen.com/subject/aqrbuftx.html