Mybatis是一个持久层框架,是apache的顶级项目;它让程序员将主要精力放在sql逻辑上而不是和数据库的交互上;通过映射的方式自由灵活的生成(半自动)满足条件的sql语句,并能通过输出映射将结果集映射成java对象。
在了解mybatis架构后,就可以开始使用了
环境
Java开发环境,eclipse
数据库环境mysql,需要mysql的驱动包也导入到工程
Mybatis环境(jar包):下载:https://github.com/mybatis/mybatis-3/releases
核心包和lib目录下依赖包都需要导入到工程,从依赖包中可以看到mybatis使用到了log4j,所以我们需要在工程中配置log4j.properties这个文件,文件的内容如下:
工程结构
首先编辑全局配置文件SqlMapConfig.xml内容如下:
这里需要注意的是,如果需要xml文件在编辑的时候自动提示属性,需要加载DTD。然后用eclipse的xml编辑器打开,再在源里面编辑即可。后面自动双击打开xml文件就会有自动属性填充。
测试程序单条结果集
现在来看下我们需要实现的功能,根据用户编号查询用户记录。需要创建一个映射文件,然后在映射文件中配置sql语句,这里我们在sqlmap目录下创建映射文件:Cust.xml(这里需要注意,如果使用代理开发方式,映射文件需要命名为xxxMapper.xml,这里先使用原始的ibatis方式来测试)。Cust.xml内容如下:
其中输出类型映射成的java对象类型,需要定义一个java对象类接收,这个java类中属性必须与数据库表中字段一致(大小写不敏感)。Po中cust定义如下:
在全局配置文件SqlMapConfig.xml文件中配置价值mapper文件,内容如下:
以上配置完成后,就可以写程序来测试验证了。这里使用到了junit进项实验。把junit-4.10.jar导入到工程即可。测试代码如下:
从运行结果可以看到使用mybatis有成功实现我们需要的功能
多条结果集
接下来,试下实现一个多条结果集返回的功能,使用客户名称模糊查询客户记录。
在Cust.xml中新增内容,这里面需要注意,resultType即使是返回多条记录,它含义是上仍然是单条记录的结果映射;另外,使用${ }拼接符号简单类型时,变量名称只能用value,复杂的类型菜可以使用pojo
测试代码如下:
执行结果如下,而且语句没有出现占位符。
领取专属 10元无门槛券
私享最新 技术干货