Mybatis--01

Posted zghgz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis--01相关的知识,希望对你有一定的参考价值。

mybatis 封装jdbc访问代码的一个框架 (hibernate)  ORM对象关系映射

 

SpringMVC:用来封装servlet的框架 (struts)

 

Spring:体系整合框架,其他框架的粘合剂

 

框架:整个或者部分系统的可重用设计,

优点:1、灵活可配置:将写死的代码放到配置文件中

2、复用性高:将反复使用的代码抽取封装

3、对底层细节进行封装,提供了方便调用的api

 

主要内容:

1 mybatis 介绍

2 入门 :使用jdbc操作数据库存在的问题

     Mybatis的架构

    Mybatis的入门程序

3 Dao的开发

    原始dao的开发

    动态代理方式

4 SqlMapConfig.xml文件说明

 

 

一。介绍

持久层框架,对jdbc的操作进行封装,只需关注sql本身,不用处理加载驱动、创建连接、创建语句等过程

通过xml过着注解的方式将要执行的各种statement(statement、preparedStatement、CallableStatement)配置起来,并且通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后油mybatis框架执行sql语句,并将结果映射成java对象并且返回。

 

二、

2.1使用jdbc的问题总结:

  导入jar

  创建工程

  步骤:

    1、加载驱动

    2、获取连接

    3、创建语句对象

    4、设置sql语句

    5、设置sql参数(preparedStatement)

    6、执行sql

    7、关闭资源

  缺点:资源浪费、硬编码不容易维护、preparedStatement占位符不移维护、结果集的解析硬编码

 

 

实例:

1、配置数据库jdbc

 

2、配置mybatis的配置文件

3、创建entity类 User

4、为User配置user。xml文件

其中的id使用#{id} or #{value}

5、测试数据库连接和数据获取

 

 

控制台提示logger 需要打印日志

 

Mybatis的增删改查

    模糊查询:

     

    在运行的java类中调用 session.selectList方法获取 List<User> 

 

     添加对象:

      

使用标签实现插入数据后返回主键的值 主键回填

 

    

 

修改记录:

session.udpate commit

      删除用户:

      

 

        session.delete

 

 

Mybatis 工作原理以及流程:

    

 

优点:

1 节省资源

2 sql语句在xml文件中和java‘代码分离

3 将对象自动映射到sql语句 通过parameterType定义输入参数类型

4 将sql执行结果映射到java对象 通过stateme 的resultType定义输出结果的类型

使用反射机制

 

mybatis两种方式:

1.原始的dao方法

 

 2.使用mapper代理进行开发

(1)namespace和Dao接口的名称保持一致(原本是实体类的名称)

代理实现类的流程

 

总结:mybatis是基于动态代理实现的,cglib.jar   

 

原始Dao开发中的问题:

  重复代码 SQLSession

  不存在硬编码问题(方法和id之类的东西)

 

 

使用mapper代理,不需要创建DaoImpl就可以实现

 

mapper动态代理的开发规范:

  只需要编写mapper接口(Dao 接口)

    1、mapper.xml文件中的namespace与mapper接口的类路径相同

    2、mapper接口方法名和mapper.xml文件中的每个sql的id

    3、parameterType

    4、resultType

 

mapper.xml映射文件:

  内容同user.xml文件 修改namespace的值为UserMapper接口路径,并将UserMapper.xml文件放大classpath下的mapper目录

当mapper文件特别多的时候 可以再mybatis的配置文件中批量扫描

 

 

 

 

 

 

 

mybatis配置文件中的其他属性

 

 

别名标签

 

 

别名默认使用类名的小写

 

  

 

 

 简单类型 支持自动别名

 

 

 

 

 

 

 

 

 

 

 

 

  

以上是关于Mybatis--01的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis01-MyBatis快速入门

MyBatis01

mybatis01

Spring集成MyBatis01

Mybatis01配置使用入门

MYBATIS01_概述及优缺点快速搭建工程Mybatis的增删改查操作总结