概述
一、ibatis2.0
1、是什么?
Ibatis是一个轻量级的ORM框架。相对于Hibernate“一站式”的ORM解决方案而言,ibatis是一个“半自动化”的ORM实现。
2、有什么?
同Hibernate大致一样(Session、Transaction、Connection),ibatis中不叫SessionFactory而是叫SqlMapBuilder。
3、怎么做?
搭建环境:导入相关的jar包
--oracle(jdbc)驱动包
--ibatis的jar包
配置文件:
--jdbc连接的属性文件
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:数据库名称
username=用户名称
password=用户密码
--总配置文件SqlMapConfig.xml
--关于每个实体的映射文件(map文件)
(1)创建数据库,并创建相应的表格;
(2)开发中使用日志,在classpath中配置log4j.properties文件;
(3)配置文件:实例配置、基本代码和映射文件(文件名须与VO名一样):
实例配置:
<?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>
<settings
cacheModelsEnabled="true" <!-- 是否启用sqlMapClient上的缓存机制,建议设为true -->
enhancementEnabled="true" <!—是否针对POJO启用字节码增强机制以提升getter/setter调用性能,避免使用java反射所带来的性能开销,同时也为lazy loading带来很大的性能提升,建议设为true -->
lazyLoadingEnabled="true" <!-- 是否启用延迟装载机制,建议设为true -->
errorTracingEnabled="true" <!-- 是否启用错误机制,建议在开发期间设为true -->
maxRequests="32" <!—最大并发请求数 -->
maxSessions="10" <!—最大session数,即当前最大允许的并发SqlMapConfig数,介于最大并发请求和最大并发事务数之间-->
maxTransactions="5" <!—最大并发事务数 -->
useStatementNamespaces="false" <!-- 是否使用Statement命名空间 -->
/>
<!—事务管理器JDBC、JTA和EXTERNAL -->
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="JDBC.ConnectionURL"value="jdbc:oracle:thin:@localhost:1521:orcl2"/>
<property name="JDBC.Username" value="test"/>
<property name="JDBC.Password" value="test"/>
</dataSource>
</transactionManager>
<sqlMap resource="cn/javass/test/ibatis/UserModel.xml"/>
</sqlMapConfig>
映射文件配置如下:
<?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>
<!-- -- -- -- -- -- -- -- -- -- -- -- 声明别名-- -- -- -- -- -- -- -- -- -- -- -- -- -- -->
<typeAlias alias="um" type="cn.javass.test.ibatis.UserModel"/>
<typeAlias alias="qm" type="cn.javass.test.ibatis.QueryUserModel"/>
<!-- -- -- -- -- -- -- -- -- -- -- -- 声明别名结束- -- -- -- -- -- -- -- -- -- -- -- -- -->
<!-- -- -- -- -- -- -- -- -- -- -- -- 具体操作-- -- -- -- -- -- -- -- -- -- -- -- -- -- -->
<select id="getAllPage"<!-- -- -- id在java代码中使用的名字,代表所对应的具体操作--- -- -->
parameterClass="qm"<!-- -- -- 操作所需的参数类型--- -- -->
resultClass="um"> <!-- -- -- 操作返回类型--- -- -->
<!-- -- 通过<![CDATA[……]]>节点来避免Sql中与xml规范相冲突的字符对xml文件合法性造成影响 -- -->
<![CDATA[
select uuid from (
Select rownum r,uuid,name From tbl_test
)
where r > #fromNum# and r <= #toNum#
]]>
</select>
<select id="getAll"
parameterClass="qm"
resultClass="um">
<![CDATA[
select uuid,name from (
select rownum r,uuid,name from tbl_test
]]>
<!-- -- -- 动态拼接传入的条件 -- -- -->
<dynamic prepend="WHERE">
<isNotEmpty prepend="AND" property="name">
(name like #name#)
</isNotEmpty>
<isNotEmpty prepend="AND" property="uuid">
(uuid = #uuid#)
</isNotEmpty>
</dynamic>
<![CDATA[
)
where r > #fromNum# and r <= #toNum#
]]>
</select>
<select id="getUserByName"
parameterClass="java.lang.String"
resultClass="um">
<![CDATA[
select uuid,name from tbl_test where name = #name#
]]>
</select>
<update id="update"
parameterClass="um">
<![CDATA[
UPDATE tbl_test SET name=#name# WHERE uuid = #uuid#
]]>
</update>
<insert id="create"
parameterClass="um">
<![CDATA[
INSERT INTO tbl_test (uuid,name) VALUES (#uuid#,#name#)
]]>
</insert>
<delete id="delete"
parameterClass="java.lang.String">
<![CDATA[
delete from tbl_test where uuid = #uuid#
]]>
</delete>
<!-- -- -- -- -- -- -- -- -- -- -- --具体操作结束-- -- -- -- -- -- -- -- -- -- -- -- -- -- -->
</sqlMap>
POJO中如何使用:
XmlSqlMapClientBuilder作用是根据配置文件创建SqlMapClient实例;
SqlMapClient的获得:
String resource = “com/javass/test/SqlMapConfig.xml”;
Reader reader = Resources.getResourceAsReader(resource);
XmlSqlMapClientBuilder xmlBuilder = new XmlSqlMapClientBuilder();
SqlMapClient sqlMap = xmlBuilder.buildSqlMap(reader);
4、同Hibernate比较优缺点。
原创地址:http://blog.csdn.net/wjx85840948/article/details/4013674
最后
以上就是欣喜金鱼为你收集整理的ibatis2.0知识点的全部内容,希望文章能够帮你解决ibatis2.0知识点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复