zoukankan      html  css  js  c++  java
  • SpringBoot-mybatis

    springboot集成mybatis有两种方式:注解方式和xml配置方式。

    项目的相关配置:

    1、添加依赖

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

     2、application.properties 配置数据源

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

    一、注解方式

    UserMapper:

    @Mapper // 可以在Applicationz @MapperScan()
    public interface UserMapper {
    
        @Select("SELECT * FROM tb_user")
        @Results({
                @Result(property = "userName", column = "user_name", jdbcType = JdbcType.VARCHAR),
                @Result(property = "userPassword", column = "user_password", jdbcType = JdbcType.VARCHAR),
                @Result(property = "userSex", column = "user_sex", jdbcType = JdbcType.CHAR),
                @Result(property = "userBirthday", column = "user_birthday", jdbcType = JdbcType.DATE)
        })
        List<User> getAllUser();
    
        @Select("SELECT * FROM tb_user WHERE uid = #{uid}")
        @Results({
                @Result(property = "userName", column = "user_name", jdbcType = JdbcType.VARCHAR),
                @Result(property = "userPassword", column = "user_password", jdbcType = JdbcType.VARCHAR),
                @Result(property = "userSex", column = "user_sex", jdbcType = JdbcType.CHAR),
                @Result(property = "userBirthday", column = "user_birthday", jdbcType = JdbcType.DATE)
        })
        User getUser(int uid);
    
        @Insert("INSERT INTO tb_user(user_name,user_password,user_sex,user_birthday) VALUES(#{userName}, #{userPassword}, #{userSex}, #{userBirthday})")
        int insertUser(User user);
    
        @Update("UPDATE tb_user SET user_name = #{userName} WHERE uid = #{uid}")
        int updateUser(User user);
    
        @Delete("DELETE FROM tb_user WHERE uid = #{uid}")
        int deleteUser(User user);
    }
    

     测试:

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class AnnotionTest {
    
        @Autowired
        private UserMapper mapper;
    
        @Test
        public void getAllUser(){
            List<User> users = mapper.getAllUser();
            System.out.println(users);
        }
    
        @Test
        public void getUser(){
            User user = mapper.getUser(3);
            System.out.println(user);
        }
    
        @Test
        public void insertUser(){
            User user = new User();
            user.setUserName("王杰");
            user.setUserPassword("123456546313154546");
            user.setUserSex('2');
            user.setUserBirthday(new Date());
    
            int result = mapper.insertUser(user);
            System.out.println(result);
        }
    
        @Test
        public void updateUser(){
            User user = new User();
            user.setUid(3);
            user.setUserName("刘冷");
    
            int result = mapper.updateUser(user);
            System.out.println(result);
        }
    
        @Test
        public void deleteUser(){
            User user = new User();
            user.setUid(3);
    
            int result = mapper.deleteUser(user);
            System.out.println(result);
        }
    
    }
    

    二、xml配置方式

    application.properties 中添加配置:

    mybatis.mapper-locations=classpath:/mybatis/mapper/*.xml //映射文件的位置
    

     Application.java中添加注解:

    @MapperScan("com.swp.mybatisxml.mapper") // mapper接口的位置
    

     添加映射文件 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.swp.mybatisxml.mapper.UserMapper">
    
        <resultMap id="UserMap" type="com.swp.mybatisxml.model.User">
            <id property="uid" column="uid" jdbcType="INTEGER"/>
            <result property="userName" column="user_name" jdbcType="VARCHAR"/>
            <result property="userPassword" column="user_password" jdbcType="VARCHAR"/>
            <result property="userSex" column="user_sex" jdbcType="CHAR"/>
            <result property="userBirthday" column="user_birthday" jdbcType="DATE"/>
        </resultMap>
    
        <sql id="Base_Column">
            uid, user_name, user_password, user_sex, user_birthday
        </sql>
    
        <select id="getAllUser" resultMap="UserMap">
            SELECT
            <include refid="Base_Column"/>
            FROM tb_user
        </select>
    
        <select id="getUser" resultMap="UserMap" parameterType="java.lang.Integer">
            SELECT
            <include refid="Base_Column"/>
            FROM tb_user WHERE uid = #{uid}
        </select>
    
        <insert id="insertUser" parameterType="com.swp.mybatisxml.model.User">
            INSERT INTO tb_user(user_name,user_password,user_sex,user_birthday) VALUES(#{userName}, #{userPassword}, #{userSex}, #{userBirthday})
        </insert>
    
        <update id="updateUser" parameterType="com.swp.mybatisxml.model.User">
            UPDATE tb_user SET
            <if test="userName != null">user_name = #{userName}</if>
            WHERE uid = #{uid}
        </update>
    
        <delete id="deleteUser" parameterType="java.lang.Integer">
            DELETE FROM tb_user WHERE uid = #{uid}
        </delete>
    
    </mapper>
    
  • 相关阅读:
    target runtime apache v6.0 not defined解决
    java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
    The valid characters are defined in RFC 7230 and RFC 3986问题
    invalid END header解决方法
    You have more than one version of ‘org.apache.commons.logging.Log’ visible, which is not allowed问题解决
    Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    在eclipse中import java web项目时遇到的一些问题并将该项目通过tomcat发布
    java byte转string 涉及到字节流中有中文
    spring+mybatis框架搭建时遇到Mapped Statements collection does not contain value for...的错误
    试试看读一下Zepto源码
  • 原文地址:https://www.cnblogs.com/king-peng/p/10238324.html
Copyright © 2011-2022 走看看