iBatis真是小而美

呵呵,刚才又完成了一个iBatis的Demo程序:)

iBatis的lib一共只有三个。需要其他的设置,可以自己将其他的package给加进去,感觉确实是明快。回想下Hibernate,一堆东西呢。

对刚才做的东西做个小结:)
对于每个实体类,需要设置对该类所的DAO方法。比如我的User.java->User.xml
都非常好理解。
<typeAlias alias="user" type="com.wzg.ibatis.User"/>

<select id="getUserByName" parameterClass="java.lang.String" resultClass="user">
    <![CDATA[
      select
        name,
        sex
      from t_user
      where name = #name#
    ]]>
  </select>

public static User getUserByName(String name) throws SQLException {
		return (User) sqlMapper.queryForObject("getUserByName", name);
	}

这里parameterClass是指参数的类;resultClass是指返回结果的类。getUserByName是后面sqlMapper.quereyForObject中的第一个参数,代表调用哪个方法,后面的name就是parameterClass所设置的类型,返回结果类型是User类型。

应该说是相当典型的:)

第二个文件是SqlMapConfig.xml文件,这个文件对iBatis的SqlMap进行了配置。具体是什么意思,可以看xiaxin的文档,相当清楚,呵呵,真是要感谢
他的分享。我发现自己已经看了他写的好几分文档了,哈哈。
  
       <settings
		cacheModelsEnabled="true"
		enhancementEnabled="true"
		lazyLoadingEnabled="true"
		errorTracingEnabled="true"
		maxRequests="32"
		maxSessions="10"
		maxTransactions="5"
		useStatementNamespaces="false"
	/>

对iBatis的ORM设置,下面是设置事务管理和映射文件。

<transactionManager type="JDBC" commitRequired="false">
    <dataSource type="SIMPLE">      
      <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="gg"/>
      <property name="Pool.MaximumActiveConnections" value="10"/>
	  <property name="Pool.MaximumIdleConnections" value="5"/>
	  <property name="Pool.MaximumCheckoutTime" value="120000"/>
	  <property name="Pool.TimeToWait" value="500"/>
	  <property name="Pool.PingQuery" value="select 1 from t_user"/>
	  <property name="Pool.PingEnabled" value="false"/>
	  <property name="Pool.PingConnectionsOlderThan" value="1"/>
	  <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
    </dataSource>
  </transactionManager>

<sqlMap resource="com/wzg/ibatis/sql/User.xml"/>


有一个问题,在这里怎么回滚事务呢?有下面两个,但是没有rollbackTransaction.
sqlMapper.startTransaction();
sqlMapper.commitTransaction();

你可能感兴趣的:(DAO,xml,Hibernate,ibatis,配置管理)