读书人

ibati环境筹建和CURD操作

发布时间: 2012-11-17 11:14:15 作者: rapoo

ibati环境搭建和CURD操作
1.ibatis环境搭建
a.导入相关的jar包。

b.配置文件
JDBC连接的属性文件
总配置文件sqlMapConfig.xml
关于每个实体的映射(map)文件entity.xml

c.定义一些业务方法。(接口中定义)

d.操作的实现CRUD
借助SqlMapClient中的方法
queryForObject----->返回Object
queryForList------->返回List
insert----->增加
delete------>删除
update------>修改

补充标签:
I. typealias:类型绰号,避免类的全称。
<typeAlias alias="Student" type="com.entity.Student"/>
I. select:查询
<select id="selectAllStudents" resulttype="com.entity.Users"/>
a.查询<select>标签
<sqlMap>
<select id="selectAllUsers" resultresultparameterresultparameterparameterparameterkeyProperty="user_id">
select hibernate_sequence.nextval from dual
</selectKey>
insert into users(user_id,user_name,password,address,telephone,email,create_date)
values(#user_id#,#user_name#,#password#,#address#,#telephone#,#email#,#create_date#)
</insert>
g.增加信息(使用外联参数添加信息)
<!-- 使用外联参数映射 -->
<parameterMap id="parameterUser">
<parameter property="user_id" jdbcType="int"/>
<parameter property="user_name" jdbcType="varchar"/>
<parameter property="password" jdbcType="varchar"/>
<parameter property="address" jdbcType="varchar"/>
<parameter property="telephone" jdbcType="varchar"/>
<parameter property="email" jdbcType="varchar"/>
<parameter property="create_date" jdbcType="varchar"/>
</parameterMap>
<insert id="addStudentMap" parameterMap="parameterUser">
insert into users(user_id,user_name,password,address,telephone,email,create_date)
values(?,?,?,?,?,?,?)
</insert>
e.删除信息(此处的参数不必与数据库中的一致)
<delete id="deleteUser" parameterparameterparameterresultparameterkeyProperty="id" >
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
b.存储过程的调用:通过<procedure>元素支持存储过程。
1.参数类型3种:IN、OUT、INOUT。(用Mode设置)
2.换两个字段(数据库表)和参数对象(Map)中的两个email
例如:<parameterMap id="swapParameters" >
<parameter property="email1" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
<parameter property="email2" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
</parameterMap>
<procedure id="swapEmailAddresses" parameterMap="swapParameters" >
{call swap_email_address (?, ?)}
</procedure>
3.ibatis的属性介绍(entity.xml)
parameterClass属性:Java类的全限定名
parameterMap属性:定义一系列有次序的参数系列,用于匹配JDBC PreparedStatement的值符号。
resultClass属性:可以让您指定一个Java类,根据ResultSetMetaData将其自动映射到JDBC的ResultSet。
xmlResultName属性:当直接把查询结果映射成XML document时,属性xmlResultName的值等于XML document根元素的名称。
例如:<select id="selectXML" parameterresultxmlResultName="users">
select * from users where user_id=#id#
</select>
业务调用:List list=this.client.queryForList("selectXML", 3);
for (int i = 0; i < list.size(); i++) {
String s=list.get(i).toString();
System.out.println(s);
}
注意:大多数JDBC Driver只有在字段可以为NULL时需要指定jdbcType属性。
javaType属性:用于显式地指定被赋值参数Java属性的类名。
Inline Parameter Map(内嵌参数)属性:#value#
Map类型输入参数: 使用Map类(如HashMap,TreeMap等)作为参数对象。
例如:
<statement id=”insertProduct” parameterClass=”java.util.Map”>
select * from PRODUCT
where PRD_CAT_ID = #catId#
and PRD_CODE = #code#
</statement>











读书人网 >软件架构设计

热点推荐