20200125——mybatis整合复习

jdbc
Connection
PreparedStatement
ResultSet


dao
data access object
数据访问对象


maven配置文件
groupId
artifactId


SqlMapConfig.xml
mybatis的主配置文件

最上面是规范

<configuration>
    <!--配置环境-->
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://localhost:3306/ssm?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone = GMT"></property>
                <property name="username" value="root"></property>
                <property name="password" value="password"></property>
            </dataSource>
        </environment>
    </environments>
    <!--引入配置文件-->
    <mappers>
<!--        <mapper class="cn.itcast.dao.AccountDao"></mapper>-->
        <package name="cn.itcast.dao"></package>
    </mappers>
</configuration>

Test测试方法


        //加载mybatis配置文件
        InputStream inputStream =  Resources.getResourceAsStream("SqlMapConfig.xml");
        //创建sqlsessionFactory对象
        SqlSessionFactory  sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
         //创建sqlsession对象
        SqlSession sqlSession =  sqlSessionFactory.openSession();
        //获取代理对象
        AccountDao accountDao =  sqlSession.getMapper(AccountDao.class);

注解和xml
指定配置文件的位置,映射配置文件指的是每个dao独立的配置文件
如果用注解来配置的话,此处应该使用class属性指定被注解的dao全限定类名

mybatis的设计模式
创建工厂,mybatis使用了构建者模式
builder就是构建者
把对象创建的细节隐藏,使用者直接调用方法即可拿到对象

生产sqlsession使用工厂模式
优势:解耦

代理模式getMapper
使用Dao接口实现类
不改变源码的基础上,对已有方法增强

自定义mybatis分析
20200125——mybatis整合复习

生成代理对象
20200125——mybatis整合复习
我们为什么配置这些属性就能让spring帮我们代理呢。
也就是上图的三个属性,类加载器,代理对象实现的接口,代理方法

没整合的Mybatis
sqlsessionfactorybuild 通过接受配置文件文件流构建出sqlsessionfactory对象

//加载mybatis配置文件
        InputStream inputStream =  Resources.getResourceAsStream("SqlMapConfig.xml");
        //创建sqlsessionFactory对象
        SqlSessionFactory  sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

@注解
用@Before 在方法执行之前
用@After 用于在测试方法执行之后

20200125——mybatis整合复习20200125——mybatis整合复习 宫城诗 发布了678 篇原创文章 · 获赞 39 · 访问量 6万+ 他的留言板 关注
上一篇:java写入加速


下一篇:从InputStreamReader(JAVA)读取多行