?? ibatis.txt
字號:
七、ibatis的作用
與hibernate相似,也是一個o/r mapping工具。
八、ibatis的核心配置文件及核心類
a、核心配置文件
sqlmapclient.xml:說明數據庫連接及具體o/r Mapping文件所在的位置
具體映射文件:具體說明對象與數據庫表字段的映射關系,具體標簽如下:
<select>
<delete>
<update>
<insert>:只執行insert
<statement>:可以執行update、delete、insert、select
<procedure>:調用存儲過程
b、核心類:
SqlMapClientBuilder:加載sqlmapclient.xml文件及具體o/r Maping文件
SqlMapClient:是一個具體的會話,可以進行增、刪、改、查
查詢一個:queryForObject("操作串",對象)
查詢一批:queryForList("操作串",對象)
增加:insert("操作串",對象)
刪除:delete("操作串",對象)
修改:update("操作串",對象)
七、ibatis配置過程:
將ibatisfactory拷貝到工程目錄下
加入四個包:sqlserver的三個,ibatis的1個-->lib
修改ibatisfactory下的一個xml文件指定類包、驅動、url、具體的表與類的映射
進入ibatisfactory目錄運行java -jar abator.jar abatorConfig.xml true
*刪掉dao包和UsersExample.java
復制sqlmapclient.xml-->src
insert update delete queryForObject queryForList
八、jdbc、ibatis、hibernate的區別
九、為什么用ibatis
七、ibatis的作用
是一個o/r Mapping工具,與hibernate相似,讓我們的工作降低90%
八、ibatis的核心配置文件及核心類
a、核心配置文件
sqlmapclient.xml:說明數據庫的連接及具體o/r Mapping文件所在的位置。
具體的o/r mapping文件,其主要標簽如下,id屬性不可以重復:
insert:做增加
update
delete
select
procedure:執行存儲過程
statement:可以執行
b、核心類:
SqlMapClientBuilder:加載sqlmapclient.xml文件,生成一個SqlMapClient對象
SqlMapCient:一個會話,可以進行增、刪、改、查
queryForObject("操作串",obj);
queryForList("操作串",obj);
update("操作串",obj);
delete("操作串",obj);
insert("操作串",obj);
procedure("操作串",obj);
Reader reader=Resources.getFileAsReader("sqlmapclient.xml");
SqlMapClient sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader);
八、jdbc、ibatis、hibernate的區別
jdbc:手動
1、sql需要手寫
2、執行sql
1、在執行增、改、刪時,要將數據類的每個屬性
一個一個取出,通過setString或相關的set方法
將值設置到PreparedStatement中,再通過executeUpdate
執行。
2、在執行查時,要將ResultSet的信息一列一列取出
設置到數據類中,再一行一行取,設置到List或
Set中。
綜上:工作量大
ibatis:半自動
1、sql需要手寫
2、執行sql
1、在執行增、改、刪時,直接傳送一個對象。
2、在執行查詢時,直接返回一個對象或對象集合。
綜上:工作量少了90%
hibernate:全自動
1、sql不需要手寫
2、執行sql
1、在執行增、改、刪時,直接傳送一個對象。
2、在執行查詢時,直接返回一個對象或對象集合。
綜上:工作量少了95%
九、為什么用ibatis
1、當需要高度優化的sql時
2、如果用客戶給幾個select語句實現系統的功能,并沒有給
整個表。對于hibernate來說每個表必須有主鍵,是全表映射。
3、如果大量的業務邏輯寫在存儲過程中用ibatis。
spring與ibatis整合applicationContext.xml
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDatasource">
<property name="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
</property>
<property name="url"
value="jdbc:microsoft:sqlserver://localhost:1433;databaseName=pubs;selectMethod=cursor">
</property>
<property name="username" value="sa"></property>
</bean>
<!--
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:sqlmapclient.xml"></property>
</bean>
<bean id="customerDao" class="dao.impl.IbatisCustomerDaoImpl">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
<bean id="buyDao" class="dao.impl.IbatisBuyDaoImpl">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
-->
<bean id="realFacade" class="facade.Facade">
<property name="buyDao" ref="buyDao"></property>
<property name="customerDao" ref="customerDao"></property>
</bean>
<!-- 配置通用的代理-->
<bean id="abstractProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="select*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- 配置具體的facade代理 -->
<bean id="facade" parent="abstractProxy">
<property name="target" ref="realFacade"></property>
</bean>
<!--通過struts進行處理-->
<bean name="/insert" class="struts.action.InsertAction">
<property name="facade" ref="facade"></property>
</bean>
<bean name="/update" class="struts.action.UpdateAction">
<property name="facade" ref="facade"></property>
</bean>
<bean name="/delete" class="struts.action.DeleteAction">
<property name="facade" ref="facade"></property>
</bean>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -