heim-mybatis基础---------源码解析--------------06

代码:G:\CODE_MY\heimabase\mybatis\02\day02_eesy_02mybatsiDAO

findAll在Dao的实现层:

 public List<User> findAll() {
        //1.根据factory获取SqlSession对象
        SqlSession session = factory.openSession();
        //2.调用SqlSession中的方法,实现查询列表
        List<User> users = session.selectList("com.itheima.dao.IUserDao.findAll");//参数就是能获取配置信息的key,根据这个key去找sql语句
        //3.释放资源
        session.close();
        return users;
    }

mybatis还是支持的,实际开发不这么写。

------------------------------------------------01----------------------------------------------------

看下findById:

其他的crud看代码就可以了。

 public User findById(Integer userId) {
        //1.根据factory获取SqlSession对象
        SqlSession session = factory.openSession();
        //2.调用SqlSession中的方法,实现查询一个
        User user = session.selectOne("com.itheima.dao.IUserDao.findById",userId);
        //3.释放资源
        session.close();
        return user;
    }

-----------------------------------------------02-------03------------------------------------

流程图片:

流程:

第一步:进到DefaultSqlSession:

delete用的是update

第二步:CachiingExceutor

第三步:

第四步:

第五步:

第六步:

第七步:

-----------------------------------------------04-------------05----------------------------------------------

不写实现类的话,这个图片:

切换导mybatis的crud那个工程。

第一步:找getMapper方法。去DefaultSqlSession找。

第二步:

第三步:

第四步:

第五步:动态代理

关注的是

第六步:

第七步:

第八步:

-----------------------------------------------06----------------------------------------------------

增删改我们分析清楚了。

第一步:直接进入DefaultSqlSession

第二步:

第三步:

第四步:

第五步:

第六步:

第七步:

-----------------------------------------------------------07-----------------------------------------------------------------

代码:G:\CODE_MY\heimabase\mybatis\02\day02_eesy_01mybatisCRUD

改造下---

这样写是无意义的主要是看下以后如果优化,这个只是过渡。支持放在外部的配置文件。

写法:

 配置properties
        可以在标签内部配置连接数据库的信息。也可以通过属性引用外部配置文件信息
        resource属性: 常用的
            用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。
        url属性:
            是要求按照Url的写法来写地址
            URL:Uniform Resource Locator 统一资源定位符。它是可以唯一标识一个资源的位置。
            它的写法:
                http://localhost:8080/mybatisserver/demo1Servlet
                协议      主机     端口       URI

            URI:Uniform Resource Identifier 统一资源标识符。它是在应用中可以唯一定位一个资源的。

我们看下底下的就是引用上面的测试的用例。

所以也是支持在外部的引用的。

也可以是这么写的

我们看下其中的区别:

<!-- 配置properties
        可以在标签内部配置连接数据库的信息。也可以通过属性引用外部配置文件信息
        resource属性: 常用的
            用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。
        url属性:
            是要求按照Url的写法来写地址
            URL:Uniform Resource Locator 统一资源定位符。它是可以唯一标识一个资源的位置。
            它的写法:
                http://localhost:8080/mybatisserver/demo1Servlet
                协议      主机     端口       URI
mybatisserver/demo1Servlet:这个就是URI在应用唯一定位一个资源的

            URI:Uniform Resource Identifier 统一资源标识符。它是在应用中可以唯一定位一个资源的。
    -->

-----------------------------------------------08----------------------------------------------------

之前的参数可以是int或者INT或者Integer是因为把这些别名都配置进去了。。。。。现在我们的User是不可以的是因为没有配置别名。

我们也配置别名typeAliases指定别名:

 <!--使用typeAliases配置别名,它只能配置domain中类的别名 -->
    <typeAliases>
        <!--typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名就不再区分大小写 -->
        <typeAlias type="com.itheima.domain.User" alias="user"></typeAlias>
    </typeAliases>

可以这么写的:

也可以这么写,大小写其实是不区分的:

设置typeAliases下面的package:

  <!--使用typeAliases配置别名,它只能配置domain中类的别名 -->
    <typeAliases>
        <!--typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名就再区分大小写 
        <typeAlias type="com.itheima.domain.User" alias="user"></typeAlias>-->

        <!-- 用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写-->
        <package name="com.itheima.domain"></package>
    </typeAliases>

-------------------------------------------------------------------

package:同理我也可以这么写的,这个也可以只改包,不具体到xml了。

!-- 配置映射文件的位置 -->
    <mappers>
        <!--<mapper resource="com/itheima/dao/IUserDao.xml"></mapper>-->
        <!-- package标签是用于指定dao接口所在的包,当指定了之后就不需要在写mapper以及resource或者class了 -->
        <package name="com.itheima.dao"></package>
    </mappers>

找到dao接口和接口的映射配置,因为路径是一样的。

-----------------------------------------------09----------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值