springboot整合mybatis

来源:互联网 发布:京东数据开放平台 编辑:程序博客网 时间:2024/05/22 14:10

springboot整合mybatis

  • mybatis pom.xml配置
        <dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>1.1.1</version>        </dependency>

为了方便测试和案例,下面以mysql为例,使用阿里的druid作为数据库连接池来写个mybatis的小demo
- mysql数据库驱动和druid连接池驱动pom.xml

        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>1.0.31</version>        </dependency>
  • boot配置,这里使用yml配置格式
server:  port: 80spring:  datasource:    driver-class-name: com.mysql.jdbc.Driver    type: com.alibaba.druid.pool.DruidDataSource    username: root    password: 123456    url: jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=utf8&useSSL=falsemybatis:    mapperLocations: classpath*:com/boot/mapper/xml/*Mapper.xml    typeAliasesPackage: com.boot.entity
  • 新建一个user表,mapper,xml,service,serviceimpl

sql

create table `user`(name varchar(255),age varchar(255),sex varchar(255),address varchar(255));

user bean

public class User implements Serializable{    private static final long serialVersionUID = 1L;    private String name;    private String age;    private String sex;    private String address;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    @Override    public String toString() {        return "User [name=" + name + ", age=" + age + ", sex=" + sex + ", address=" + address + "]";    }}

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.boot.mapper.UserMapper">    <!-- 通用查询映射结果 -->    <resultMap id="BaseResultMap" type="com.boot.entity.User">        <id column="name" property="name" />        <result column="age" property="age" />        <result column="sex" property="sex" />        <result column="address" property="address" />    </resultMap>    <select id="selectByName" parameterType="string" resultMap="BaseResultMap">        select * from user        <where>            <if test="name!=null and name!=''">                and name = #{name,jdbcType=VARCHAR}            </if>        </where>    </select>    <select id="selectList" resultMap="BaseResultMap">        select * from user where 1=1    </select>    <insert id="insertOne" parameterType="com.boot.entity.User">        insert user        (name,age,sex,address)        values(#{name,jdbcType=VARCHAR},#{age,jdbcType=VARCHAR},#{sex,jdbcType=VARCHAR},#{address,jdbcType=VARCHAR});    </insert>    <update id="updateOneByName" parameterType="com.boot.entity.User">        update user        set name = #{name,jdbcType=VARCHAR},        age =        #{age,jdbcType=VARCHAR},        sex = #{sex,jdbcType=VARCHAR},        address =        #{address,jdbcType=VARCHAR}        where name = #{name,jdbcType=VARCHAR}    </update>    <delete id="deleteByNmae" parameterType="string">        delete from user where name=#{name,jdbcType=VARCHAR};    </delete></mapper>

mapper

public interface UserMapper {    public User selectByName(@Param("name") String name);    public List<User> selectList();    public Integer insertOne(User user);    public Integer updateOneByName(User user);    public Integer deleteByNmae(@Param("name") String name);}

serviceimpl

@Servicepublic class UserServiceImpl implements UserService {    @Autowired    UserMapper userMapper;    @Override    public User selectByName(String name) {        return userMapper.selectByName(name);    }    @Override    public List<User> selectList() {        return userMapper.selectList();    }    @Override    public Integer insertOne(User user) {        return userMapper.insertOne(user);    }    @Override    public Integer updateOneByName(User user) {        return userMapper.updateOneByName(user);    }    @Override    public Integer deleteByNmae(String name) {        return userMapper.deleteByNmae(name);    }}

junit test

package com.boot.mybatistest;import java.util.List;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import com.boot.entity.User;import com.boot.serviceimpl.UserServiceImpl;@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest {    @Autowired    UserServiceImpl userServiceImpl;    @Test    public void testSelectOne() {        User user = userServiceImpl.selectByName("jack");        System.out.println(user);    }    @Test    public void testSelectList() {        List<User> users = userServiceImpl.selectList();        System.out.println(users);    }    @Test    public void testInsertOne() {        User user = new User();        user.setName("jack");        user.setAge("24");        user.setSex("男");        user.setAddress("北京");        int i=userServiceImpl.insertOne(user);        System.out.println(i);    }    @Test    public void updateOne() {        User user = new User();        user.setName("jack");        user.setAge("24");        user.setSex("男");        user.setAddress("上海");        int i=userServiceImpl.updateOneByName(user);        System.out.println(i);    }    @Test    public void testdeleteOne() {        int i= userServiceImpl.deleteByNmae("jack");        System.out.println(i);    }}

附:yml配置的xml路径和entity的路径,而mapper接口的扫描路径需要在boot的启动main配置注解

@SpringBootApplication@MapperScan("com.boot.mapper*")public class BootApplication {    public static void main(String[] args) {        SpringApplication.run(BootApplication.class, args);    }}
原创粉丝点击