Mybatis框架

一. Mybatis是一个优秀的持久层框架,基于ORM设计思想实现了以对象的方式操作数据库。                ORM思想:  对象关系映射 是一种程序设计技术,用于实现向对象编程语言里不同类型系统的数据之间的转换。                                                                                                                                    概述:用对象的方式操作数据库。                                                                                                      衍生:1.对象与数据库里的表一一映射。                                                                                                       2.对象的属性与数据库里表的字段一一映射。                                                                                   3.其中的映射应该由程序自动完成,无需人为干预。                                                              Mybatis的ORM并不完全,只是完成了结果集映射,但是sql语句需要自己手写,所以也称之为半自动化的ORM映射框架。

二.Mybatis特点                                                                                                                                         简单易学:本身很小  简单,没有任何第三方依赖,安装只要两个jar包和配置结果sql映射文件。易于学习,使用灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响,sql写在xml文件里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。    

三.Mybatis 其实是封装了jdbc。                                                                                                               总结jdbc开发出现的问题:                                                                                                                1.频繁创建数据库连接对象,释放,容易造成系统资源浪费,影响系统性能,企业项目中可以使用连接池解决这个问题,但是jdbc需要自己实现连接池。而mybatis框架已经提供了连接池。              2.sql语句定义,参数设置,结果集处理存在硬编码,企业项目中SQL语句变化的可能性较大,一旦发生变化需要修改Java代码,系统需要重新编译,重新发布不好维护,一句话耦合性强。            3.结果集处理存在重复的代码,处理麻烦,如果可以映射成为Java对象比较方便。                          mybatis封装jdbc的优点:                                                                                                                     接触sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,便于系统的设计更清晰,更易维护,更易于单元测试,sql和代码分离,提高了可维护性。                                       提供映射标签,支出对象与数据库的ORM字段关系映射。                                                                 提供对象关系映射标签,支出对象关系组建维护。                                                                             提供xml标签,支持编写动态sql                 动态sql主要用<if><foreach><choose> 这三个标签条件来组成。还有<where>标签加上可以自动将参数里多余的and和or给去掉                                                               <set>标签加上可以自动将参数里多余的,号给去掉。这两个标签是为了保证sql语句的正确。

四.mybatis.config.xml文件                                                                                                                        它是mybatis框架的核心配置文件,里面封装了JDBC代码,并且加载了mapper接口的实现文件,在这个映射中将它与接口进行业务绑定。通过namespace.mapper里面写一个个具体的接口,即就是具体业务。

五.总结Mybatis                                                                                                                                           mybatis是一个持久层的框架,是对JDBC操作数据库的封装,开发者只需关注业务本身,不需要花费精力去处理加载驱动,创建数据库连接对象,等一系列繁杂的过程。                                           mybatis通过xml或注解进行配置,将java对象与sql语句中的参数自主映射生成最终执行的sql语句,并将sql语句执行结果自动映射成了java对象,返回给业务层应用。                                               其中重点:                                                                                                                                         1.xml映射文件必须与接口一一绑定。      namespace:指定需要绑定的接口名称,不能重复。    namespace是mybatis映射文件的唯一表示,与接口对应。                                                           2.id表示接口方法       resultType  对象的包路径    parameterType返回值结果类型,它可以自动识别,可以不写,根据名称,动态取值#{}关键字。

六.mybatis具体实现方式                                                                                                                      1.抽取生成sqlsessionFactory  @BeforeEach                                                                                    2.利用mybatis查询数据时,如果返回值结果不确定且唯一,则使用pojo实例对象接收,如果不能确定使用list集合接收。                                                                                                                        3.mybatis默认支持单值传参,如果遇到多值,需要将多值转化为单值。                                           策略:1.利用pojo对象封装   2.利用map集合  3.如果参数一定使用多值操作则加上注解@param()“sex” string sex                                                                                                                              4.#号和$符的用法                                                                                                                                 #号有预编译效果,为数据添加一对“”号            $号没有预编译效果,一般以字段名称为参数时使用。                                                                                                                                                  5.mybatis原生条件下做更新操作时,需要手动提交事务,sqlsessionFatory.opensession(true)        6.xml种常见的转义符  &gt; &it; &amp;    <![CDATA[        ]]>                                                              7.mybatis中循环遍历写法foreach。                             

七.mybatis优化设置                                                                                                                                简化        别名包          在mybatis xml 映射文件中需要pojo实体对象的路径,每次写很繁琐,引入别名包的规则。                                                                                                                                                                                                                                               

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值