通过DaoManagerBuilder加载dao.xml文件获取DaoManager对象
dao.xml 配置如下
<daoConfig>
<context>
<!-- 配置transactionManager 加载sql-map-config.xml文件
sql-map-config 指明ibatis数据库连接的一些属性 包括连接驱动user/pwd 和导入对数据库表操作的实体xml
-->
<transactionManager type="SQLMAP">
<property name="SqlMapConfigResource"
value="com/ibatis/jpetstore/persistence/sqlmapdao/sql/sql-map-config.xml"/>
</transactionManager>
<!-- 指定每一个dao类的接口和实现类 -->
<dao interface="dao的interface"
implementation="dao类impl"/>
</context>
</daoConfig>
sql-map-config 配置如下
<sqlMapConfig>
<properties resource="properties/database.properties"/> // 导入database.properties文件
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
maxSessions="64"
maxTransactions="8"
maxRequests="128"/>
// 设置数据库连接属性
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property value="${driver}" name="JDBC.Driver"/>
<property value="${url}" name="JDBC.ConnectionURL"/>
<property value="${username}" name="JDBC.Username"/>
<property value="${password}" name="JDBC.Password"/>
<property value="15" name="Pool.MaximumActiveConnections"/>
<property value="15" name="Pool.MaximumIdleConnections"/>
<property value="1000" name="Pool.MaximumWait"/>
</dataSource>
</transactionManager>
// 导入每一个数据库实体文件 文件指定实体类和数据表对应关系
<sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Account.xml"/>
...
</sqlMapConfig>
Account.xml配置如下
<sqlMap namespace="Account">
<typeAlias alias="account" type="com.ibatis.jpetstore.domain.Account"/>
// 指定每一个实体类与数据表字段之间对应关系
<resultMap id="accountResult" class="account">
<result property="username" column="USERID"/>
<result property="email" column="EMAIL"/>
<result property="firstName" column="FIRSTNAME"/>
<result property="lastName" column="LASTNAME"/>
...
</resultMap>
// 查询sql。在取得数据时根据id‘getUsernameList’ 取得结果
// 用法如 queryForList("getUsernameList", null);
<select id="getUsernameList" resultClass="string" parameterClass="account">
select USERNAME as value from SIGNON
</select>
<update id="updateSignon" parameterClass="account">
update SIGNON set PASSWORD = #password# where USERNAME = #username#
</update>
<insert id="insertSignon" parameterClass="account">
insert into SIGNON (PASSWORD,USERNAME) values (#password#, #username#)
</insert>
</sqlMap>
至此已配置好与数据库的对应关系,编写的Dao类需继承ibatis的SqlMapDaoTemplate类
里面查询使用类似queryForList("getUsernameList", null); updatexxxxx("updateyyyyy",account)语法
使用这个Dao类须用上面DaoManagerBuilder类获取到的DaoManager,
然后通过daoManager.getDao(Account.class)获得AccountDao对象。
项目中使用ibatis方法
最新推荐文章于 2020-06-25 20:50:05 发布