今天在使用mybatis的时候,发现dao的实现竟然可以不需要写一行代码,让我小小的震惊了一翻。
以下是截取mybatis官方文档中的一个小例子。比较好的说明了这个情况
需要的jar文件。 spring 3.0.5版本。 mybatis-3.0.5 mybatis-spring-1.0.1以及其依赖的包
package org.mybatis.jpetstore.domain;
import java.io.Serializable;
public class Category implements Serializable {
private static final long serialVersionUID = 3992469837058393712L;
private String categoryId;
private String name;
private String description;
public String getCategoryId() {
return categoryId;
}
public void setCategoryId(String categoryId) {
this.categoryId = categoryId.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String toString() {
return getCategoryId();
}
}
注意,必须实现序列化,不然报java.io.NotSerializableException异常
service层web层暂时省略直接持久层吧
package org.mybatis.jpetstore.persistence;
import java.util.List;
import org.mybatis.jpetstore.domain.Category;
public interface CategoryMapper {
List<Category> getCategoryList();
Category getCategory(String categoryId);
}
这就是持久层的全部代码。只有一个接口而已。实现已经不必要再写了。完全有mybatis配置文件搞定
CategoryMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.jpetstore.persistence.CategoryMapper">
<cache />
<select id="getCategory" parameterType="string" resultType="Category">
SELECT
CATID AS categoryId,
NAME,
DESCN AS description
FROM CATEGORY
WHERE CATID = #{categoryId}
</select>
<select id="getCategoryList" resultType="Category">
SELECT
CATID AS categoryId,
NAME,
DESCN AS description
FROM CATEGORY
</select>
</mapper>
其中id=getCategory表示调用的是getCategory(),parameterType表示参数的类型。这个是String类型。resultType表示的是返回值类型。会由mybatis自动封装。id=getCategoryList调用的是getCategoryList()。返回值Category。会被自动包装成List<Category>。
没有什么查询,封装之类的东西。这就是持久层的全部代码。表示以前没见过。
接下来是applicationContext.xml中配置了。
最主要是下面两个配置:
<!-- define the SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage" value="org.mybatis.jpetstore.domain" />
</bean>
配置SqlSessionFactory。这是mybatis-spring-1.0.1提供的。而不是用spring里面的SqlMap....的包。
<!-- scan for mappers and let them be autowired -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="org.mybatis.jpetstore.persistence" />
</bean>
这也是mybatis-spring-1.0.1提供的,用来对映射进行自动装配。
具体如何装配,可以参考源码,我也没有看代码。只是拿过来用。所以也不是十分清楚。不过挺值得研究的。
代码太清晰了。
首发于http://inmethetiger.iteye.com/blog/1725836
分享到:
相关推荐
在spring中使用MyBatis的配置说明
一般使用mybatis的环境,大多都是别人已经配置...我文章中的方法不基于spring,一般很少会在真实项目中直接使用。我把我的搭建过程记录下来给有用的人吧。 https://blog.csdn.net/lxyoucan/article/details/126162493
SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统,实现学生增删改查功能设计一个简单的学生信息管理系统,要求使用SSM框架技术整合实现,用户登录后能够通过Web页面添加、删除、修改和查询学生信息 ...
spring cloud整合mybatis,spring cloud整合mybatis,spring cloud整合mybatis
基于spring+spring mvc+mybatis框架整合实现超市货物管理系统(实现登入功能、mysql数据库的增删改查及分页显示)
《Spring MVC+MyBatis开发从入门到项目实战》适用于拥有Java基础的软件开发人员学习框架开发,也适用于大中专院校在校师生学习开发技术,以及软件从业实习生提升框架开发技术水平,也可作为高等院校计算机及相关专业...
Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境
Spring MVC + Mybatis+Spring实现的个人博客系统基于SSM实现的个人博客系统.zip
spring4+mybatis3+springmvc4 完整可操作性项目,适合学习ssm框架的同学,了解相关文件配置。
spring整合mybatis。/13spring4_mybatis2/lib/aopalliance.jar /13spring4_mybatis2/lib/asm-3.3.1.jar /13spring4_mybatis2/lib/aspectjweaver.jar /13spring4_mybatis2/lib/cglib-2.2.2.jar /13spring4_...
Spring + Spring MVC + MyBatis整合项目的源码。
基于SpringMVC+Spring3+Mybatis框架的OA项目 基于SpringMVC+Spring3+Mybatis框架的OA项目 基于SpringMVC+Spring3+Mybatis框架的OA项目 基于SpringMVC+Spring3+Mybatis框架的OA项目 基于SpringMVC+Spring3+Mybatis...
Spring MVC与MYBatis企业应用实战.pdf Spring MVC与MYBatis企业应用实战.pdf
主要使用spring+spring MVC+mybatis开发的一个简单增删改查项目(完美运行) 内含框架需要的jar包,Mysql数据库sql文件,直接导入就能使用
Spring 与 各框架的组各下来,版本就特别的多,针对简单的 使用注解来管理事务的,研究了两天,要不网上写的不清楚,要不版本都很旧了,所以就是不回滚,Spring 的配置太灵活了,在加上新手,根本就不可能明白Spring...
maven、spring、spring mvc、mybatis 整合实现ssm通用增删改查基础开发框架.maven、spring、spring mvc、mybatis 整合实现ssm通用增删改查基础开发框架.maven、spring、spring mvc、mybatis 整合实现ssm通用增删改查...
基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程序 基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程序 基于 Spring Boot + MyBatis Plus + Vue ...
基于Spring Boot和MyBatis的银行知识库管理系统的设计与实现
毕设项目基于Spring + Spring MVC + Mybatis的销售管理系统源码.zip毕设项目基于Spring + Spring MVC + Mybatis的销售管理系统源码.zip毕设项目基于Spring + Spring MVC + Mybatis的销售管理系统源码.zip毕设项目...
包含课设要求所有资源 基于Spring + Spring MVC + MyBatis的图书馆管理系统,使用Maven进行包管理。主要功能包括:图书查询、图书管理、图书编辑、读者管理、图书的借阅与归还以及借还日志记录等。