zoukankan      html  css  js  c++  java
  • Mybatis注解开发

    注解开发

    import com.example.pojo.User;
    import org.apache.ibatis.annotations.Select;
    
    
    public interface UserDao {
    
        @Select("select * from mybatis.user where id = #{id}")
        User getUserById(int id);
    }
    

    将原来的dao层的接口加上对应的注解

    <mappers>
            <mapper class="com.example.dao.UserDao" />
        </mappers>
    

    mybatis的配置的xml里面去设置对应得mapper路径

    @Test
    public void getUserById() {
        // 获取sqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSessionFactory();
    
        // 获取mapper对象
        UserDao mapper = sqlSession.getMapper(UserDao.class);
    
    
        User user = mapper.getUserById(1);
    
        System.out.println(user);
    
        sqlSession.close();
    }
    

    测试类

    ** 使用注解来映射语句会使代码更加简单,但它存在的局限,如果想完成复杂的功能,还是使用xml来配置 **

    注解完成CRUD

    public interface UserDao {
    
        @Select("select * from mybatis.user where id = #{id}")
        User getUserById(@Param("id") int userId);
    
        @Insert("insert into mybatis.user (`id`, `name`) values (#{id}, #{name})")
        int addUser(User user);
    
        @Update("update mybatis.user set `name` = #{name} where id = #{id}")
        int updateUserById(User user);
    
        @Delete("delete from mybatis.user where id = #{id}")
        int deleteUserById(@Param("id") int userId);
    }
    

    自动提交事务

    在创建工具类的时候实现自动提交事务

    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    public class MybatisUtils {
    
        private static SqlSessionFactory sqlSessionFactory;
    
        static {
    
            try {
                // 配置文件的路径
                String resource = "mybatis-config.xml";
                InputStream resourceAsStream = Resources.getResourceAsStream(resource);
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    
        public static SqlSession getSqlSessionFactory() {
            return sqlSessionFactory.openSession(true); // 设置参数为true即可
        }
    }
    
  • 相关阅读:
    selenium webdriver简介
    web自动化selenium环境搭建
    web自动化基础之web页面组成
    接口测试基础八--接口自动化前期准备
    小程序测试关注点之一-登录授权
    python实现十大经典算法
    pytest 框架之pytest-html报告生成
    pytest 框架与 unittest 框架的对比
    selenium _上传操作
    selenium 常见操作,使用 js 操作-日期框及文本框
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/13674836.html
Copyright © 2011-2022 走看看