• 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>
    
  • 相关阅读:
    Python NLPIR(中科院汉语分词系统)的使用 十五分钟快速入门与完全掌握
    Python NLPIR(中科院汉语分词系统)的使用 十五分钟快速入门与完全掌握
    源码:我的关于NLP的博客(持续更新中...)
    源码:我的关于NLP的博客(持续更新中...)
    orm功能封装
    元类
    事件,存储
    索引
    mysql课外积累
    day35作业
  • 原文地址:https://www.cnblogs.com/king-peng/p/10238324.html
Copyright © 2020-2023  润新知