概述
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
此处报错的注意原因:
最后
以上就是文静小鸭子为你收集整理的Mybatis--xml与注解配置对比的全部内容,希望文章能够帮你解决Mybatis--xml与注解配置对比所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复