Mybatis--xml与注解配置对比

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。这样来自官网官方解释

通俗一点的解释:

Mybatis 面向对象(底层实现技术:反射和jdbc整合)操作数据库 ,是一个半自动ORM持久层框架 描述了用面向对象的思想操作数据库。为什么称为是半自动尼???是因为Mybatis还需要手动配置SQLy语句;同时Mybatis提供了两种配置SQL语句的方法:XML和注解

Hibernate:java操作对象通过映射文件【对象和sql完全的封装,通过反射完全动态拼装】从而达到对数据库的操作,因为其对对象和sql完全封装,所有Hibernate特别消耗性能

ORM思想(对象关系映射:Object Relational Mapping):

O:对象

R:关系型数据库

M:映射 ,从R(数据库)到O(对象模型)的映射,可通过XML文件映射。

ORM思想正是对对象的操作通过映射文件从而达到对数据库的操作

JDBC VS Mybatis

JDBC 面向过程 jdbc来调用执行SQL语句,SQL语句属于过程化的语句。

Mybatis:java操作对象通过映射文件 【sql,传入参数 ,输出参数用对象形式封装】从而达到对数据库的操作

Mybatis操作数据库的工具会话对象:SqlSession,类似 JDBC生成的Connection对象

XML配置Mybatis的注意事项:

用xml配置XML,我们可以直接通过sqlSession调用SQL的命令

 使用注解配置Mybatis的注意事项:

注解下的Mybatis的sql配置

注解下,通过sqlSession调用sql命令,需要使用动态代理。

 

通过动态代理后,用动态代理生成的对象调用数据库功能

 

常见错误

Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 28; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "null"。
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.rootElementSpecified(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:257)
    ... 10 more

此处报错的注意原因:

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值