Mybatis之注解开发

  1. 定义UserMapper接口

    package com.dao;
    
    import com.pojo.User;
    import org.apache.ibatis.annotations.*;
    
    import java.util.List;
    
    public interface UserMapper {
        @Select("select * from user")
        List<User> getUser();
    
        //方法存在多个参数,所有的参数必须加@Param
        @Select("select * from user where id = #{id}")
        User getUserById(@Param("id") int id);
    
        @Insert("insert into user (id, name, pwd) values" +
                "(#{id},#{name},#{pwd})")
        int addUser(User user);
    
        @Update("update user set name=#{name}, pwd=#{pwd} " +
                "where id=#{id}")
        int updateUser(User user);
    
        @Delete("delete from user where id=#{id}")
        int deleteUser(@Param("id") int id);
    }
    
  2. 在核心配置文件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>
    
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;
                    useUnicode=true&amp;characterEncoding=UTF-8"/>
                    <property name="username" value="root"/>
                    <property name="password" value="yzz1997"/>
                </dataSource>
            </environment>
        </environments>
    
        <!--  绑定接口  -->
        <mappers>
            <mapper class="com.dao.UserMapper"></mapper>
        </mappers>
    
    </configuration>
    
  3. 编写测试

    package com.dao;
    
    import com.pojo.User;
    import com.utils.MybatisUtils;
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
    
    import java.util.List;
    
    public class UserMapperTest {
        @Test
        public void getUserTest() {
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            List<User> user = mapper.getUser();
            for (User u : user) {
                System.out.println(u);
            }
            sqlSession.close();
        }
    
        @Test
     public void getuserByIdTest(){
            // 获得sqlsession对象
         SqlSession sqlSession = MybatisUtils.getSqlSession();
            try{
                // 1.执行 getmapper
                UserMapper userDao = sqlSession.getMapper(UserMapper.class);
                User user = userDao.getUserById(1);
    
                System.out.println(user);
    
    
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                //关闭
                sqlSession.close();
            }
        }
    
        @Test
        public void addUserTest(){
            // 获得sqlsession对象
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            try{
                // 1.执行 getmapper
                UserMapper userDao = sqlSession.getMapper(UserMapper.class);
                userDao.addUser(new User(6, "uestc","123"));
                // 2. 提交事务
                sqlSession.commit();
    
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                //关闭
                sqlSession.close();
            }
        }
        @Test
        public void updateUserTest(){
            // 获得sqlsession对象
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            try{
                // 1.执行 getmapper
                UserMapper userDao = sqlSession.getMapper(UserMapper.class);
                userDao.updateUser(new User(6, "nuc","123"));
                // 2. 提交事务
                sqlSession.commit();
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                //关闭
                sqlSession.close();
            }
        }
    
        @Test
        public void deleteUserTest(){
            // 获得sqlsession对象
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            try{
                // 1.执行 getmapper
                UserMapper userDao = sqlSession.getMapper(UserMapper.class);
                userDao.deleteUser(6);
                // 2. 提交事务
                sqlSession.commit();
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                //关闭
                sqlSession.close();
            }
        }
    }
    

    本质:反射机制

    底层:动态代理

本篇文章已同步更新至github仓库JavaSummary,欢迎star!

Reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xylitolz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值