Ibatis 入门
1.创建数据库脚本
drop database sample;
create database sample;
use sample;
drop table t_user;
create table t_user(
id int not null auto_increment,
name varchar(50) default null,
sex int(11) default null,
primary key (id)
);
insert into t_user values (1,'1',1),(2,'2',2),(3,'3',3),(4,'4',4),(5,'5',5);
2.编写Ibaits必须的配置文件SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="true" enhancementEnabled="true"
lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
<property name="JDBC.ConnectionURL"
value="jdbc:mysql://localhost/sample" />
<property name="JDBC.Username" value="root" />
<property name="JDBC.Password" value="mysqladmin" />
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="120000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery"
value="select 1 from sample" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
<sqlMap resource="com/ctgusec/zhupan/maps/User.xml" />
</sqlMapConfig>
3.编写实体类
package com.ctgusec.zhupan.model;
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private Integer sex;
.
.
.
4.在编写数据库表到实体类的映射
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
<typeAlias alias="user" type="com.ctgusec.zhupan.model.User" />
<select id="getUser" parameterClass="java.lang.String" resultClass="user">
<![CDATA[ select name,sex from t_user where name=#name# ]]>
</select>
<select id="getAllUser" resultClass="user">
<![CDATA[ select name sex from t_user ]]>
</select>
<update id="updateUser" parameterClass="user">
<![CDATA[ update t_user set name=#name#,sex=#sex# where id=#id#]]>
</update>
<insert id="insertUser" parameterClass="user">
<![CDATA[INSERT INTO t_user ( name, sex) VALUES ( #name#, #sex# )]]>
</insert>
<delete id="deleteUser" parameterClass="java.lang.Integer">
<![CDATA[delete from t_user where id=#value#]]>
</delete>
</sqlMap>
5.测试
package com.ctgusec.zhupan;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ctgusec.zhupan.model.User;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class ExampleMain {
//删除的操作
public static boolean delete() {
boolean flag = true;
String resource = "com/ctgusec/zhupan/maps/SqlMapConfig.xml";
SqlMapClient sqlMap = null;
try {
Reader reader = Resources.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
flag = false;
e.printStackTrace();
}
try {
sqlMap.startTransaction();
sqlMap.delete("deleteUser",new Integer(7));
sqlMap.commitTransaction();
} catch (Exception e) {
flag = false;
e.printStackTrace();
} finally {
try {
sqlMap.endTransaction();
} catch (SQLException e) {
flag = false;
e.printStackTrace();
}
}
return flag;
}
//增加的操作
public static boolean add() {
boolean flag = true;
String resource = "com/ctgusec/zhupan/maps/SqlMapConfig.xml";
SqlMapClient sqlMap = null;
try {
Reader reader = Resources.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
flag = false;
e.printStackTrace();
}
try {
sqlMap.startTransaction();
User user = new User();
user.setName("xc");
user.setSex(new Integer(1));
sqlMap.insert("insertUser", user);
sqlMap.commitTransaction();
} catch (Exception e) {
flag = false;
e.printStackTrace();
} finally {
try {
sqlMap.endTransaction();
} catch (SQLException e) {
flag = false;
e.printStackTrace();
}
}
return flag;
}
//修改的操作
public static void update() {
// 首先初始化iBatis获得一个SqlMapClient对象
String resource = "com/ctgusec/zhupan/maps/SqlMapConfig.xml";
com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;
try {
java.io.Reader reader = com.ibatis.common.resources.Resources
.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
e.printStackTrace();
}
// sqlMap系统初始化完毕,开始执行update操作
try {
sqlMap.startTransaction();
User user = new User();
user.setId(new Integer(1));
user.setName("zhangsan");
user.setSex(new Integer(1));
sqlMap.update("updateUser", user);
sqlMap.commitTransaction();
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
sqlMap.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//查询的操作
public static List getUser() {
// 首先初始化iBatis获得一个SqlMapClient对象
String resource = "com/ctgusec/zhupan/maps/SqlMapConfig.xml";
com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;
List user = null;
try {
java.io.Reader reader = com.ibatis.common.resources.Resources
.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
e.printStackTrace();
}
// sqlMap系统初始化完毕,开始执行getAllUser操作
try {
sqlMap.startTransaction();
user = sqlMap.queryForList("getAllUser", null);
sqlMap.commitTransaction();
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
sqlMap.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
return user;
}
public static void main(String[] args) {
// System.out.println(delete());
// System.out.println(add());
// System.out.println("testtest");
// update();
// List user=getUser();
// for(int i=0;i<user.size();i++)
// {
// System.out.print(((User)user.get(i)).getName()+"、");
// }
}
}
6.其中所使用的包
commons-dbcp.jar
commons-logging.jar
commons-loggin-api.jar
commons-pool.jar
hsqldb.jar
ibatis-common-2.jar
ibatis-dao-2.jar
ibatis-sqlmap-2.jar
mysql-connector-java-3.1.12-bin.jar
分享到:
相关推荐
WCF 简单入门案例 总共 TCP HTTP PIPE 三种协议 QQ:574311505 欢迎交流
drools的简单入门案例.doc
springboot集成kafka简单入门案例,介绍了怎么使用springboot来使用kafka
Activiti工作流源码,简单入门案例,适合新手了解Activiti的工作流程。
使用activeMQ实现生产者消费者
ODBC方法VC++链接Access数据库简单入门案例(MFC源码)
简单dubbo入门案例,方便理解dubbo和zookeeper作用,学会dubbo项目的搭建,资源附带源码和sql文件,具体搭建过程参看博客:https://blog.csdn.net/lairikeqi/article/details/94631615
该入门案例使用maven整合了mybatis,mysql数据库,通过数据库查询数据进行展示,实现了restful风格的访问模式,导入项目时选择maven项目导入即可
简单入门threejs案例
案例十 简单图书管理系统 案例十一 计算机招聘 案例十二 小孩出列 案例十三 饮料自动售货机 案例十四 趣味矩阵 案例十五 模拟自动取款机(ATM)案例十六 超市收银系统 案例十七 数据结构CAI——哈希表演示 案例十八 ...
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender ...
ASP.NET入门案例源码-简易留言本
rabbitMQ代码案例 简单入门,适合初学者使用,里面讲的很详细
Struts2入门案例 实现简单的
我根据书上写了个入门案例,里面把Django从0到1开发一个简单网页步骤都全部整理出来了,其中要踩的坑也写出来了,欢迎下载
hibernate简单的入门案例 ,使用mysql数据库,在配置文件中配置好相应的信息后,自动在mysql中创建表
Hibernate入门案例,提供MyEclipse和Eclipse的项目源文件以及war文件
vue简单入门小案例,适合刚入门vue,学前后端分离的童鞋!
struts2.0 入门案例、简单的struts2.0入门案例 2.0配置包,基础
jqgrid简单入门案例,一个简单的jqgrid demo,支持多种主题,包括jqueryUI,bootStrapUI,适合作为入门参考