返回 登录
1

详解关于mybatis的入门程序

首先我们要下载mybatis的jar包,下载地址:github.com/mybatis/myb…
图片描述

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

详解关于mybatis的入门程序

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

上面解压的文件中还有个很重要的文件mybatis-3.4.4.pdf,打开这个文件,你会发现这就是一个mybatis的基本操作手册,结合之前我写的mybatis的基本框架,我们现在就可以直接动手操作了。

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

详解关于mybatis的入门程序

直接将这段复制进XML文件中,稍作修改,自己定义一个db.properties文件,写入数据库的连接信息,再通过properties标签引入即可。
图片描述

详解关于mybatis的入门程序

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

在此之前,我们还需要做点有用的事情,刚刚引用的lib中,有很多日志相关的jar包,为了我们程序以后测试起来方便查看日志,我们要建一个log4j.properties文件,同样在pdf中能找到如下内容
图片描述

详解关于mybatis的入门程序

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

我们今天先做一个简单的查询。新建一张user表,需求就是根据id查找用户的信息。
图片描述

详解关于mybatis的入门程序

然后新建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文件,很快我们就能写出下面的内容:
图片描述

详解关于mybatis的入门程序

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

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

parameterType指定输入参数的类型,这边根据id来查找用户,id是int型,所以填int,你也可以填java.lang.Integer

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

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

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

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

图片描述

详解关于mybatis的入门程序

这样按照框架流程,剩下的就是创建session,操作数据库了,我们写个junit测试代码
图片描述

详解关于mybatis的入门程序

输出结果:
图片描述

详解关于mybatis的入门程序

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

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

评论