📄 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 + -