SSM项目搭建之MyBatis 原

    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>

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术翻译

Java程序员应该知道的20个有用的库

总的来说,我介绍了一些对于日常项目十分有用的库,包括Log4j等日志库,Jackson等JSON解析库,以及JUnit和Mockito等单元测试API。如果需要...

3123
来自专栏c#开发者

企业库推广

企业库推广  阿新 1. 概述 可重用的程序块库,用于解决共性的企业级开发过程中所面临的挑战 l 较低风险(经过实践验证的、精准的) l 降低成本(可充用) ...

36413
来自专栏我是攻城师

关于Java的BIO,NIO和AIO的演进

Java里面的IO模型种类较多,主要包括BIO,NIO和AIO,每个IO模型都有不一样的地方,那么这些IO模型是如何演变呢,底层的原理又是怎样的呢? 本文我们就...

1221
来自专栏IT米粉

IntelliJ IDEA插件——冷门神器分享

IntelliJ IDEA就不必介绍了,至今还能保持IDE前三的神器,如今java程序员的首选,今天介绍几款冷门但绝对是神器的IDEA插件。 前言 IDEA自不...

5436
来自专栏后端云

实时操作系统

一般的linux都是GPOS(通用)内核。GPOS是不保证实时的,但是对于大多数应用程序来说是没有问题的。GPOS可以充分利用物理资源。但在实时性要求性比较高的...

2887
来自专栏大数据架构师专家

namp 渗透测试-安装篇

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。

1233
来自专栏FreeBuf

登录框的另类思考:来自客户端的欺骗

前几天刚见人发了《一个登录框引发的血案》,而常规的爆破有风控和各种变态验证码,或者大型的电商都会用SSO实现登录,密码找回逻辑看似天衣无缝,又或者采用第三方的O...

1420
来自专栏Linyb极客之路

使用lazyInit缩短Spring Boot启动时间

Spring Boot可以进行有助于相关针对项目的设置,包括最常见的默认设置和随时可用的配置,这无疑是很棒的,因为它节省了宝贵的时间 然而,对于框架的新手来说,...

1.1K7
来自专栏Web项目聚集地

RESTful 接口实现简明指南

在我所见过的 RESTful 接口的实现中,以 GitHub 最让人惊叹。我第一次如此强烈得感受到 REST 接口的美妙,完全满足了我所期待的「接口的形式美感」...

921
来自专栏小狼的世界

使用PHP脚本来写Daemon程序

这又是一个有趣的概念,daemon在英语中是"精灵"的意思,就像我们经常在迪斯尼动画里见到的那些,有些会飞,有些不会,经常围着动画片的主人公转来转去,啰里啰唆地...

1512

扫码关注云+社区

领取腾讯云代金券