详解关于mybatis的入门程序

首先咱们要下载mybatis的jar包,下载地址:github.com/mybatis/myb…java

下载最新的mybatis-3.4.4 release 版本,source code也可一并下载,方便之后看源码。git


解压后就是这些文件,lib下面主要存放的一些依赖包,好比显示日志的log4j,mybatis-3.4.4.jar就是核心包了。因而咱们新建一个java工程,将lib下面的jar包和核心包一块儿导入工程,由于还要操做数据库,因此别忘了你的数据库驱动jar包。

上面解压的文件中还有个很重要的文件mybatis-3.4.4.pdf,打开这个文件,你会发现这就是一个mybatis的基本操做手册,结合以前我写的mybatis的基本框架,咱们如今就能够直接动手操做了。程序员

首先是全局配置文件SqlMapConfig.xml,配置数据源等信息。打开pdf,里面有这么一段github


直接将这段复制进XML文件中,稍做修改,本身定义一个db.properties文件,写入数据库的链接信息,再经过properties标签引入便可。


mapper标签引用的就是咱们以后主要编写的mapper.xml的路径。

在此以前,咱们还须要作点有用的事情,刚刚引用的lib中,有不少日志相关的jar包,为了咱们程序之后测试起来方便查看日志,咱们要建一个log4j.properties文件,一样在pdf中能找到以下内容面试


直接复制,将其中的ERROR改为DEBUG便可,方便查看完整的日志,跟踪错误。

咱们今天先作一个简单的查询。新建一张user表,需求就是根据id查找用户的信息。sql


而后新建user类,写好get set 方法。

咱们用mapper代理的方式来开发,至关于Dao接口,需遵循如下规范才能自动生成mapper接口实现类的代理对象数据库

在mapper.xml中的namespace等于mapper.java接口的地址
mapper.java中的方法名与mapper.xml中statement的id名一致
mapper.java中方法的输入参数类型和mapper.xml中的parameterType指定的类型一致
mapper.java中方法的输出结果类型和mapper.xml中的resultType指定的类型一致
mapper.java类名和mapper.xml映射文件名要一致,且须要在同一个目录下
一切ok以后,咱们着重开始写UserMapper.xml文件。参考pdf文件,很快咱们就能写出下面的内容:session


其中namespace是命名空间,做用就是对sql进行分类管理,相互隔离,由于之后作项目确定是会有不少的sql语句的。采用mapper代理方式来操做数据库,namespace须要指定为接口文件的路径。

id:标识映射文件中的sql,框架中提到底层会将sql语句封装到 mappedStatement对象中,id也就是statement的id。mybatis

parameterType指定输入参数的类型,这边根据id来查找用户,id是int型,因此填int,你也能够填java.lang.Integerapp

resultType指定输出结果所映射的java对象的类型。这边根据id来查找用户,返回的是一个用户,因此填User的全路径。

#{}是占位符,待会测试代码打出来的sql你会发现就是个?,其中的参数value表示要输入的参数,由于这边的parameterType是简单类型int,因此#{}中你能够填任意的参数名字。

接下来咱们就要写UserMapper.java接口了,参照规范:


这样按照框架流程,剩下的就是建立session,操做数据库了,咱们写个junit测试代码


输出结果:


看到打印出来的sql没,#{value}是否是被替换为“?”了。

这样,整个流程就走完了,以上的内容根据上面提到的pdf就能照着写出来,若是上面内容你都会了,就算入门了,是否是很简单。不少时候,官方提供一些文档可以很好的帮助咱们开发。后续继续更新,记得关注哦。

想要朝这方面发展或者真心有兴趣的。能够找我要一些基础的学习视频,Q号码:3300863615,这个是免费的,但愿同窗找我要的时候不要有理所应当的态度,毕竟都是个人心血,但愿你是真的有一颗想要学好java的心,我也会尽所能的去帮助你成为一名优秀的程序员。

加我Q有如下几个要求,不达标的勿扰:

一、大学学习的是Java相关专业,毕业后面试受挫,找不到对口工做能够

二、在公司待久了,如今过得很安逸,但跳槽时面试碰壁。须要在短期内进修、跳槽拿高薪的

三、参加过线下培训后,知识点掌握不够深入,就业困难,想继续深造

四、已经在Java相关部门上班的在职人员,对自身职业规划不清晰,混日子的

五、有必定的C语言基础,接触过java开发,想转行的

小号勿扰

相关文章
相关标签/搜索