Ibatis基本内容

Ibatis学习总结
一、使用Ibatis的前期工作
	1、导入jar包,构建Ibatis开发环境
	2、创建配置文件
		2.1、SqlMap.properties(数据库链接所需要的配置信息文件)
			配置如下:
			driver=oracle.jdbc.driver.OracleDriver
			url=jdbc:oracle:thin:@localhost:1521:XE
			username=hr
			password=hr123
		2.2、SqlMapConfig.xml(总配置信息文件)
			<sqlMapConfig>

				<!-- 映射到数据链接配置文件 -->
				<properties resource="com/zhouyuntao/SqlMap.properties" />

				<!-- 指定事务管理器 JDBC -->
				<transactionManager type="JDBC">
					<dataSource type="SIMPLE">
						<!--下面四个是必填的-->
						<property value="${driver}" name="JDBC.Driver"  />
						<property value="${url}" name="JDBC.ConnectionURL"  />
						<property value="${username}" name="JDBC.Username" />
						<property value="${password}" name="JDBC.Password"  />
					</dataSource>
				</transactionManager>
				
				<!--映射到每个实体的映射文件,可以有无数个 -->
				<sqlMap resource="com/zhouyuntao/EMP.xml" />
			</sqlMapConfig>
		2.3、每个实体的映射文件(Map文件)
			<sqlMap>
				<!--别名,减少书写-->
				<typeAlias alias="emp" type="com.zhouyuntao.bean.EMP"/>
				
				<!--Javabean中的属性和数据库中的字段映射-->
				<!-- 
				<resultMap class="emp" id="empResultMap">
					<result property="pid" column="pid"/>
					<result property="name" column="name"/>
					<result property="salary" column="salary"/>
					<result property="hire_date" column="hire_date"/>
				</resultMap>
				 -->
				 
				
		</sqlMap>
	3、读取配置文件(为了获得到SqlMapClient类的实例)
		static {
			try {
				Reader reader = com.ibatis.common.resources.Resources.getResourceAsReader("com/zhouyuntao/SqlMapConfig.xml");
				
				sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader);
				reader.close();
			} catch (IOException e) {
				throw new RuntimeException(e.getMessage(),e);
			}
		}

二、基本的CURD
		<!--查询-->
		<select id="findEmpById" parameterClass="int" resultClass="emp">
			select * from emp where pid=#pid#
		</select>
				
				
		<!--增加-->
		<insert id="insertEmp" parameterClass="emp">
			<selectKey keyProperty="pid" resultClass="int">
				select emp_seq.nextval from dual
			</selectKey>
			insert into emp(name,hire_date,salary,pid) values(#name#,#hire_date#,#salary#,#pid#)
		</insert>
		
		<!--修改-->
		<update id="updateEmp" parameterClass="emp">
			update emp set salary=#salary# where name=#name#
		</update>
		
		<!--删除-->
		<delete id="deleteEmp" parameterClass="int">
			delete from emp where pid=#pid#
			</delete>
三、模糊查询
	<!--模糊查询-->
		<select id="findEmpsByName" resultClass="emp">   
		      select *  from emp    
			<dynamic prepend="WHERE">   
			    <isNotNull prepend="AND" property="name">   
				  (name like '%$name$%')    
				<!-- (name like '%'||#name#||'%') -->   
			    </isNotNull>   
		    </dynamic>   
		</select>   
四、自动查询主键
	<insert id="insertEmp" parameterClass="emp">
		<selectKey keyProperty="pid" resultClass="int">
			select emp_seq.nextval from dual
		</selectKey>
		insert into emp(name,hire_date,salary,pid) values(#name#,#hire_date#,#salary#,#pid#)
	</insert>
五、Ibatis的优点和缺点
	1、优点
		1.1、使sql语句和Java代码分离,便于以后的维护
		1.2、代码量减少
		1.3、不需要程序员手动的创建和销毁链接
	2、缺点
		不能操作存储过和自定函数
		只能输入一个参数
注意:Javabean必须提供默认的无参数构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值