首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SSM项目搭建之MyBatis 原

SSM项目搭建之MyBatis 原

作者头像
尚浩宇
发布2018-08-17 10:02:10
2810
发布2018-08-17 10:02:10
举报
文章被收录于专栏:杂烩杂烩

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

    iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。

    官方语言结束。

    在实际项目中,Mybatis的配置文件是集成到Spring中的,所以你只需要关心的只有dao接口还有对应的mapper文件。形如如下目录结构:

+--dao

+----IUserDao.java

+----IuserDao.xml

…………………………

    注意:dao接口和mapper文件名必须一致!多说无意下面看代码:

    首先是spring的配置文件:  

    applicationContext.xml

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />		
</bean>
<!-- mapper.xml文件对应的接口 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.cmicroentropy.soa.dao" />
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean>

   然后是mapper文件,懒得写直接从项目里copy了一个:

    ICdeCompanyInfoBoxDao.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="com.cmicroentropy.soa.dao.homemap.ICdeCompanyInfoBoxDao">
<!-- 带缓存 -->
<cache  type="org.mybatis.caches.oscache.OSCache"/>
	<resultMap type="com.cmicroentropy.soa.vo.homemap.CdeCompanyInfoBoxVo" id="CdeCompanyInfoBoxVo">
		 <result property="compsid" column="compsid" jdbcType="INTEGER" javaType="java.lang.Integer" />  
         <result property="compname" column="compname" jdbcType="VARCHAR" javaType="java.lang.String" />
         <result property="parentcompid" column="parentcompid" jdbcType="VARCHAR" javaType="java.lang.String" />    
	</resultMap>
	<select id="getCdeCompanyInfoList" resultMap="CdeCompanyInfoBoxVo" parameterType="java.lang.Integer">
		select c.compsid,c.compname,c.parentcompid 
		from 
		vw_cde_company_info c 
		where c.compsid =#{compsid} or 
		c.parentcompid=#{compsid}
	</select>
</mapper>

   这里加了缓存,如果不需要删除

<cache  type="org.mybatis.caches.oscache.OSCache"/>

    即可,当然如果你加了,那么一定要在执行删除或者修改、添加的地方加上  flushCache="true"来刷新缓存。

    最后再看看dao接口,也是项目里直接粘的,对应上面的mapper:

    ICdeCompanyInfoBoxDao.java

/**
 * 
 * @ClassName: ICdeCompanyInfoBoxDao 
 * @Description: 公司信息接口
 * @author scc
 * @date 2015年5月5日 上午11:12:41 
 *
 */
public interface ICdeCompanyInfoBoxDao {
	/**
	 * 
	 * @Title: getCdeCompanyInfoList 
	 * @Description: 获取公司信息列表
	 * @param compsid
	 * @return
	 */
	List<CdeCompanyInfoBoxVo> getCdeCompanyInfoList(int compsid);

}

    有兴趣的可以看看注解方式,项目需要这里只能是xml方式。数据库链接使用的是druid,下篇讲解。

    还有pom.xml忘了写了,再加上

<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.7</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis.caches</groupId>
			<artifactId>mybatis-oscache</artifactId>
			<version>1.0.1</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.2.2</version>
		</dependency>

    我就不测试,实际项目运行的,不会出错。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015/05/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档