jar包:
下载ibatis-2.3.0.677.jar
mysql驱动包
配置文件:
jdbc配置文件:db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=root
数据库表:
DROP TABLE IF EXISTS `test`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
主配置:SqlMapConfig.xml (像hibernate中的hibernate.cfg.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>
<properties resource="db.properties"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property value="${driver}" name="JDBC.Driver"/>
<property value="${url}" name="JDBC.ConnectionURL"/>
<property value="${username}" name="JDBC.Username"/>
<property value="${password}" name="JDBC.Password"/>
</dataSource>
</transactionManager>
<!--如果有包的话用'/'隔开-->
<sqlMap resource="Test.xml"/>
</sqlMapConfig>
类配置:Test.xml(像hibernate中的类名.hbm.xml不过那是对象映射,而这里配置的是所使用的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>
<!--alias用于起别名 如果type中有包名的话 alias可简化代码-->
<typeAlias alias="Test" type="Test"/>
<!-- id是个标识,不能重复,用于读取 就像spring里配置文件中bean中的id
resultClass是返回对象的类型 如果是list返回list中元素的类型-->
<select id="selectAll" resultClass="Test">
select * from test
</select>
<!-- parameterClass是参数的类型 参数用#param#表示-->
<select parameterClass="int" id="selectTestById" resultClass="Test">
select * from test where id=#id#
</select>
<!-- parameterClass不区分大小写 -->
<insert id="add" parameterClass="test">
insert into test(id,name) values(#id#,#name#)
</insert>
<!-- set多 用,隔开 -->
<update id="update" parameterClass="Test">
update test set name=#name# where id=#id#
</update>
<!-- 模糊查询必须加单引号或者双引号并且参数用$param$表示,%放到引号内参数外-->
<select id="fuzzyRetrieve" parameterClass="String" resultClass="Test">
select * from test where name like '%$name$%'
</select>
<!-- 也可以在外部传参用%param%,配置用'$param$'表示
<select id="fuzzyRetrieve" parameterClass="String" resultClass="Test">
select * from test where name like '$name$'
</select>
-->
<delete id="delete" parameterClass="int">
delete from test where id=#id#
</delete>
</sqlMap>
javabean:
public class Test {
private int id = 0;
private String name = null;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
接口:
import java.util.List;
public interface TestDao {
public void add(Test test) throws Exception;
public void delete(int id) throws Exception;
public void update(Test test) throws Exception;
public List<Test>query() throws Exception;
public List<Test> query(String name) throws Exception;
public Test query(int id) throws Exception;
public void addBySequence(Test test) throws Exception;
}
接口实现:
import java.io.IOException;
import java.io.Reader;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class ITestDaoImpl implements TestDao {
private static SqlMapClient sqlMapClient = null;
static{
try {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void add(Test test) throws Exception {
sqlMapClient.insert("add",test);
}
public void delete(int id) throws Exception {
sqlMapClient.delete("delete",id);
}
@SuppressWarnings("unchecked")
public List<Test> query() throws Exception {
List<Test>list = sqlMapClient.queryForList("selectAll");
return list;
}
@SuppressWarnings("unchecked")
public List<Test> query(String name) throws Exception {
List<Test>list = sqlMapClient.queryForList("fuzzyRetrieve",name);
return list;
}
public Test query(int id) throws Exception {
Test test = null;
test = (Test)sqlMapClient.queryForObject("selectTestById",id);
return test;
}
public void update(Test test) throws Exception {
sqlMapClient.update("update", test);
}
以上即配置完成,直接使用mian函数测试,也可使用junit测试
ibatis缺点
sql需要自己写
参数数量只能一个
ibatis优点
减少代码
简单
sql语句与程序代码分离
简化项目中的分工
增强了移植性
分享到:
相关推荐
3. **易于学习和集成**: Ibatis 的 API 设计简单,易于上手,且可以方便地与 Spring 等其他框架集成。 **在实际项目中的应用** 在实际开发中,Ibatis 常常被用于数据访问层,与 Service 层、DAO 层配合使用。例如...
《Ibatis应用实例》 iBatis是一个轻量级的持久层框架,它作为O/R Mapping解决方案,与Hibernate等其他框架相比,其最大的优势在于简洁易用。对于不需要复杂功能的项目,iBatis是理想的选择,它允许开发者自由地编写...
ibatis简单应用及配置
**Ibatis简介** Ibatis,又称为MyBatis,是一个优秀的持久层框架,它支持定制化SQL、存储过程以及...通过学习和实践这个简单的CRUD例子,开发者可以快速掌握Ibatis的基本操作,并将其应用到实际项目中,提升开发效率。
**Ibatis简单实例** 在"IbatisTest"这个简单实例中,我们通常会经历以下步骤: 1. **引入依赖**: 在项目中引入Ibatis的jar包,包括核心库mybatis-x.x.x.jar和相关数据库驱动。 2. **配置SqlMapConfig.xml**: 配置...
这个"webwork+spring+ibatis简单实例"提供了如何整合这三个框架来创建一个功能完整的应用程序的示例。以下是关于这三个框架及其整合方式的详细说明: **WebWork**: WebWork是一个轻量级的MVC(模型-视图-控制器)...
文件“iBatis和Hibernate的区别.doc”可能包含更详细的对比分析,但我们可以简单概括如下: 1. 数据访问方式:MyBatis允许直接编写SQL,灵活性高,而Hibernate则是基于对象关系映射(ORM),提供了一种面向对象的...
**标题:“iBATIS简单例子”** iBATIS是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,从而避免了Java代码与SQL的耦合,提高了开发效率。在这个简单的例子中,我们将深入理解iBATIS的基本...
首先,Spring是一个全面的企业级应用框架,它简化了开发过程,通过提供依赖注入(DI)和面向切面编程(AOP)等核心特性,使得组件间的耦合度降低。而iBatis则是一个轻量级的持久层框架,它将SQL语句与Java代码分离,...
### ibatis和Hibernate的简单介绍 #### 一、ibatis简介 ibatis是Apache软件基金会的一个开源项目,它提供了一种轻量级的Java持久层框架。ibatis的核心功能是将SQL语句与Java代码分离,使开发人员可以更加专注于...
Struts2、Spring2和iBatis是Java Web开发中常用的三大框架,它们结合使用可以构建高效、可...理解这个简单的登录例子,有助于深入学习Struts2、Spring2和iBatis的整合应用,为构建更复杂的Web应用程序打下坚实基础。
在本项目"Ibatis简单增删改查可用"中,我们看到的是一个基于VS2010开发的Ibatis应用实例,它包含了数据库和多样的数据库连接配置,用户可以根据自己的需求选择合适的配置文件进行使用。这个项目旨在提供一个快速上手...
在实际应用中,使用iBatis进行数据库操作主要包括以下步骤: 1. 加载配置:通过SqlSessionFactoryBuilder创建SqlSessionFactory,然后通过SqlSessionFactory获取SqlSession对象。 2. 执行SQL:使用SqlSession的`...
在整合Spring时,我们可以使用Spring-Struts2插件,使得Action类可以直接从Spring容器中获取服务层对象,这样既可以利用Spring的依赖注入特性,又保持了Struts2的简单易用性。 接下来是iBatis,它是一个轻量级的...
4. **事务管理**: IBatis提供了简单的事务控制,可以通过编程方式或者配置方式来管理事务的提交、回滚等操作。 5. **缓存机制**: 内置的缓存机制可以提高数据访问效率,减少对数据库的频繁访问。 **使用步骤** 1....
本篇文章将详细介绍Ibatis的简单操作,并结合实际的Java测试代码进行解析。 Ibatis是由Clinton Begin创建的开源项目,它并非是一个完整的ORM框架,而是一个SQL映射框架,主要负责SQL语句的编写与执行。Ibatis的主要...
iBatis(现在称为MyBatis)是由Apache软件基金会维护的一个开源项目,它解决了Java应用程序直接操作数据库时面临的许多问题,如SQL的动态生成、事务管理等。iBatis的核心理念是将SQL语句写在XML配置文件中,通过Java...
MyBatis保留了Ibatis的核心理念,即SQL映射和简单的对象关系映射,同时也引入了更强大的功能,如动态SQL、注解支持以及对Spring框架的更好集成。即便如此,理解Ibatis的基本概念有助于更好地掌握MyBatis,因为两者...
在这个"struts2+spring+ibatis简单登录例子"中,我们将深入理解这三个框架如何协同工作以实现一个基本的用户登录功能。 1. **Struts2**:作为MVC框架,Struts2主要处理HTTP请求,它定义了用户界面和业务逻辑之间的...