`

Ibatis简单应用

阅读更多

 

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语句与程序代码分离

简化项目中的分工

增强了移植性

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ibatis框架简单应用

    3. **易于学习和集成**: Ibatis 的 API 设计简单,易于上手,且可以方便地与 Spring 等其他框架集成。 **在实际项目中的应用** 在实际开发中,Ibatis 常常被用于数据访问层,与 Service 层、DAO 层配合使用。例如...

    ibatis

    ibatis简单应用及配置

    Ibatis应用实例.docx

    《Ibatis应用实例》 iBatis是一个轻量级的持久层框架,它作为O/R Mapping解决方案,与Hibernate等其他框架相比,其最大的优势在于简洁易用。对于不需要复杂功能的项目,iBatis是理想的选择,它允许开发者自由地编写...

    ibatis简单CRUD例子

    **Ibatis简介** Ibatis,又称为MyBatis,是一个优秀的持久层框架,它支持定制化SQL、存储过程以及...通过学习和实践这个简单的CRUD例子,开发者可以快速掌握Ibatis的基本操作,并将其应用到实际项目中,提升开发效率。

    ibatis简单实例

    **Ibatis简单实例** 在"IbatisTest"这个简单实例中,我们通常会经历以下步骤: 1. **引入依赖**: 在项目中引入Ibatis的jar包,包括核心库mybatis-x.x.x.jar和相关数据库驱动。 2. **配置SqlMapConfig.xml**: 配置...

    webwork+spring+ibatis简单实例

    这个"webwork+spring+ibatis简单实例"提供了如何整合这三个框架来创建一个功能完整的应用程序的示例。以下是关于这三个框架及其整合方式的详细说明: **WebWork**: WebWork是一个轻量级的MVC(模型-视图-控制器)...

    ibatis在web工程中的应用笔记

    文件“iBatis和Hibernate的区别.doc”可能包含更详细的对比分析,但我们可以简单概括如下: 1. 数据访问方式:MyBatis允许直接编写SQL,灵活性高,而Hibernate则是基于对象关系映射(ORM),提供了一种面向对象的...

    iBATIS简单例子

    **标题:“iBATIS简单例子”** iBATIS是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,从而避免了Java代码与SQL的耦合,提高了开发效率。在这个简单的例子中,我们将深入理解iBATIS的基本...

    spring-ibatis简单集成

    首先,Spring是一个全面的企业级应用框架,它简化了开发过程,通过提供依赖注入(DI)和面向切面编程(AOP)等核心特性,使得组件间的耦合度降低。而iBatis则是一个轻量级的持久层框架,它将SQL语句与Java代码分离,...

    ibatis和hibernate的简单介绍

    ### ibatis和Hibernate的简单介绍 #### 一、ibatis简介 ibatis是Apache软件基金会的一个开源项目,它提供了一种轻量级的Java持久层框架。ibatis的核心功能是将SQL语句与Java代码分离,使开发人员可以更加专注于...

    struts2+spring2+ibatis简单登录例子

    Struts2、Spring2和iBatis是Java Web开发中常用的三大框架,它们结合使用可以构建高效、可...理解这个简单的登录例子,有助于深入学习Struts2、Spring2和iBatis的整合应用,为构建更复杂的Web应用程序打下坚实基础。

    ibatis资料ibatis资料

    iBATIS(发音为“eye-batts”)在Java世界中一度非常流行,它的核心理念是分离应用程序的业务逻辑层和数据访问层。它不是完整的ORM(对象关系映射)解决方案,而是更注重SQL的控制权,使得开发者可以编写高效的、...

    Ibatis 2 增删改简单应用配置示例说明

    总的来说,Ibatis 2的简单应用配置涉及了环境搭建、数据源配置、数据库表创建、POJO类和映射文件的编写。通过这些配置,我们可以方便地进行数据库的增删改查操作,而无需处理底层的JDBC代码。这种松耦合的方式使得...

    Ibatis简单增删改查可用

    在本项目"Ibatis简单增删改查可用"中,我们看到的是一个基于VS2010开发的Ibatis应用实例,它包含了数据库和多样的数据库连接配置,用户可以根据自己的需求选择合适的配置文件进行使用。这个项目旨在提供一个快速上手...

    iBatis简单入门教程.

    在实际应用中,使用iBatis进行数据库操作主要包括以下步骤: 1. 加载配置:通过SqlSessionFactoryBuilder创建SqlSessionFactory,然后通过SqlSessionFactory获取SqlSession对象。 2. 执行SQL:使用SqlSession的`...

    spring+struts2+ibatis简单例子

    在整合Spring时,我们可以使用Spring-Struts2插件,使得Action类可以直接从Spring容器中获取服务层对象,这样既可以利用Spring的依赖注入特性,又保持了Struts2的简单易用性。 接下来是iBatis,它是一个轻量级的...

    IBatis简单使用

    4. **事务管理**: IBatis提供了简单的事务控制,可以通过编程方式或者配置方式来管理事务的提交、回滚等操作。 5. **缓存机制**: 内置的缓存机制可以提高数据访问效率,减少对数据库的频繁访问。 **使用步骤** 1....

    ibatis持久层简单操作

    本篇文章将详细介绍Ibatis的简单操作,并结合实际的Java测试代码进行解析。 Ibatis是由Clinton Begin创建的开源项目,它并非是一个完整的ORM框架,而是一个SQL映射框架,主要负责SQL语句的编写与执行。Ibatis的主要...

    最简单的iBatis入门例子

    iBatis(现在称为MyBatis)是由Apache软件基金会维护的一个开源项目,它解决了Java应用程序直接操作数据库时面临的许多问题,如SQL的动态生成、事务管理等。iBatis的核心理念是将SQL语句写在XML配置文件中,通过Java...

    ibatis的一个小例子

    MyBatis保留了Ibatis的核心理念,即SQL映射和简单的对象关系映射,同时也引入了更强大的功能,如动态SQL、注解支持以及对Spring框架的更好集成。即便如此,理解Ibatis的基本概念有助于更好地掌握MyBatis,因为两者...

Global site tag (gtag.js) - Google Analytics