首先是SqlMapConfig.xml的配置
这里的数据库配置是基于mysql的
<?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>
<!--
cacheModelsEnabled是否启用SqlMapClient上的缓存机制,建议启动设置为true
enhancementEnabled是否针对pojo启用字节码增强机制以提升getter/setter的调用性能,避免使用java.Reflect所带来的性能开销,同时这也是Lazy Loading 带来了极大的性能提升,建议设置为true
errorTracingEnabled是否启用错误日志,在开发期间建议设置为true,方便调试
lazyLoadingEnabled 是否启用延迟加载机制,建议设置为true.
maxRequests 最大并发请求数(Statement并发数).
maxTransactions 最大并发事务数.
maxSessions 最大Session数,即当前最大允许的并发SqlMapClient数,maxSessions必须设定在maxTransactions与maxRequests之间.
useStatementNamespaces 是否使用Statement命名空间。这里的命名空间指的是映射文件中,sqlMap节点的namespace属性,
-->
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
errorTracingEnabled="true"
lazyLoadingEnabled="true"
/>
useStatementNamespaces="true"
<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:3306/test3"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value="123456"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/xzx/map/userMap.xml"/>
</sqlMapConfig>
然后配置userMap.xml
<?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="user">
<typeAlias alias="user" type="com.xzx.bean.User"/>
<typeAlias alias="score" type="com.xzx.bean.Score"/>
<resultMap id="userResult" class="user" >
<result property="id" column="id"/>
<result property="name" column="name"/>
</resultMap>
<resultMap id="userAndScoreResult" class="user" >
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="score" column="id" select="getScoreByUid"/>
</resultMap>
<resultMap id="scoreMap" class="score">
<result property="cid" column="cid"/>
<result property="uid" column="uid"/>
<result property="score" column="score"/>
</resultMap>
<select id="selectAll" resultMap="userResult">
select * from user
</select>
<select id="selectByScore" resultMap="userAndScoreResult">
select u.id,u.name,s.score from user u right join score s on u.id = s.uid
</select>
<select id="selectUserById" parameterClass="int" resultMap="userResult">
select * from user where id = #id#
</select>
<select id="getScoreByUid" parameterClass="int" resultClass="int">
select score from score where uid = #uid#
</select>
<delete id="deleteUserById" parameterClass="int">
delete from user where id = #id#
</delete>
<insert id="addUser" parameterClass="user">
insert into user (name) values(#name#)
</insert>
<update id="updateUser" parameterClass="user">
update user set name=#name# where id = #id#
</update>
</sqlMap>
最后是business如何使用
package com.xzx.ibatis.test;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import org.htmlparser.filters.HasParentFilter;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.xzx.bean.User;
public class IbatisTest {
public IbatisTest(){
init();
}
static SqlMapClient sqlMapClient ;
public static void init() {
try {
Reader reader = Resources.getResourceAsReader("/com/xzx/map/SqlMapConfig.xml");
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
selectAllUser();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static List selectAllUser() throws SQLException{
return sqlMapClient.queryForList("selectAll");
}
public static User selectUserById(Integer id) throws SQLException{
return (User)sqlMapClient.queryForList("selectUserById",id).get(0);
//return (User) sqlMapClient.queryForObject("selectUserById",1);
}
public static void deleteUserById(Integer id) throws SQLException{
sqlMapClient.delete("deleteUserById", id);
}
public static void addUser(User u) throws SQLException{
sqlMapClient.insert("addUser",u);
}
public static void updateUser (User u) throws SQLException{
sqlMapClient.update("updateUser", u);
}
public static List getStudentByScoreObj()throws SQLException{
return sqlMapClient.queryForList("selectByScore");
}
}
最近在学习ibatis。感觉还行。。。所以现在总结总结下
最新推荐文章于 2021-01-27 15:06:03 发布