zoukankan      html  css  js  c++  java
  • mybatis原始DAO开发

    一、mybatis开发中所需对象

    1、SqlSessionFactory

      通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory,创建SqlSession,使用单例模式管理sqlSessionFactory(工厂一旦创建,使用一个实例)

    2、SqlSession

      SqlSession是线程不安全的,SqlSession最佳应用场合在方法体内,定义成局部变量使用

    二、原始dao开发方法(程序员需要写dao接口和dao实现类)

    dao需要操作数据库,那么就需要SqlSession对象,其对象是由SqlSessionFactory创建所以需要向dao实现类中注入SqlSessionFactory对象

      1、定义接口

    public interface UserDao {
        public User findUserById(int id);
    }

      2、接口实现类

    public class UserDaoImpl implements UserDao {
        //SqlSessionFactory
        private SqlSessionFactory sessionFactory;
        
        //使用构造方法注入
        public UserDaoImpl(SqlSessionFactory sessionFactory) {
        this.sessionFactory=sessionFactory;
        }
        
        public User findUserById(int id) {
        SqlSession sqlSession=sessionFactory.openSession();
        User user=sqlSession.selectOne("findUserById",id);
        return user;
        }
    }

      3、配置映射文件

        <select id="findUserById" parameterType="int" resultType="com.xxx.mybatis.po.User">
            select * from t_user where id = #{id}
        </select>

      4、核心配置文件

    <mapper resource="User.xml"/> 

      

       5、测试

    public class UserDaoImplTest {
        SqlSessionFactory sqlSessionFactory;
    
        @BeforeEach
        public void setUp() throws Exception {
        // mybatis核心配置文件
        String resource = "SqlMapConfig.xml";
        // 核心配置文件流
        InputStream inputStream = Resources.getResourceAsStream(resource);
        // 根据核心配置文件,创建SqlSessionFactory对象
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        }
    
        /**
         * Test method for {@link com.xxx.mybatis.dao.UserDaoImpl#findUserById(int)}.
         */
        @Test
        public void testFindUserById() {
        UserDao dao = new UserDaoImpl(sqlSessionFactory);
        User user = dao.findUserById(2);
        System.out.println(user);
        }
    
    }
    View Code

        在Junit4下使用@Before和@After,在Junit5下使用@BeforeEach和@AfterEach

  • 相关阅读:
    Lc617_合并二叉树
    Lc257_二叉树的所有路径
    Lc222_完全二叉树的节点个数
    记github下载上传遇到的各种问题
    Lc101_对称二叉树
    Lc222_翻转二叉树
    二叉树的dfs 与 bfs (递归遍历)
    全球最火的程序员学习路线!没有之一!3天就在Github收获了接近1w点赞
    大二逃课总结的1.2w字的计算机网络知识!扫盲!
    「IDEA插件精选」安利一个IDEA骚操作:一键生成方法的序列图
  • 原文地址:https://www.cnblogs.com/WarBlog/p/14930878.html
Copyright © 2011-2022 走看看