博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis项目运行套路和常见错误总结
阅读量:2490 次
发布时间:2019-05-11

本文共 3476 字,大约阅读时间需要 11 分钟。

Mybatis框架项目运行

   文章主要是对Mytatis框架项目的运行思路加以总结,比较浅显,适合不懂的或者初学者,对Mybatis有一定研究的可直接跳过。

    讲Mybatis框架配置运行之前先说一下常用到的Servlet、Service、Dao层的层次分工:                                                                            

   Servlet负责接受页面的值,向页面传值,若有相应的逻辑需要处理,则需要运用Service层。

   Service层负责接受Servlet传递过来的值,并对该值进行处理,做一定的操作、算法等,比如说,若页面传过来的集合的值不符合Dao层的需要,则需要将其转化成需要的数据或数据格式。若有需要,则继续调用相应的Dao层。

   Dao层负责完成和数据库的交互。在Mybatis中Dao层通过配置文件命名空间下的配置方法执行相应的Sql语句访问数据库,完成与数据库的交互。

   知道了这三层的基本职责,再唠叨一下各种配置文件。                                                                                                                                  

   一个Mybatis的配置文件有log4j.xml  web.xml Configuration.xml   JavaDao.xml 其中:

   log4j.xml文件: 通过此配置用以输出项目的运行日志,可根据此输出调试项目。日志文件配置详解见该篇章。

   web.xml 文件:用来配置Servlet以及Servlet映射。

  JavaDao.xml 文件:主要在命名空间下,配置数据库数据和JavaBean对象的映射关系,以及使用ognl标签灵活的拼接Sql语句,提供给SqlSession会话,使其执行。

  Configuration.xml 文件:是Mybatis项目的核心配置文件,主要负责配置数据库访问环境<environments>(即数据库连接的几个要素:驱动、url、用户名、密码)和JavaDao.xml文件的映射配置<mappers>文件,以便使用数据库访问环境连接数据库并通过映射配置找到对应的映射文件JavaDao.xml,在该文件的命名空间下找到对应的数据库访问方法,执行对应的Sql语句访问数据库。

说了这么多,都是零零碎碎的东西,那么,想办法用一条线把上述的这些层和配置文件连接起来,最简单的就是从网页访问开始,看看整个过程怎么走:

用一个查询数据库消息列表的例子作图 ------放图镇楼 :

                 

运行过程

     客户在浏览器输入访问地址,系统会根据输入的访问地址在web.xml配置文件里找到映射的Servlet,然后根据该Servlet定义的Class,找到对应的Servlet.java类(上图橙色大方框中的配置内容)。

     进入到Servlet层:Servlet.java接受页面传递过来的参数值(根据需要决定是否保存该值),将Servlet的处理结果传回给视图View层展示。(如果有业务逻辑需要处理,则调用Service层处理业务逻辑。)

      进入到Service层:Service.java对象接受Servlet传递过来的值,并对该值进行处理,做一定的操作、算法等,比如说,若页面传过来的集合的值不符合Dao层的需要,则需要将其转化成需要的数据或数据格式。若有需要,则继续调用相应的Dao层。

     进入到Dao层:Dao层使用核心配置文件Configuration.xml访问数据库的配置项初始化一个数据库访问会话SqlSession,利用SqlSession下访问数据库的方法SqlSession(”Message.queryMessageList”,messag)带入参数,调用Configuration.xml文件映射的JavaDao.xml配置文件,找到该文件命名空间(Message)下的对应方法(queryMessageList),执行ognl语言拼写的sql语句访问底层的数据库DataBase,将执行结果返回给Dao层。

      Dao层将结果返回给Service层,Service层将结果返回给Servlet层,Servlet层通过页面重定向或页面转发将结果展示在View视图层。

附带配置文件:

Web.xml文件

index.jsp
ListServlet
/List.action
ListServlet
hdu.terence.servlet.ListServlet
BASIC

Configuratieon.xml文件

JavaDao.xml文件(Message.xml)

Mybatis项目常见错误

      在Mybatis项目中经常会遇到各种错误,有很多错误并不会在预编译阶段提示,经常让人头疼,因此,笔者觉得有必要将一些常见错误一一列出,借此敲个警钟:

      1.获取自增主键值

      2.找不到namespace.id的异常效果

                Cause: java.lang.IllegalArgumentException: Mapped Statements collectiondoes not contain value for       Message.queryMessageList

      3.排查SQL语法错误

          ### Error querying database.  Cause:com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQLsyntax; check the manual that corresponds to your MySQL server version for theright syntax to use near 'message WHERE 1=1' at line 1

      4.不要过度使用${}

      5.乱码问题

      ------------------------------------------------------------------------------------------------------------------------------

      (1)文件本身的编码(程序文件编码)

      (2)数据库编码、建表编码、列属性编码

      (3)Jsp页面编码;

      (4)读取数据库连接对象url的编码;

          <propertyname="url"value="jdbc:mysql://127.0.0.1:3306/micromessage?useUnicode=true&amp;characterEncoding=UTF-       8&amp;zeroDateTimeBehavior=convertToNull"/> 

      (5)页面传值的编码;

    ------------------------------------------------------------------------------------------------------------------------------

你可能感兴趣的文章
Ios17个常用代码整理
查看>>
适配ios7
查看>>
项目复审——Beta阶段
查看>>
Android 实现切换主题皮肤功能(类似于众多app中的 夜间模式,主题包等)
查看>>
在Android App中集成Google登录
查看>>
openstack quantum搭建过程中一些有用的链接
查看>>
数据库:mysql 获取刚插入行id[转]
查看>>
Egret入门学习日记 --- 第二篇
查看>>
前端“黑话”polyfill
查看>>
wifi-mac
查看>>
linux 下运行 tomcat
查看>>
RocketMQ 使用及常见问题
查看>>
UVA10785 The Mad Numerologist
查看>>
var result = ![] == []; console.log(result); // 结果是?为什么?
查看>>
高效率Oracle SQL语句
查看>>
Maven deploy部署jar到远程私服仓库
查看>>
2/19 福建四校联考
查看>>
abap 中modify 的使用
查看>>
tomcat调优方案Maximum number of threads (200) created for connector with address null and port 8091...
查看>>
java类的加载机制
查看>>