最近在学习ibatis。感觉还行。。。所以现在总结总结下

首先是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");
 }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值