您的位置:首页 > 编程语言 > Java开发

Spring集成MyBatis

2016-05-05 16:13 363 查看
如果觉得Hibernate不够灵活,可以尝试用Mybatis。相比于Hibernate,Mybatis则显得更加轻量、更加灵活,对于我这种不喜欢被束缚的人,使用Mybatis更加顺手、舒心一些。

MyBatis是什么
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

项目结构及说明
项目最终结构如下图:

 


项目结构介绍:

com.springapp.mvc包为mvc结构,分别为视图、数据访问层、模型、服务接口。
resource中分别放置各种配置文件和属性定义文件
webapp/WEB-INF/view中为freemarker的模板文件
mvc-dispatcher-servlet.xml为默认的mvc配置文件
web.xml是java web项目配置文件
引用MyBatis的支持
之前创建MVC项目的过程不是本文介绍重点,略过不讲。此项目采用maven的方式创建,引用MyBatis非常简单,只需在pom文件中添加如下内容:

除此之外还要包括mysql驱动器包、freemarker等,完整的pom文件配置如下:

如果项目采用非maven方式创建,可下载MyBatis的相关的jar包,引用到项目中。包括mybatis和mybatis-spring这两个jar包,其中mybatis-spring是mybatis对spring的支持。

开始使用MyBatis
创建数据库test,并添加表tt_user,创建表的sql如下:

在resource/conf中添加jdbc配置文件,设置相关属性,属性内容如下:

在dao中添加user的数据访问层接口,内容如下,其中接口定义了getUserById()和getUserCount()两个方法:

在model中添加user的对象模型类,这里定义的字段名和数据库字段名相同,方便MyBatis查询结果和对象实体做映射,不用再定义resultmap:

在service中定义服务接口和接口实现:

接口定义如下:

接口实现如下:

以上这些定义了关于User对象的一系列mvc层次代码,接下来定义UserMapper文件,此文件是MyBatis中SQL定义文件,需要在此配置文件中定义dao数据访问接口中需要用到的sql语句,本例比较简单只有两个方法,分别是getUserById和getUserCount,命名为UserMapper.xml,并存放在resource/mapper文件夹中,内容如下:

其中id为dao数据访问接口中方法名称,resultType为返回值类型,参数需要用#{参数名}表示。

配置mybatis-config,指定mapper文件以及给实体设定别名,在resource/conf文件夹中创建mybatis-config.xml,内容如下:

通过设置mappers,设置数据访问接口对应的映射文件,通过设置typeAlias,指定实体模型的别名,例如,这里讲com.springapp.mvc.model.User设置别名为User,那么在UserMapper.xml中,可以将getUserById的resultType直接指定为User,就不需要加包前缀了。

最后,在mvc-dispatcher-servlet.xml中配置相关的bean、freemarker等配置,内容如下:

之后在controller中加入视图方法,输出查询内容:

通过浏览器访问页面,即可输出内容:




  

demo下载

人生没有回头路,珍惜当下。

  
之后在controller中加入视图方法,输出查询内容:

通过浏览器访问页面,即可输出内容:




  

demo下载

人生没有回头路,珍惜当下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: