Spring MVC+ibatis框架详解:[1]ibatis入门
1、先打开MyEclipse,右键菜单, 新建一个JAVA工程,名称为ibatis-01,确定完成。
2、 在工程里面新建一个文件夹,存放我们的ibatis相关jar包,ibatis依赖的jar包很少,几乎没有,不像hibernate,依赖好几个jar包
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/2e66f9ef28066b010c42b6f43df39187021cf337.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/9881b1fce186242f0fed11ab35e434daf15ee837.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/4b626771fe1d96d8a886e4942ccd0c6efaf2e137.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/bab5c45872dade49dd900ee226042e6816e9d537.jpg)
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入门](https://exp-picture.cdn.bcebos.com/cd93a56651598540dbb58156b5a23a42a17ac437.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/a31e1214c27bd2825f1624f23cb1eef97ebd3634.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/023cff37c97622bc9a5a4ad3a05fd54604962834.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/c99358fe474ec283c020be5bbe4f50b8b53e1c34.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/92dd32f7dfb2dc1931b3deaf95def4dca1391034.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/cfadcdd96975f2c4e539dcf78f0148fe1f420634.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/059057299a883913fb45695a26bcbe2f46707c34.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/de9bfa3b3b86022152f716e2d8bbf82065fb7234.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/54a89daee8d7592ac94f65cc9f31dfb6336c6734.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/e3d059e833e0397204a33e5eb586304860435634.jpg)
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入门](https://exp-picture.cdn.bcebos.com/5e4e9c2b74ee1c320db8d49807f1d8a727334b34.jpg)
8、 最终的目录结构和文件如图所示
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/7a3e980e7c75e5f4af556bb9b1ceaad7736bbc34.jpg)
9、 运行IbatisRunner.java
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/65390a23beb9763e7e623e626ad06de89b61b034.jpg)
![Spring MVC+ibatis框架详解:[1]ibatis入门](https://exp-picture.cdn.bcebos.com/cfa9ae04541bd10f9886882eba0e1799e82aa734.jpg)