Ibatis使用知識(shí)總結(jié)
1. 從官方網(wǎng)站下載,ibatis的jar及相關(guān)的文件,http://ibatis.apache.org/2 . 新建一個(gè)工程, 我們?nèi)绻M(jìn)行ibatis相關(guān)的操作, 就一個(gè)要導(dǎo)入ibatis-2.3.3.720.jar
3 . 建立pojo與pojo.xml形成映射.
4. 一般一個(gè)pojo對(duì)應(yīng)一個(gè)pojo.xml, 例如.User.java.與User.xml
pojo的類最好實(shí)現(xiàn)java.io.Serializable接口, 以備應(yīng)用時(shí), 進(jìn)一步的擴(kuò)展, 還要提供一個(gè)缺省的構(gòu)造方法(空構(gòu)造方法)。
5. ibatis的配置文件.SqlMapConfig.xml, 這個(gè)文件一般放到src下.
<?xml version="1.0" encoding="UTF-8" >
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!-- Configure a built-in transaction manager. If you're using an
app server, you probably want to use its transaction manager
and a managed datasource --
<properties resource="dbconfig.properties"/>/*數(shù)據(jù)庫(kù)的驅(qū)動(dòng)配置文件,一般與SqlMapConfig.xml是同一級(jí)目錄*/
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}"/>
<property name="JDBC.ConnectionURL" value="${url}"/>
<property name="JDBC.Username" value="${user}"/>
<property name="JDBC.Password" value="${password}"/>/*配置文件的Key*/
</dataSource>
</transactionManager>
<sqlMap resource="com/lxit/test/LXGroup.xml"/>
/*指定pojo的映射文件, 這句話一定要加上, 否則, 找不到配置文件,包名/類名.xml*/
</sqlMapConfig>
LXGroup.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="LXGroup">
<typeAlias alias="LXGroup" type="com.lxitedu.pojo.permission.LXGroup" />
類型別名 , 為一個(gè)pojo類取一個(gè)別名, 以便在下面用時(shí)候, 直接用別名引用對(duì)象(上面的解釋)
<resultMap class="LXGroup" id="paginationList">
<result property="groupId" column="ID" />
<result property="groupName" column="groupName" />
<result property="description" column="description" />
</resultMap>
數(shù)據(jù)返回類型,我用的是一張表 , id 與select 標(biāo)簽的id一致, 就可以指定返回是多個(gè)pojo
<select id="userGroupRowCount" resultClass="int">
select count(*) from userGroup
</select>
我們可以, 根據(jù)自己的SQL查詢語(yǔ)句, 及傳入的參數(shù)來(lái)決定它的返回類型,
resutlClass="返回類型" parameterClass="傳入的參數(shù)類型"
<select id="userGroupList" resultMap="paginationList">
select * from userGroup
</select>
<delete id="deleteUserGroup" parameterClass="String">
delete from userGroup where groupName=#value#
#value#由方法的傳入?yún)?shù)填充
</delete>
<select id="userGroup" parameterClass="String"
resultClass="LXGroup">
select ID as groupId,groupName as groupName,description as description from
userGroup where groupName=#value#
</select>
<insert id="addUserGroup" parameterClass="com.lxitedu.pojo.permission.LXGroup">
insert into userGroup(groupName,description)values
(#groupName#,## where
ID=#groupId#
</update>description#)
<selectKey resultClass="int" keyProperty="groupId">
select LAST_INSERT_ID() as value
</selectKey>(這是主鍵自動(dòng)增長(zhǎng))
</insert>
<update id="updateUserGroup" parameterClass="LXGroup">
update userGroup set groupName=#groupName#,description=#description
</sqlMap>
6. 這里所有配置文件都完成了
之后就是得到SqlMapClient對(duì)象, 調(diào)用相應(yīng)的方法, 完成相應(yīng)操作
private static SqlMapClient sqlMapper;
public static synchronized SqlMapClient getSqlMapClientInstance()
{
if(sqlMapper==null)
{
try {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sqlMapper;
}
ibatis與spring的整合
1. ibatis與spring整合, 我們要導(dǎo)入相應(yīng)的jar.commons-dbcp-1.2.jar,commons-pool-1.4.jar,spring2.5.5.jar,這些是Spring的jar
2. 要想spring與ibatis整合起來(lái), 我們只需修改一下配置文件就可以了,如果成功之后, 我們就會(huì)發(fā)現(xiàn), 他會(huì)使的我們的程序越來(lái)越簡(jiǎn)單
第一步:在SqlMapConfig.xml里 , 要?jiǎng)h除 連接數(shù)據(jù)庫(kù)驅(qū)動(dòng)。
第二步:在ApplicationContext.xml里修改驅(qū)動(dòng)
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath:dbconfig.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${driver}</value>
</property>
<property name="url">
<value>${url}</value>
</property>
<property name="username">
<value>${user}</value>
</property>
<property name="password">
<value>${password}</value>
</property>
</bean>
第三步: 整合ibatis與spring
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:SqlMapConfig.xml"/>(src下)
<property name="dataSource" ref="dataSource"/>
</bean>
第四步:修改實(shí)例對(duì)象方式
如果是單獨(dú)的ibatis, 我們要通過(guò)讀取SqlMapConfig.xml來(lái)得到SqlMapConfig來(lái)得到SqlMapClient對(duì)象
現(xiàn)在與spring整合之間, 我們只需要修改類的繼承關(guān)系就可以了, 一般繼承SqlMapClientDaoSupport
this.getSqlMapClient()就可以實(shí)現(xiàn)得到數(shù)據(jù)庫(kù)的操作對(duì)象,簡(jiǎn)化了操作。
第五步:在sqlmapconfig.xml里面我們只要寫映射pojo.xml的路徑就可以了。
posted on 2009-11-12 17:00 飛熊 閱讀(660) 評(píng)論(0) 編輯 收藏 所屬分類: Ibatis