Mybatis系列--09-注解实现

09-Mybatis系列--注解实现

概述

本文主要讲述使用注解来代替mapper.xml文件,说实在的本文用处不大,理解可以这样使用即可,项目中的sql都比较复杂,不适合这样使用

实践

UserMapper.java

package com.kuang.dao;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.kuang.pojo.User;


/**
 * 功能描述
 *
 * @since 2022-07-13
 */
public interface UserMapper {
    @Select("select * from user limit #{startIndex},#{pageSize}")
    List<User> getUserListLimit(@Param("startIndex") int startIndex, @Param("pageSize") int pageSize);

    @Select("select * from user")
    List<User> getUserList();

    @Select("select * from user where `id` =#{id}}")
    User getUser(int id);

    @Insert("insert into user (`id`,`name`,`pwd`) values (#{id},#{name},#{password})")
    int add(User user);

    @Update("update user set `name`= #{name}, `pwd`=#{password} where `id`=#{id}")
    int update(User user);

    @Delete("delete from user where `id`=#{id}")
    int delete(int id);
}

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="db.properties"></properties>
    <!--    <typeAliases>-->
    <!--        <typeAlias type="com.com.kuang.pojo.User" alias="User"></typeAlias>-->
    <!--    </typeAliases>-->
    <typeAliases>
        <package name="com.com.kuang.pojo" />
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper class="com.kuang.dao.UserMapper"></mapper>
    </mappers>

</configuration>

测试代码

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import com.kuang.dao.UserMapper;
import com.kuang.pojo.User;
import com.kuang.util.MyBatisUtil;

/**
 * 功能描述
 *
 * @since 2022-07-18
 */
public class UserTest {
    @Test
    public void test1() {
        SqlSession sqlsession = MyBatisUtil.getSqlsession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        List<User> userList = mapper.getUserList();
        for (User u : userList) {
            System.out.println(u);
        }
        sqlsession.close();
    }

    @Test
    public void test2() {
        SqlSession sqlsession = MyBatisUtil.getSqlsession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        List<User> userList = mapper.getUserListLimit(1, 2);
        for (User u : userList) {
            System.out.println(u);
        }
        sqlsession.close();
    }

    @Test
    public void create() {
        SqlSession sqlsession = MyBatisUtil.getSqlsession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        int result = mapper.add(new User(10, "lilili", "abc"));
        sqlsession.close();
    }

    @Test
    public void update() {
        SqlSession sqlsession = MyBatisUtil.getSqlsession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        mapper.update(new User(10, "lilili2", "abc2"));
        sqlsession.close();
    }

    @Test
    public void delete() {
        SqlSession sqlsession = MyBatisUtil.getSqlsession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        mapper.delete(10);
        sqlsession.close();
    }

}
posted @ 2022-07-18 21:04  Oh,mydream!  阅读(40)  评论(0编辑  收藏  举报