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必須提供默認的無參數構造函數
Ibatis基本內容
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.