spring boot 集成mybatis

来源:互联网 发布:工程造价软件广联达 编辑:程序博客网 时间:2024/06/14 09:50

要在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

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


1、注解式

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

@Mapperpublic 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文件,这个是存放位置:
这里写图片描述

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

<?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一样:

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

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


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

原创粉丝点击