`
独善其身008
  • 浏览: 168113 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

Ibatis配置文件详解总结和操作方法

 
阅读更多

<?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="Note">
<!--namespacenamespace是该<sqlMap>的命名空间,因为SQL Map映射文件可以有多个,
而对于SQL Map来说所有映射文件都是全局性的。这意味着在SQL Map中的标识只能是惟一的,
利用namespace和标识的全限定名就可以进行区别,前提是,配置文件中的useStatementNamespaces
属性必须设置为true。 -->
 <typeAlias alias="note" type="com.pk.po.Note" />
 <!- 这个type是全局的命名类  alias相当于type的缩写  这样在后面用到的时候都可以直接用note->
下面是各种类型的MapSql 查询语句
 <insert id="insertNote" parameterClass="note">
 <!- parameterClass 是参数类型  跟alias是同一个->
 <!-resultClass 是返回数据的数据类型->
  <![CDATA[
  insert into note
  (title,author,content) values(#title#,#author#,#content#)
  ]]>
 </insert>

 <delete id="deleteNoteById" parameterClass="java.lang.Integer">
 <![CDATA[
  delete from  note where id = #id#
  ]]>
 </delete>

 <select id="selectCount" resultClass="java.lang.Integer">
 <![CDATA[
  select Count(*) from note
  ]]>
 </select>

 <select id="selectNoteById" parameterClass="java.lang.Integer"
  resultClass="note">
  <![CDATA[
  select * from note where id = #id#
  ]]>
 </select>

 <update id="updateNote" parameterClass="note">
 <![CDATA[
 update note set content = #content#, author= #author#,title = #title#
 where id = #id#
 ]]>
 </update>

 <select id="queryNoteByTitle" parameterClass="java.lang.String"
  resultClass="note">
 <![CDATA[
select * from note where title like concat('%', #title#,'%')
 ]]>
 </select>
<!-拼凑Sql语句->
 <select id="queryNote" parameterClass="note" resultClass="note">
  select * from note
  <dynamic prepend="WHERE">
   <isNotNull prepend="AND" property="title">
    title = #title#
   </isNotNull>
   <isNotNull prepend="AND" property="author">
    author = #author#
   </isNotNull>
   <isNotNull prepend="AND" property="content">
    content = #content#
   </isNotNull>
  </dynamic>
 </select>

</sqlMap>

 

ibatis :SqlMapConfig 配置文件详解 
     ibatis 与Hibernate 一样只不过 Hibernate是全自动化,ibatis 半自动化。ibatis 有比较灵活的空间可以自由写sql语句。

     ibatis主要包括

     一 sqlMapConfig.xml配置文件,

     二 pojo用来与数据库打交道的持久层对象,也是我们通过ibatis要操作的对象。

      三 sqlMap.xml配置文件用来自己手动填写sql语句,然后再sqlMapConfig.xml文件中添加这个资源的位置。最后在dao中把参数(也就是pojo)传到该配置文件中。

      1.sqlMapConfig.xml配置文件详解:

       Xml代码
<?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE sqlMapConfig    
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"    
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">   
<sqlMapConfig>   
  <settings    
   cacheModelsEnabled="true" <!--是否启用缓存机制-->   
   lazyLoadingEnabled="true" <!--是否启用延迟加载机制-->   
   enhancementEnabled="true" <!--是否启用字节码增强机制-->   
   errorTracingEnabled="true" <!--是否启用错误处理机制-->   
   maxRequests="32" <!--最大并发请求数-->   
   maxSessions="10" <!--最大Session数-->   
   maxTransactions="5" <!--最大并发事务数-->   
   useStatementNamespaces="true"/> <!--是否启用名称空间-->   
  <transactionManager type="JDBC"> <!--定义了ibatis的事务管理器有3中(JDBC,JTA,EXTERNAL)-->   
   <dataSource type="SIMPLE"> <!--type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI)-->   
    <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>   
    <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/test"/>   
    <property name="JDBC.Username" value="root"/>   
    <property name="JDBC.Password" value="wyq"/>   
    <property name="Pool.MaximumActiveConnections" value="10" /> <!--连接池维持的最大容量-->   
    <property name="Pool.MaximumIdleConnections" value="5"/> <!--连接池允许挂起的最大连接-->   
    <property name="Pool.MaximumCheckoutTime" value="120000"/> <!--连接被某个任务所允许占用的最大时间-->   
    <property name="TimeToWait" value="500"/> <!--线程允许等待的最大时间-->   
        
</dataSource>   
  </transactionManager>   
  <sqlMap resource="com/wyq/map/userMap.xml"/>   
</sqlMapConfig>   
JNDI的配置大部分都在应用服务器中进行,所以在ibatis中的配置相对简单    
(1)jdbc事务控制的JNDI配置    
     <transctionManager type="JDBC">   
        <dataSource type="JNDI">   
            <property name="DataSource" value="java:comp/env/jdbc/myDataSource"/>   
        </dataSource>   
    </transctionManager>   
(2)JTA事务控制的JNDI配置    
     <transctionManager type="JTA">   
        <property name="UserTransaction" value="java:/ctx/con/UserTransaction"/>   
        <dataSource type="JNDI">   
            <property name="DataSource" value="java:comp/env/jdbc/myDataSource"/>   
        </dataSource>   
    </transctionManager>   
  <sqlMap resource="com/wyq/map/userMap.xml"/>     指定了映射文件的位置。与hibernate 中hibernate.cfg.xml 无异

sqlMap节点指定了映射文件的位置。

分享到:
评论
1 楼 THZOP 2012-03-05  
真全、、、借用了、、、

相关推荐

Global site tag (gtag.js) - Google Analytics