这是很久很久前的代码(主要发布代码),学生时代的痴狂吧……自己的第一个Ibatis案例,今天放博客,一来提醒自己最初的梦想和追求的毅力以激励自己更好地成长,二来给正打算学习Ibatis的童鞋一个参考……
         一、准备工作
         开发Ibatis应用第一步即是搭建自己开发的环境,主要包括:
         安装数据库,这里选择mysql数据库;
         创建应用,个人采用MyEclipse工具进行创建;
         将mysql的驱动程序mysql-connector-java-5.0.8-bin.jar拷贝到应用的lib文件夹下;   
         将Ibatis的jar包ibatis-2.3.4.726拷贝到lib文件夹下面。
         二、创建JavaBean类,为表现效果,本程序中还复写了toString方法,个人写的User.java如下:
package com.lch.ibatistest.entity;
public class User {
 private int id;
 private String uname;
 private String upass;
 public String toString() {
  return "姓名:" + uname + "密码:" + upass+"\n";
 }
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getUname() {
  return uname;
 }
 public void setUname(String uname) {
  this.uname = uname;
 }
 public String getUpass() {
  return upass;
 }
 public void setUpass(String upass) {
  this.upass = upass;
 }
}
         三、配置工作
         以上工作完成之后,即开始配置了,配置可以根据自己所下的ibatis中doc下的范例进行,个人程序配置如下:
         web.xml
         web.xml为创建系统默认设置;
         SqlMapConfig.xml
         在应用的src目录下创建SqlMapConfig.xml文件,文件配置数据库连接信息和应用应用的实体映射文件如User.xml,具体描述请参考网上其它资料,内容如下:
<?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>
 <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/test?characterEncoding=gb2312" />
   <property name="JDBC.Username" value="root" />
   <property name="JDBC.Password" value="198974" />
  </dataSource>
 </transactionManager>
 <sqlMap resource="com/lch/ibatistest/entity/User.xml" />
</sqlMapConfig>
         信息配置文件User.xml
         在实体User.java同目录下建立一个User.xml的文件,文件中将javaBean实体和数据库的映射做好配置,同时编写sql操作语句,个人应用中如下:
<?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.lch.ibatistest.entity.User" />
 <!-- 当实体属性名与数据库字段名不一致时的处理方法   resultMap="userMap" -->
 <resultMap class="User" id="userMap">
  <!-- 属性:uname  字段:username -->
  <result property="uname" column="username" />
  <result property="upass" column="userpass" />
  <result property="id" column="id" />
 </resultMap>
 <!-- 简单查询 -->
 <select id="selectAllUser" resultMap="userMap">
  select * from user
 </select>
 <!-- 通过用户Id查询 -->
 <select id="selectById" resultClass="User" parameterClass="int">
  select * from user where id=#id#
 </select>
 <!-- 第一种分页查询 -->
 <select id="selectByPage" resultClass="User" parameterClass="java.util.Map">
  select * from user limit #page#,#rows#
 </select>
 <select id="selectCount" resultClass="int">
  <![CDATA[
   select count(*) from user
  ]]>
 </select>
 <select id="selectUserByPage" parameterClass="java.util.Map"
  resultClass="User">
  select * from user limit #begin#,#max#
 </select>
 <select id="selectByRole" parameterClass="int" resultMap="userMap">
  select * from user,role where role.id=#roleId#
 </select>
 <!-- 动态sql -->
 <select id="DongTaiSelect" resultMap="userMap" parameterClass="user">
 select * from user where
 </select>
 <!-- 插入用户 -->
 <insert id="insertUser" parameterClass="User">
  insert into user(uname,upass) values(#uname#,#upass#)
  <!--
   这里的#uname#,#upass#是实体类的属性
  -->
 </insert>
 <!-- Update User, using the User parameter class -->
 <update id="updateUser" parameterClass="User">
  update user set
  uname =
  #uname#,
  upass = #upass#
  where
  id = #id#
  </update>
 <!-- Delete User, using an integer as the parameter class -->
 <delete id="deleteUserById" parameterClass="int">
  delete from user
  where id = #id#
  </delete>
</sqlMap>
 
         四、测试代码
         以上工作完成后即可对应用进行测试:
         业务类UserManager.java主要实现业务逻辑的测试,代码如下:
package test;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class UserManager {
 
 public List getUserByPage(int begin,int max) throws Exception{
  Reader reader=Resources.getResourceAsReader("SqlMapConfig.xml");
  SqlMapClient client=SqlMapClientBuilder.buildSqlMapClient(reader);
  Map map=new HashMap();
  map.put("begin", begin);
  map.put("max", max);
  List list= client.queryForList("selectUserByPage",map);
  return list;
 }
 public int getUserCount() throws Exception{
  Reader reader=Resources.getResourceAsReader("SqlMapConfig.xml");
  SqlMapClient client=SqlMapClientBuilder.buildSqlMapClient(reader);
  
  int count = Integer.parseInt(client.queryForObject("selectCount").toString());
  return count;
 }
 
 public int getUserPage(int rows) throws Exception{
  int count = this.getUserCount();
  int maxPage = count%rows==0 ? count/rows : count/rows+1;
  return maxPage;
 }
}
       OK,这就是第一个小案例了……
       至于理论上的知识,我们一起期待吧……