发表于: 2017-09-19 21:51:47

1 791


今日完成的事情:

学习mybatis并实现一个案例,感觉比jdbc要简单不少,专业术语:MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java对象映射成数据库中的记录。


1:见一个java项目,导入jar包,创建好数据库;接下来就是用mybatis查询数据;





2:添加Mybatis的配置文件conf.xml。定义表所对应的实体类,表的sql映射文件userMapper.xml;然后在conf.xml文件中注册userMapper.xml文件




3:创建一个Test1类,测试select效果:




4:总结一下具体流程,整体而言mybatis就是一个框架

首先是接口层是和数据库交互的方式,这里使用的‍‍Mapper接口,MyBatis 将配置文件中的每一个<mapper> 节点抽象为一个 Mapper 接口,而这个接口中声明的方法和跟<mapper> 节点中的select节点项对应, 节点的id值为Mapper 接口中的方法名称,parameterType 值表示Mapper对应方法的入参类型,而resultMap值则对应了Mapper 接口表示的返回值类型或者返回结果集的元素类型。

                   <select id="getUser" parameterType="int"    resultType="me.gacl.domain.User">

    在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复使用,parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返User类就是users表所对应的实体类。至于怎么操作数据库术语是动态机制,这里没有去理解,暂时不管。


    然后是数据处理层,也是MyBatis 的核心,通过传入参数构建动态SQL语句;SQL语句的执行以及封装查询结果集成List<E>,这里的动态理解起来也是有困难;参数映射就是对于java 数据类型和jdbc数据类型之间的转换,查询阶段的java类型数据转换成jdbc类型的数据;还有就是对resultset查询结果集的jdbcType数据转换成java数据类型;然后MyBatis 将执行SQL语句,并将可能返回的结果集转换成List<E> 列表。到这又查了一下List;这是泛型,E可以代表任何的Object,如果你得到数据什么类型,那就先把它们封装成一个对象再放List 中。


    接着是框架支撑层,引导层,这会一部分主要是理论,涉及缓存机制,连接池管理机制,事务管理机制等概念,明天继续学习吧


    明日计划的事情:

    1:继续学习JDBC和mybatis尽量更加清晰理解区分各自实现流程

    2:学习spring和junit相关概念

    3:补习Java基础


    遇到的问题及解决方法:

    理论概念难,全程靠百度,这段时间系统补一下基础


    收获:

    实现mybatis的连接,很大程度上理解实现流程机制。







    返回列表 返回列表
    评论

      分享到