Spring MVC+ibatis框架详解:[1]ibatis入门

2025-10-18 01:50:09

1、先打开MyEclipse,右键菜单, 新建一个JAVA工程,名称为ibatis-01,确定完成。

2、 在工程里面新建一个文件夹,存放我们的ibatis相关jar包,ibatis依赖的jar包很少,几乎没有,不像hibernate,依赖好几个jar包

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

3、 打开MyEclipse Database Exployer,作为MySQL客户端,创建一张表TB_USER,包含字段UID,USER_NAME,如图所示

CREATE TABLE   tb_user   (        UID VARCHAR(255),        USER_NAME VARCHAR(255)    )

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

4、 配置ibatis配置文件,如图

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"><sqlMapConfig> <!-- 读取数据配置文件 --> <properties resource="jdbc.properties" />  <!-- 基本的配置项  cacheModelsEnabled  是否使用缓存对象    lazyLoadingEnabled  是否懒加载    errorTracingEnabled  如果遇到异常是否打印    statementCachingEnabled SQL上下文是否进行缓存    useStatementNamespaces 是否使用命名空间    classInfoCacheEnabled  类信息是否需要缓存    enhancementEnabled    是否使用encache    maxRequests   最大请求数       maxSessions   最大接受的会话数    maxTransactions 最大的处理事务数量    defaultStatementTimeout SQL处理超时时间    配置的时间要注意: maxRequests > maxSessions > maxTransactions --> <settings cacheModelsEnabled="false" lazyLoadingEnabled="true" errorTracingEnabled="true"  statementCachingEnabled="true" useStatementNamespaces="true" classInfoCacheEnabled="true"    enhancementEnabled="true" defaultStatementTimeout="60"     maxRequests="512" maxSessions="256" maxTransactions="128" /> <!-- 事务管理器类型 --> <transactionManager type="JDBC">    <dataSource type="SIMPLE">              <property name="JDBC.Driver" value="${driver}" />              <property name="JDBC.ConnectionURL" value="${url}" />              <property name="JDBC.Username" value="${username}" />              <property name="JDBC.Password" value="${password}" />         </dataSource>   </transactionManager> <!-- JAVA POJO类映射文件,也是我们手写SQL的注入文件 --> <sqlMap resource="com/dfzq/ibatis01/domain/TB_USER_SqlMap.xml"/></sqlMapConfig>

5、 再编写TB_USER_SqlMap.xml文件,文件存放在com.dfzq.ibatis01.domain包下面,如图所示

<?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="TB_USER" >  <resultMap id="BaseResultMap" class="com.dfzq.ibatis01.domain.TbUser" >    <result column="UID" property="uid" jdbcType="VARCHAR" />    <result column="USER_NAME" property="userName" jdbcType="VARCHAR" />  </resultMap> <select id="queryUserByUid" parameterClass="java.lang.String" resultMap="BaseResultMap"> select UID, USER_NAME from TB_USER where UID=#uid:VARCHAR# </select> <insert id="addUser" parameterClass="com.dfzq.ibatis01.domain.TbUser">  insert into TB_USER(UID,USER_NAME)values(#uid:VARCHAR#,#userName:VARCHAR#) </insert> <update id="updateUser" parameterClass="com.dfzq.ibatis01.domain.TbUser">  update TB_USER set USER_NAME=#userName:VARCHAR# where UID=#uid:VARCHAR# </update> <delete id="deleteUser" parameterClass="java.lang.String">  delete from TB_USER where UID=#uid:VARCHAR# </delete></sqlMap>

6、 再在包com.dfzq.ibatis01.domain下面创建一个TbUser.java,与SQLMap的XML文件保持一致

package com.dfzq.ibatis01.domain;

public class TbUser{ private String uid; private String userName;

 public String getUid() {  return uid; } public void setUid(String uid) {  this.uid = uid; } public String getUserName() {  return userName; } public void setUserName(String userName) {  this.userName = userName; }}

7、 最后编写测试类,在包com.dfzq.ibatis01.runner下面创建IbatisRunner.java类,类里面包含一个main入口函数,如图所示

package com.dfzq.ibatis01.runner;

import java.io.IOException;import java.io.Reader;import java.sql.SQLException;

import com.dfzq.ibatis01.domain.TbUser;import com.ibatis.common.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class IbatisRunner {

 public static void main(String[] args) {     try {    //初始化SqlMapClient,读入配置文件,    Reader reader = Resources.getResourceAsReader("sql-map-config.xml");      SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);         //插入一条数据    TbUser user = new TbUser();    user.setUid("xiaoming");    user.setUserName("xiaoming");    sqlMapClient.insert("TB_USER.addUser",user);        //查询刚插入的数据    TbUser user2 = (TbUser) sqlMapClient.queryForObject("TB_USER.queryUserByUid", "xiaoming");    System.out.println("1______查询结果:uid="+user2.getUid()+",userName="+user2.getUserName());

    //修改刚刚查到的数据    user2.setUserName("xiaoming brother");    sqlMapClient.update("TB_USER.updateUser",user2);    user2 = (TbUser) sqlMapClient.queryForObject("TB_USER.queryUserByUid", "xiaoming");    System.out.println("2______查询结果:uid="+user2.getUid()+",userName="+user2.getUserName());        //删除数据,并验证是否已经删除成功    sqlMapClient.delete("TB_USER.deleteUser","xiaoming");    user2 = (TbUser) sqlMapClient.queryForObject("TB_USER.queryUserByUid", "xiaoming");    if(null!=user2){     System.out.println("3______查询结果:uid="+user2.getUid()+",userName="+user2.getUserName());    }    else    {     System.out.println("3______查询结果:xiaoming brother 已经被删除");    }        //释放资源    reader.close();  } catch (IOException e) {   e.printStackTrace();  } catch (SQLException e) {   e.printStackTrace();  }   } }

Spring MVC+ibatis框架详解:[1]ibatis入门

8、 最终的目录结构和文件如图所示

Spring MVC+ibatis框架详解:[1]ibatis入门

9、 运行IbatisRunner.java

Spring MVC+ibatis框架详解:[1]ibatis入门

Spring MVC+ibatis框架详解:[1]ibatis入门

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢