ibatis入门程序6大步骤
ibatis调用存储过程
iBatis调用存储过程1. 什么是iBatisiBatis是一种持久层框架,用于简化Java应用程序与关系型数据库之间的交互。
它提供了一种简单的方式来执行数据库操作,使开发人员能够更加专注于业务逻辑的实现,而无需过多关注底层数据库的细节。
2. 存储过程的概念存储过程是一组预定义的SQL语句集合,被存储在数据库中并可以通过名称进行调用。
存储过程可以接受参数,并可以返回结果集或输出参数。
它提供了一种封装和重用SQL代码的方式,提高了数据库的性能和安全性。
3. iBatis调用存储过程的步骤使用iBatis调用存储过程需要以下步骤:3.1 配置数据源首先,需要在iBatis的配置文件中配置数据库连接信息,包括数据库的URL、用户名、密码等。
这样iBatis才能够连接到数据库。
3.2 定义存储过程的映射在iBatis的映射文件中,需要定义存储过程的映射关系。
这包括存储过程的名称、参数列表、以及结果集的映射方式等。
3.3 调用存储过程在Java代码中,可以使用iBatis提供的API来调用存储过程。
首先,需要获取一个iBatis的SqlMapClient对象,然后通过该对象来执行存储过程的调用。
// 获取SqlMapClient对象SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);// 调用存储过程sqlMapClient.queryForObject("proc_get_user", parameterObject);3.4 处理存储过程的结果在执行存储过程之后,可以通过返回的结果对象来获取存储过程的执行结果。
根据存储过程的定义,可能会返回一个结果集或者输出参数。
// 获取存储过程的执行结果ResultObject result = (ResultObject) sqlMapClient.queryForObject("proc_get_user", parameterObject);// 处理结果...4. 示例:调用存储过程获取用户信息下面以一个示例来说明如何使用iBatis调用存储过程来获取用户信息。
ibaties 高级用法
ibaties 高级用法【最新版】目录1.ibaties 的概念与作用2.ibaties 的基本用法3.ibaties 的高级用法4.ibaties 的使用示例5.总结正文1.ibaties 的概念与作用ibaties 是一款功能强大的 Python 库,主要用于自动化测试、Web 测试和 API 测试。
它可以帮助开发人员和测试人员快速编写测试脚本,简化测试流程,提高测试效率。
通过模拟用户操作,ibaties 可以检查 Web 应用或 API 的功能是否符合预期,以便及时发现和修复问题。
2.ibaties 的基本用法ibaties 的基本用法主要包括以下几个方面:- 安装与配置:通过 pip 安装 ibaties,然后在项目中导入相关模块。
- 创建测试环境:ibaties 提供了一个可扩展的测试环境,用户可以根据需要添加各种模块,如数据库、文件系统等。
- 编写测试脚本:通过继承 ibaties 提供的测试类,编写测试脚本,并使用断言方法来检查测试结果。
- 运行测试:通过调用 ibaties 提供的测试运行器来执行测试脚本。
- 查看测试报告:ibaties 可以生成详细的测试报告,包括测试用例的执行情况、测试结果等。
3.ibaties 的高级用法除了基本的测试功能外,ibaties 还提供了许多高级用法,如下所示:- 集成其他测试工具:ibaties 可以与 Selenium、unittest 等其他测试工具集成,实现更复杂的测试需求。
- 编写自定义测试插件:ibaties 支持编写自定义测试插件,用户可以根据需要扩展 ibaties 的功能。
- 使用测试模板:ibaties 提供了丰富的测试模板,用户可以根据模板快速创建测试用例。
- 执行分布式测试:ibaties 支持分布式测试,可以同时运行多台机器上的测试用例。
4.ibaties 的使用示例以下是一个使用 ibaties 进行 Web 测试的简单示例:```pythonfrom ibaties import Mocker, Page, TestCaseclass TestLogin(TestCase):@Mocker.mock_http_response({"code": 200})def test_login_success(self):page = Page("login")page.open()page.fill("username", "test")page.fill("password", "test")page.click("submit")page.assert_text("登录成功")if __name__ == "__main__":TestCase.test_run()```在这个示例中,我们使用 ibaties 的 TestCase 类创建了一个测试用例,通过 Mocker 模块模拟了 HTTP 响应,使用 Page 类操作页面元素,并使用断言方法检查登录成功的提示信息。
IBatis-课堂笔记案例
第二章 IBatis 的增删改查
一、IBatis 对单个的表进行增删改查,以及综合查询 工程步骤: 1、创建工程 2、将 ibatis.jar,数据库驱动包导入工程
3、在 src 目录下编写 ibatis.properties 文件,用于保存数据库连接信息---------》属性文件 user=xzclove pwd=xzclove url=jdbc\:oracle\:thin\:@localhost\:1521\:ORCL driver=oracle.jdbc.driver.OracleDriver 4、 在 src 目录下编写 ibatis 的主配置文件 sqlMapConfig.xml 中的 hibernate.cfg.xml) sqlMapConfig.xml 可以包含下面内容: A、属性文件的位置 B、数据库连接的基本信息 C、实体映射文件 <sqlMapConfig> <properties resource="ibatis.properties"/><!--加载属性文件 --> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.ConnectionURL" value="${url}"/> <property name="JDBC.Driver" value="${driver}"/> <property name="ername" value="${user}"/> <property name="JDBC.Password" value="${pwd}"/> </dataSource> </transactionManager> <sqlMap/> </sqlMapConfig> 5、编写实体类 Inf.java public class Inf implements Serializable { private Integer id; private String name; private Integer age; 6、编写实体映射文件 选择 DTD SQL Map 2.0 ( 这里面包含对 Inf 对象,进行各种增、删、改、查的语句 ) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPEsqlMap PUBLIC "-////DTD SQL Map 2.0//EN" "/dtd/sql-map-2.dtd" > 选择 DTD SQL Map Config 2.0(作用类似于 Hibernate
iBatis简明教程及快速入门
iBatis简明教程及快速入门iBatis是又一个O/R Mapping解决方案,j2ee的O/R方案真是多,和Hibernate 相比,iBatis最大的特点就是小巧,上手很快。
如果你不需要太多复杂的功能,iBatis是能满足你的要求又足够灵活的最简单的解决方案。
iBatis最大的特点是简单,最新版本2.0(下载),和1.0相比,主要改动在XML配置文件上,不过,只要有SQL基础,相信你不用教程也能看明白。
下面我们看一个最简单的例子入门。
我们先建一个表Account,包括字段username, varchar(20), pk和password, varchar(20),随便填入一些数据。
然后编写iBatis必须的配置文件sql-map-config.xml,文件名随意,内容如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfigPUBLIC "-////DTD SQL Map Config 2.0//EN""/dtd/sql-map-config-2.dtd"><sqlMapConfig><settingscacheModelsEnabled="true"enhancementEnabled="true"lazyLoadingEnabled="true"maxRequests="32"maxSessions="10"maxTransactions="5"useStatementNamespaces="false"/><transactionManager type="JDBC" ><dataSource type="SIMPLE"><property name="JDBC.Driver"value="sun.jdbc.odbc.JdbcOdbcDriver"/><property name="JDBC.ConnectionURL"value="jdbc:odbc:Blog"/><property name="ername" value="admin"/><property name="JDBC.Password" value=""/> </dataSource></transactionManager><sqlMap resource="Account.xml" /></sqlMapConfig>其他部分你不用管它,我是直接copy的示例配置,只需注意红色部分,配置好数据源即可。
ibaties 动态sql 解析
ibaties 动态sql 解析iBATIS (现在已经更名为MyBatis) 是一款流行的Java 持久化框架,具有强大的动态SQL 解析功能。
动态SQL 在开发过程中经常用到,它允许我们创建灵活的SQL 查询,根据不同的条件生成不同的SQL 语句。
本文将以"iBATIS 动态SQL 解析" 为主题,详细介绍如何使用iBATIS 动态SQL 解析功能进行动态SQL 查询。
第一步: 环境准备在开始使用iBATIS 的动态SQL 解析功能之前,首先需要准备开发环境。
我们需要安装Java JDK 和一个Java 开发环境,例如Eclipse 或者IntelliJ IDEA。
另外,还需要在项目中引入iBATIS 的相关依赖库。
第二步: 配置数据源和iBATIS在准备好开发环境后,接下来需要配置数据源和iBATIS。
首先,我们需要连接到数据库,可以选择MySQL、Oracle 或者其他主流的数据库。
在项目中,可以通过配置数据源的方式连接到数据库。
接下来,需要在项目中引入iBATIS 的配置文件,通常命名为"SqlMapConfig.xml"。
在该配置文件中,我们需要配置数据库连接信息、iBATIS 的相关设置以及动态SQL 查询语句的配置。
第三步: 创建实体类和映射文件在配置好数据源和iBATIS 后,接下来需要创建实体类和映射文件。
实体类是与数据库中的表对应的Java 类,我们需要定义实体类的属性和相应的getter 和setter 方法。
映射文件是iBATIS 中的核心组件,用于描述数据库表和实体类之间的映射关系。
在映射文件中,我们需要定义SQL 查询语句,包括静态SQL 和动态SQL。
其中,动态SQL 部分使用iBATIS 的"动态SQL 标签" 实现。
第四步: 使用动态SQL在准备好实体类和映射文件后,我们可以开始使用iBATIS 的动态SQL 功能。
ibatis教程简介
ibatis教程简介为什么要使用Ibatis?在系统的开发过程中,你可能碰到如下一些问题:什么是Ibatis?半自动化ORM框架相对于Hiberna te等“一站式”ORM框架,Ibatis是一种“半自动化”的ORM 框架实现。
也就是说,ORM概念中,Ibatis只强调O/R部分的内容,而将M(mapping)这部分概念进行了淡化。
因为它将对于SQL语句的操作权,最终交还给了程序员。
上面提到的“半自动化”这个概念可能大家理解起来比较生涩,通过我们对Hibernate 或EJB3的了解,可以发现在它们都是针对POJO到数据库提供了一种较为完整的封装。
程序只需要对POJO进行操作,就达到操作数据库持久层的目的,我们程序员对SQL语句都不需要太多的了解,因为Hibrenate会根椐POJO的映射关系生成对应的SQL语句,最终调用JDBC完成操作。
大部分情况,Hibernate这种操作机制无往不利,但是在特定的情况下,这种“一站式”的解决方案却不见得灵光。
我们来思考在开发过程中的一些问题:什么是Ibatis?使用Ibatis解决前述问题使用“半自动化”化的Ibatis框架,可以解决前面系统开发过程中存在的问题。
针对Hibernate在POJO与数据库之间建立映射,以及自动生成SQL并执行的过程,Ibatis着力点,则在于POJO与SQL语句之间的映射。
也就是说,Ibatis在运行过程中不会自动生成SQL语句执行,具体的SQL语句由程序员编写,然后通过映射配置文件,将SQL语句所需的参数,获得的返回结果字段映射到指定的POJO。
使用Ibatis提供的ORM机制,在业务逻辑层实现人员而言,操作的是JAVA对象,这一层面与Hibernate机制中一样的。
对于具体的数据库操作,Hibernate会自动生成SQL并执行,而Ibatis要求开发人员具体编写SQL语句。
Ibatis通过在数据库移植性和SQL开发工作量上面做出了让步,换来了为系统设计更多的灵活性和自由空间。
ibatis调用存储过程
ibatis调用存储过程iBatis是一种数据映射框架,用于简化Java应用程序与数据库之间的交互。
它允许开发人员将SQL查询和存储过程映射到Java方法,并提供了针对这些方法的自动参数传递和结果映射。
调用存储过程是一种在数据库中执行事先定义好的一组操作的方式。
存储过程允许在应用程序中调用并传递参数,并且可以返回结果集。
在iBatis中调用存储过程有以下几个步骤:1. 配置iBatis环境:首先我们需要在iBatis的配置文件中配置数据库连接信息。
这包括数据库驱动类,数据库URL,用户名和密码等。
```xml<settings><setting name="cacheEnabled" value="true"/><setting name="lazyLoadingEnabled" value="true"/><setting name="multipleResultSetsEnabled" value="true"/><setting name="useColumnLabel" value="true"/><setting name="mapUnderscoreToCamelCase" value="false"/><setting name="localCacheScope" value="SESSION"/><setting name="jdbcTypeForNull" value="OTHER"/><setting name="lazyLoadTriggerMethods"value="equals,clone,hashCode,toString"/></settings><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="url"value="jdbc:mysql://localhost:3306/mydb"/><property name="username" value="root"/><property name="password" value="password"/></dataSource></environment></environments><mappers></mappers>```2.定义存储过程:在数据库中创建存储过程。
ibatis 原理
ibatis 原理iBATIS的原理是通过SQL映射文件将Java对象与数据库操作进行映射,通过数据源配置获取数据库连接,通过SQL执行和结果映射将SQL语句执行并将结果映射到Java对象中,最后通过缓存管理提高数据库访问性能。
具体来说,iBATIS在执行SQL语句时,首先会从配置文件中获取数据源信息,然后根据映射关系将SQL语句执行并返回结果。
这个过程包括以下几个步骤:1.配置数据源:在应用程序启动时,需要配置数据源信息,包括数据库的URL、用户名和密码等。
iBATIS支持多种数据源类型,如JDBC、JNDI和DataSource等。
2.定义SQL映射文件:iBATIS使用XML格式的SQL映射文件来定义SQL语句和Java对象之间的映射关系。
映射文件中包含了SQL 语句的定义,以及与Java对象之间的映射关系。
开发人员可以在映射文件中定义各种操作,如插入、更新、删除和查询等。
3.执行SQL语句:当应用程序需要执行某个SQL语句时,iBATIS会根据映射关系将SQL语句执行。
这个过程包括获取数据库连接、执行SQL语句和关闭连接等操作。
4.结果映射:iBATIS会将SQL语句执行的结果映射到Java对象中。
这个过程包括将查询结果与Java对象进行匹配,并将匹配结果赋值给Java对象的属性。
5.缓存管理:iBATIS还提供了缓存管理功能,可以缓存查询结果以提高数据库访问性能。
当应用程序再次需要查询相同的数据时,iBATIS会直接从缓存中获取结果,而不是再次访问数据库。
总之,iBATIS通过将Java对象与数据库操作进行映射,使得开发人员可以更加方便地进行数据库操作,同时减少了编写重复的代码量。
ibatis教程简介
创建SqlMapClient对象使用 对象使用Ibatis 创建 对象使用
通过使用 Person obj=new Person(); static{ 使用SqlMapClient对象完成持久化的步骤 使用 对象完成持久化的步骤 com\ibatis\common\reso obj.setPname("测试 测试 Person obj=null; 测试2"); try{,读取 urces\Resources对象来读 对象来读 1,读取SqlMapConfig.xml文件 结合问题 文件 obj.setSex("0");resource= try{ Reader 取SqlMapConfig.xml文件 文件 2,创建 ,创建SqlMapClientBuilder对象 client.insert("insertPerson", obj); 对象 obj=(Person)client.queryForObject("getPersonOfObject", 1); Resources.getResourceAsReader("SqlMapConfig.xml"); (要求位于 要求位于classpath下面 下面) 要求位于 下面 mitTransaction();//提交事务 提交事务 }catch(Exception k){ 3,创建 ,创建SqlMapClient对象 对象 client=SqlMapClientBuilder.buildSqlMapClient(resource); }catch(Exception k){ k){ 对象相关 k.printStackTrace(); 4,调用 对象相关API 通过 ,调用SqlMapClient对象相关 }catch(Exception 通过ibatis查询方法 查询方法 k.printStackTrace(); } k.printStackTrace(); }finally{ } try{ } client.endTransaction();//结束事务 结束事务 }catch(Exception k){ k.printStackTrace(); } } 通过ibatis实现保存方法 通过 实现保存方法
IBatis教程
IBatis教程iBATIS教程⼀.iBATIS官⽅⽹站:⽬前官⽅发布的.net部分组件:DataMapper1.6.1[MD5][PGP](Apache General Availability)DataAccess1.9.1[MD5][PGP](Apache General Availability)Source Revision513437[MD5][PGP]⼆.前⾔:iBATIS框架有助于帮助开发⼈员在利⽤Java或.NET进⾏应⽤程序开发时更好的使⽤数据库。
iBATIS DataMapper(数据映射)使⽤XML⽂件来存储数据库中的存储过程或者SQL语句,因此,可以说iBATIS DataMapper就是依赖于对象、XML、SQL。
在iBATIS DataMapper框架下,既可以使⽤SQL基本语句,也可以使⽤存储过程。
iBATIS框架的⽬标就是⽤20%的编码达到80%的数据访问功能。
三.iBATIS DataMapper Version1.6.0的改进(1)解决了带有group by的Select语句中N+1问题;(2)通过节点标识,增加了对SQL⽚段的⽀持(3)增加了对字典查询IDictionaryQueryForDictionary(...)的⽀持(4)允许存储过程⽆参数映射;(5)删除了⼏个不再使⽤的⽅法:Configure(XmlDocument document),Configure(),Configure(string resource),ConfigureAndWatch(ConfigureHandler configureDelegate),ConfigureAndWatch(string resource,ConfigureHandler configureDelegate)(6)允许通过扩展ISqlMapper+,允许使⽤⾃定义ISqlMapper;(7)允许⽤户⾃定义缓存;(8)原版本中的QueryForPaginatedList⽅法不再使⽤;四、iBATIS DataMapper⼯作流程说明:(1)参数提供——把⼀个对象或者⼀个基本类型作为参数,这些参数⽤于运⾏SQL语句或存储过程运⾏时的参数。
iBatis简单入门手册整理
iBatis简单入门整理手册iBatis简介:iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快。
如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis 已经改名为Mybatis 了。
官网为:/搭建iBatis开发环境:1 、导入相关的jar 包,ibatis-2.3.0.677.jar 、mysql-connector-java-5.1.6-bin.jar2 、编写配置文件:Jdbc 连接的属性文件总配置文件, SqlMapConfig.xml关于每个实体的映射文件(Map 文件)Demo:Student.java:1.package com.iflytek.entity;2.3.import java.sql.Date;4.5./**6.* @author xudongwang 2011-12-317.*8.* Email:xdwangiflytek@9.*10.*/11.publicclass Student {12.// 注意这里需要保证有一个无参构造方法,因为包括Hibernate在内的映射都是使用反射的,如果没有无参构造可能会出现问题13.privateint id;14.private String name;15.private Date birth;16.privatefloat score;17.18.publicint getId() {19.return id;20.}21.22.publicvoid setId(int id) {23.this.id = id;24.}25.26.public String getName() {27.return name;28.}29.30.publicvoid setName(String name) { = name;32.}33.34.public Date getBirth() {35.return birth;36.}37.38.publicvoid setBirth(Date birth) {39.this.birth = birth;40.}41.42.publicfloat getScore() {43.return score;44.}45.46.publicvoid setScore(float score) {47.this.score = score;48.}49.50.@Override51.public String toString() {52.return"id=" + id + "\tname=" + name + "\tmajor=" + birth + "\tscore="53.+ score + "\n";54.}55.56.}SqlMap.properties :1.driver=com.mysql.jdbc.Driver2.url=jdbc:mysql://localhost:3306/ibatisername=root4.password=123Student.xml :1.<?xml version="1.0"encoding="UTF-8"?>2.<!DOCTYPE sqlMap PUBLIC "-////DTD SQL Map 2.0//EN"3."/dtd/sql-map-2.dtd">4.5.<sqlMap>6.<!-- 通过typeAlias使得我们在下面使用Student实体类的时候不需要写包名 -->7.<typeAlias alias="Student"type="com.iflytek.entity.Student"/>8.9.<!-- 这样以后改了sql,就不需要去改java代码了 -->10.<!-- id表示select里的sql语句,resultClass表示返回结果的类型 -->11.<select id="selectAllStudent"resultClass="Student">12.select * from13.tbl_student14.</select>15.16.<!-- parameterClass表示参数的内容 -->17.<!-- #表示这是一个外部调用的需要传进的参数,可以理解为占位符 -->18.<select id="selectStudentById"parameterClass="int"resultClass="Student">19.select * from tbl_student where id=#id#20.</select>21.22.<!-- 注意这里的resultClass类型,使用Student类型取决于queryForList还是queryForObject -->23.<select id="selectStudentByName"parameterClass="String"24.resultClass="Student">25.select name,birth,score from tbl_student where name like26.'%$name$%'27.</select>28.29.<insert id="addStudent"parameterClass="Student">30.insert into31.tbl_student(name,birth,score) values32.(#name#,#birth#,#score#)33.<selectKey resultClass="int"keyProperty="id">34.select @@identity as inserted35.<!-- 这里需要说明一下不同的数据库主键的生成,对各自的数据库有不同的方式: -->36.<!-- mysql:SELECT LAST_INSERT_ID() AS VALUE -->37.<!-- mssql:select @@IDENTITY as value -->38.<!-- oracle:SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL -->39.<!-- 还有一点需要注意的是不同的数据库生产商生成主键的方式不一样,有些是预先生成(pre-generate)主键的,如Oracle和PostgreSQL。
ibatis教程
SQLMAP API(3)
List queryForList(ng.String id); List queryForList(ng.String id, int skip, int max); List queryForList(ng.String id, ng.Object parameterObject); List queryForList(ng.String id, ng.Object parameterObject, int skip, int max);
二,sqlmapconfig.xml
它是使用iBATIS的起点,负责把所有的SQL 映射文件组合在一起.用于配置文件中告 诉iBATIS如何连接数据库,以及获取哪些 SQL映射文件.
sqlMapConfig标签
<properties>主配置文件之外提供一个名值对列如: <properties resource="db.properties" /> <settings> 添加各种属性如:延迟加载,使用限定名
SQLMAP API(4)
Object insert(String id, Object parameterObject); Object insert(String id); int update(String id, Object parameterObject) ; int update(String id) ; int delete(String id, Object parameterObject) ; int delete(String id);
四,事务处理
1.什么是事务 2.事务的特性ACID 原子性,一致性,隔离性,持久性 3.iBATIS独特的事务机制
ibatis学习笔记
ibatis学习笔记1、搭建环境:(1)、创建ibatis_test项目。
(2)、添加SQL2000驱动包msbase.jar、mssqlserver.jar、msutil.jar和ibatis-2.3.3.720.jar包。
2、配置文件:(1)、JDBC连接属性文件:在src目录下添加SqlMap.properties属性文件,主要包括JDBC连接的主要信息,driver=,url=,username=,password=,也可以见JDBC连接的信息直接写到总配置文件中。
(2)、配置每个实体的映射文件(map文件):如Student.xml文件,其主要是包括对实体进行CURD操作的SQL语句的映射。
(3)、添加总配置文件:(参见SqlMapConfig.xml文件)其主要功能是导入SqlMap.properties和Student.xml文件,进行统一管理3、创建相应的类:(1)、建立实体类Student.java类。
(2)、建立管理类接口StudentDao,和实现类StudentDaoImpl4、测试CRUD操作:(1)、在StudentDaoImpl类中添加读取配置(2)、测试查询所有信息的方法queryAllStudent(),在Student.xml文件中配置SQL 语句映射信息。
例如:<“-- 查找所有用户 --><select id="selectAllStudents" resultClass="Student" >select * from t_student;</select>在queryAllStudent()方法中使用sqlMapClient的queryForList()方法进行调用:public List<Student> queryAllStudent() {List<Student> studntList = null;try {studntList=sqlMapClient.queryForList("selectAllStudents");} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return studntList;}4、ibatis使用HashMap传递SQL多个参数:虽然ibatai sql map可以配置多个参数,但sqlMap只能传入一个参数,我们有两种方式,一是把我们的参数封装成一个类,通过set/get取值的方式给sql map注入参数,二是通过hashMap(可以组合一些不是同一个pojo的参数有优势):范例:<“-- 使用Map解决多参数问题,多条件的查询 --><statement id="selectStudentByMap" parameterClass="java.util.Map" resultClass="Student">select sid,sname ,major,birth,scorefrom t_studentwhere sname like '%$sname$%'and score=#score#</statement>注意:Map中的值key和类型要和SQL语句的的参数名称和类型一样。
myibatis详细步骤
<generatorConfiguration>
<classPathEntrylocation="mysql-connector-java-5.1.6-bin.jar"/>
<contextid="DB2Tables"targetRuntime="MyBatis3">
2、创建工程,引入jar包
3、运行generator自动生成的jar包
先创建config.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEgeneratorConfiguration
PUBLIC"-////DTD MyBatis Generator Configuration 1.0//EN"
publicvoidupdatevalue(intid, String username) {
SqlSession session = GetSqlSessionFactory.getInstance().getSqlSessionFactory().openSession();
User user =newUser();
}
publicSqlSessionFactory getSqlSessionFactory() {
returnsqlSessionFactory;
}
}
6、编写DAO(接口省)
publicclassDealUserDAOImplimplementsIDealUserDAO{
Ibatis讲义
Ibatis入门iBatis本是apache的一个开源项目,2010年这个项目由apache sofeware foundation 迁移到了google code,并且改名为mybatis。
iBATIS 是一个O/R Mapping的解决方案iBATIS实现SQL Maps和Data Access Objects(DAO),iBATIS 的特点是小巧, 简单. 但是要求需要熟悉SQL , 不像hibernate可以自动生成sql.1.创建工程2.导入ibatis、数据库驱动、数据库连接池的jaribatis-2.3.4.726.jarmysql-connector-java-5.1.5-bin.jar3.导入配置文件ibatis-2.3.4.726\simple_example\com\mydomain\data\SqlMapConfig.xmlibatis-2.3.4.726\simple_example\com\mydomain\data\ Account.xmldtd 定义文件ibatis-2.3.4.726\src\com\ibatis\sqlmap\engine\builder\xml\sql-map-config-2.dtd /dtd/sql-map-config-2.dtd4.在总配置文件中配置事务管理数据源5.测试数据源是否配置成功6.封装SqlMapClient7.使用Ibatis编写一个简单的查询程序:查询所有的员工信息编写po对象创建po对象的映射文件,在文件中定义sql使用SqlMapClient查询结果打印结果集Ibatis 进阶插入<insert> int insert(String id, Object parameterObject)更新<update> int update(String id, Object parameterObject)删除<delete> int delete(String id, Object parameterObject)查询<select> List queryForList(String id, Object parameterObject)多条件查询分页Ibatis与Spring集成Spring为Ibatis提供什么服务a、创建数据源b、创建SqlMapClientc、管理实务d、创建单例的Dao组件,注入Ibatis的SqlMapClient1.导入Spring的jarspring.jar、commons-logging.jar、log4j-1.2.15.jaraspectjrt.jar、aspectjweaver.jar2.创建或拷贝配置文件log4j.propertiesapplicationContext.xml3.将ibatis的数据源和事务交由spring管理a、移除SqlMapConfig.xml的数据源和事务配置信息b、在applicationContext.xml配置数据源、SqlMapClient、事务管理器、事务特性、事务切面4.修改dao组件a、移除dao中的单例代码,移除SqlMapClient的赋值代码,为SqlMapClient生产setter和getter方法b、在applicationContext.xml配置dao组件。
iBatis教程中文版
iBatis教程中文版1.显示数据库所有数据iBatis是个像Hibernate, JDO,EJB一类的数据持久框架,它能将对象映射为SQL 语句.它是个轻量级的框架并且持久性API适合持久化POJO.iBatis也与Hibernate, JDO不同,因为它使用存储过程和现有的SQL来处理数据库.本节我们将向你讲述如何配置iBatis来运行一个小型程序.既然一次性将所有知识全部解释很难,我们索性把本教程分为几个单独的例子来陈述.该例是关于如何从数据库读取数据并将结果显示在你的命令提示符上.在第二个例子中你将学习如何添加更多的数据到数据库中,在此之后的第三个例子将会向你展示如何通过iBatis从记录中删除数据.现在的第一个例子将会向你展示如何从数据库中读取记录,我们需要一个数据库来执行查询,所以我们使用MySQL5.0作为这个例子的数据库.这里我们将要检索一些人的contact的信息, contact的表结构给出如下 :根据Contact表我们需要创建一个POJO类,在我们的例子中,数据库vin有一个表Contact,包括四个字段 :idfirstNamelastNameemailContact.java为了映射配置我们需要创建SqlMapConfig.xml来指定如下信息 : ?针对映射语句的命名空间前缀我们的数据库将使用JDBC来进行访问针对MySQL的JDBC驱动为" com.mysql.jdbc.Driver"连接URL为"jdbc:mysql://192.168.10.112:3306/vin"用户名与密码分别为"root"和"root"我们的SQL语句描述在"Contact.xml"SqlMapConfig.xml映射文件在下面给出,它主要负责为我们的程序执行SQL查询. Contact.xml的代码如下 :现在为了显示数据库中的数据我们需要创建一个类----IbatisExample,它从SqlMapConfig.xml中读取配置并在你的控制台输出所有数据. IbatisExample.java的代码如下 :为了运行该例,你需要遵循如下步骤 :在你的MySQL数据库中创建表Contact下载iBatis的JAR文件(ibatis-common-2.jar,ibatis-dao-2.jar,ib atis-sqlmap-2.jar),并将其放置在你的lib目录中设置类路径创建Contact.java将其编译创建Contact.java创建SqlMapConfig.xml创建IbatisExample.java并将其编译执行IbatisExample文件输出 :你的命令提示符应该有像这样的输出 :2.向数据库插入数据iBatis最棒的特点就是它的简洁,这也是唯一令它在任何数据库程序中更容易使用的原因.iBatis使得通过Java或者任何其它的Microsoft的程序来使用数据库变得非常简单.本章我们将会通过一个例子向你介绍如何向数据库插入一行数据.我们使用MySQL作为本例的数据库,和我们上一章中使用的是一样的.这是"Contact"表和我们上一章使用过的两个文件:"Contact.java"和"SqlMapC onfig.xml"Contact.javaSqlMapConfig.xml我们使用标签来映射SQL语句,在该标签中我们定义了一个"id",它将上面的代码意味着表中被插入数据的下一行. Contact.xml如何执行本例 :1.创建Contact.java并将其编译2.创建Contact.xml和SqlMapConfig.xml3.创建IbatisInsertion.java4.执行IbatisInsertion类文件,结果将在你的命令提示符上输出如下 : "Record Inserted Successfully"输出 :3.iBatis删除操作教程我希望通过上面的例子,你能完全懂得如何向数据库执行插入或者查询操作.所以在本例中你将学习到如何通过iBatis在数据库中删除数据.所以你需要分析代码并清楚的理解在这些代码里到底发生了什么.然而你绝对不需要再创建一个不同的数据库,虽然你知道我们使用上一个MySQL作为数据库而且你已经知道了我们的表名是Contact.但你可以选择是使用这个数据库还是再创建一个,这都由你决定!你唯一需要确定的就是你定义的表名是正确的,否则将会产生Bug.如果你从本iBatis教程的开始学下来的,那么你是不需要修改代码的.仅仅将给定的代码拷贝到文件夹并执行,最终删除数据库表中的数据.正如我之前提到的,在iBatis的本章,我们将要从Ctract表中删除记录,我们使用MySQL的数据库"vin"我们的Contact.java和SqlMapConfig.xm与上一个例子中的是一样的. Contact.java上面几行代码删除了Contract表中的所有记录,这里定义的id"deleteAll"会在以后在IbatisDeletion类中执行数据库的查询操作.Contact.xml我们需要引入下面的包 :mon.resourcescom.ibatis.sqlmap.client上面的代码能从"SqlMapConfig.xml"中读取配置信息, IbatisDeletion.java的代码如下 :IbatisDeletion.java按照如下步骤执行本例 :创建Contact.xml和SqlMapConfig.xml创建Contract.java并将其编译创建IbatisDeletion.java并将其编译执行IbatisDeletion你将会在你的命令提示符中得到如下输出 :4.更新表中的数据对任何数据库程序来说,添加,更新,删除都是十分常见且必要的特性.在该教程里我们已经讲解了使用iBatis在Java中进行插入和删除操作,现在本章将讲述如何使用iBatis在数据表中更新数据.在iBatis中执行一条更新语句是非常简单的.为了更新数据你得在SQL映射文件"Contact.xml"中添加SQL的update 语句.iBatis更新语句例子 :Contact.javaSqlMapConfig.xmliBatis更新查询在我们的例子中,我们通过参数中指定的id更新了表中的数据,因此对于"id"我们将"parameterClass"的属性值分配为"long".Contact.xml现在我们可以在Java程序中通过如下代码执行更新操作了 : sqlMap.update("Contact.updateById",contactId);IbatisUpdate.java代码如下 :为了执行update的例子,遵照如下步骤: 创建Contact.java和SqlMapConfig.xml 编译Contact.java创建Contact.xml创建IbatisUpdate.java并将其编译执行IbatisUpdate类文件,你会得到如下输出 :5.iBatis ResultMap例子如果你使用iBatis的Result Map来工作,那么你一定知道iBatis 的Result Map 是用来提供数据库查询结果和它的对象属性之间的映射的,这是iBatis最常见且重要的特性了.本章仅是一个ResultMap的简单介绍.我们的Contact.java and SqlMapConfig.xml文件和我们的上一个例子是一样的,没有任何变化. Contact POJO的代码如下 : Contact.java。
IBATIS入门文档
Ibatis简介
一.什么是ibatis
iBatis是一个”半自动化”的O/R Mapping解决方案,和Hibernate相比,iBatis最大的特点就是小巧,上手快
“半自动化”是相对Hibernate等提供了全面数据库封装机制的”全自动化”
ORM 实现而言,“全自动”ORM 实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。
而ibatis 的着力点,则在于POJO 与 SQL之间的映射关系,具体的SQL 需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。
二. 如何使用
1.ibatis的jar包下载地址: /dist/ibatis/binaries/ibatis.java/
选择下载版本为ibatis-2.3.4.726.zip
2.创建一个project,搭好环境
3.以实例”Apple”来做一个ibatis的小例子,添加apple的属性
4.创建一个xml文件对应实例Apple,取名Apple.xml,并进行映射配置
5. 创建一张db_apple表
6. 配置Apple.xml将实例Apple的属性db_apple表的字段映射起来
7. 编写sql语句,查询db_apple表中的所有数据,注意格式
8.我们还需要一个连接数据库的配置文件,SqlMapConfig.xml
SqlMapConfig.xml配置内容
9. 编写业务逻辑代码,并编写main方法进行测试
至此,一个简单的ibatis例子建立了。
iBATIS教程
2.2 XML配置--SqlMap
查询
Select
火龙果整理
2.2 XML配置--SqlMap
procedure
用{call proc_name()}来调用数据库中的存储过程
火龙果整理
2.2 XML配置--SqlMap
statement
<statement>标签是个通用标签.可以写任何SQL语句,上述为实现查询的SQL
火龙果整理
2.2 XML配置--SqlMap
insert
SqlMap的操作都有三种写法.现在就以插入说明 <insert>标签中parameterMap为上面所定义的输入值映射 <selectKey keyProperty=“pid” resultClass=“int”>获取自动增长的主键 keyProperty中必须为parameterMap中所定义过映射的字段,resultClass是说明获 取主键后返回的是那种类型的变量 利用设置parameterMap属性后.在SQL语句中就可以用’?’来代替插入的值了.特别要 注意的一点..’?’是有顺序的.所以在上面定义的parameterMap中的顺序要与输 入值的顺序相同.这样我觉得就带来了不便.所以比较喜欢第2种方法
2.2 XML配置--SqlMap
条件查询2
动态添加关键字WHERE
判断per.pname字段是否为空.添 加关键字AND.并添加条件SQL
判断sscore字段是否大于0.添加关键 字AND.并添加条件SQL,compareValue. 是判断大于的数值
火龙果整理
2.3
2.实际操作
火龙果整理
2.2 XML配置--SqlMap
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
∙iBATIS入门程序六大步详解∙ 2009-07-20 17:42 离开的那年百度空间我要评论(0) iBATIS入门程序六大步主要是在六个程序基础上的,那么本文就将向你介绍iBATIS入门程序的具体操作。
iBATIS入门程序第一步:author.java1.package com.ibatis;2.3.public class Author {4.5.private int id;6.7.private String name;8.9.public int getId() {10.11.return id;12.13. }14.15.public void setId(int id) {16.17.this.id = id;18.19. }20.21.public String getName() {22.23.return name;24.25. }26.27.public void setName(String name) {28. = name;30.31. }32.33.}iBATIS入门程序第二步:author.xml34.﹤?xml version="1.0"encoding="UTF-8" ?﹥35.36.﹤!DOCTYPE sqlMap37.38.PUBLIC "-////DTD SQL Map 2.0//EN"39.40."/dtd/sql-map-2.dtd"﹥41.42.﹤sqlMap namespace="Author"﹥43.44.﹤!--模块配置--﹥45.46.﹤!--设置本映射文件中的别名--﹥47.48.﹤typeAlias alias="author"type="com.ibatis.Author" /﹥49.50.﹤!--51.52.﹤cacheModel type="LRU"﹥53.54.设置缓存有效期,如果超出这个时间,则会清空缓存55.56.﹤flushInterval hours="24"﹥﹤/flushInterval﹥57.58.指定执行特定的statement时,清空缓存59.60.﹤flushOnExecute statement="updateAuthor"/﹥61.62. SIZE:本cacheModel最大容纳数据对象的数量63.64.﹤property value="1000"/﹥65.66.﹤/cacheModel﹥67.68.需要使用模块配置,如:﹤select resultClass="author"cacheModel="authorCache"﹥69.70.把记录使用cacheModel"authorCache"进行缓存,以后程序再使用statement进行数据查询,就直接71.72.去缓存中取数据,而不是去数据库中取数据73.74.--﹥75.76.﹤!--Statement配置--﹥77.78.79.80.﹤select resultClass="author"﹥81.82.﹤![CDATA[SELECT * FROM author]]﹥83.84.﹤/select﹥85.86.87.88.﹤update parameterClass="author"﹥89.90.﹤![CDATA[UPDATE author SET WHERE ﹥91.92.﹤/update﹥93.94.95.96.﹤delete parameterClass="author"﹥97.98. delete from author WHERE99.100.﹤/delete﹥101.102.103.104.﹤insert parameterClass="author"﹥105.106.﹤![CDATA[INSERT INTO author(id,name) VALUES(#id#,#name#)]]﹥107.108.﹤/insert﹥109.110.﹤/sqlMap﹥iBATIS入门程序第三步:SqlMapConfig.properties111.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver112.113.url=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=ibatis 114.ername=sa116.117.password=saiBATIS入门程序第四步:SqlMapConfig.xml118.﹤?xml version="1.0"encoding="UTF-8" ?﹥119.120.﹤!DOCTYPE sqlMapConfig121.122.PUBLIC "-////DTD SQL Map Config 2.0//EN"123.124."/dtd/sql-map-config-2.dtd"﹥125.126.﹤!-- Ibatis配置文件--﹥127.128.﹤sqlMapConfig﹥129.130.﹤!-- 加载连接数据库属性文件 --﹥131.132.﹤properties resource="com/ibatis/SqlMapConfig.properties"/﹥133.134.﹤!--135.136.cacheModelsEnabled:是否启动SqlMapClient的缓存机制。
137.138.enhancementEnabled:是否针对POJO启用字节码增加机制以提升geter/seter的调用效用,为延迟加载带来了及大的性能提升。
139.zyLoadingEnabled:是否启用延迟加载机制。
141.142.maxRequests:最大并大请求数。
143.144.maxSessions:最大Session数,即当前最大允许的开发SqlMapClient数145.146.maxTransactions:最大并发事务数。
147.148.--﹥149.150.﹤settings151.152.cacheModelsEnabled="true"153.154.enhancementEnabled="true"155.zyLoadingEnabled="true"157.158.maxRequests="32"159.160.maxSessions="10"161.162.maxTransactions="5"163.eStatementNamespaces="false"165.166./﹥167.168.﹤!-- datasource --﹥169.170.﹤transactionManager type="JDBC"﹥171.172.﹤dataSource type="SIMPLE"﹥173.174.﹤!--JDBC驱动--﹥175.176.﹤property name=JDBC.Driver value="${driver}"/﹥177.178.﹤!--数据库URL--﹥179.180.﹤property value="${url}"/﹥181.182.﹤!--数据库用户名--﹥183.184.﹤property value="${username}"/﹥185.186.﹤!--数据库密码--﹥187.188.﹤property value="${password}"/﹥189.190.﹤!--不知道,在网站上查不出来,有时间再研究--﹥191.192.﹤property value="true" /﹥193.194.﹤!--数据库连接池可维持的最大容量--﹥195.196.﹤property value="10"/﹥197.198.﹤!--数据库连接池中允许的可挂起连接数--﹥199.200.﹤property value="5"/﹥201.202.﹤!--数据库连接池中,连接被某个任务所占用的最大时间--﹥203.204.﹤property value="120000"/﹥205.206.﹤!--当线程想从连接池中获取连接时,连接池中无可用连接,该参数设置线程所允许等待的最长时间--﹥207.208.﹤property value="500"/﹥209.210.﹤!--数据库连接状态检查语句--﹥211.212.﹤property value="select 1 from author"/﹥213.214.﹤!--是否允许检查连接状态--﹥215.216.﹤property value="false"/﹥217.218.﹤!--对持续连接超过设定值的连接进行检查--﹥219.220.﹤property value="1"/﹥221.222.﹤!--对空闲超过设定值的连接进行检查--﹥223.224.﹤property value="1"/﹥225.226.﹤/dataSource﹥227.228.﹤/transactionManager﹥229.230.﹤!--加载SqlMap文件--﹥231.232.﹤sqlMap resource="com/ibatis/author.xml" /﹥233.234.﹤/sqlMapConfig﹥iBATIS入门程序第五步:235.package com.ibatis;236.237.import java.io.IOException;238.239.import java.io.Reader;240.241.import mon.resources.Resources;242.243.import com.ibatis.sqlmap.client.SqlMapClient;244.245.import com.ibatis.sqlmap.client.SqlMapClientBuilder; 246.247.public class SqlMapConf {248.249. //初始化SqlMapClient250.251. private static SqlMapClient sqlmapclient;252.253. static{254.255. //定义ibatis配置文件的路径256.257. String resource="com/ibatis/SqlMapConfig.xml";258.259. try {260.261. //读取ibatis配置文件262.263. Reader reader=Resources.getResourceAsReader(resource);264.265. //通过SqlMapClientBuilder创建SqlMapClient266.267.sqlmapclient=SqlMapClientBuilder.buildSqlMapClient(reader); 268.269. } catch (IOException e) {270.271. // TODO Auto-generated catch block272.273. System.out.println("找不到SqlMapConfig.xml文件~~");274.275. }276.277. }278.279. public static SqlMapClient getInstance(){280.281. //返回sqlmapclient,SqlMapClient是ibatis的核心主建,提供数据操作的基础平台282.283.284.285. return sqlmapclient;286.287. }288.289. /**290.291. * SqlMapClient的另一种创建方式292.293. * XmlSqlMapClientBuilder xmlbuilder=new XmlSqlMapClientBuilder();294.295. * SqlMapClient sqlmapclient=xmlbuilder.builderSqlMap(reader); 296.297. * XmlSqlMapClientBuilder是ibatis2.0之后版本新引入的组件,用以取代1.X版本中的298.299. * XmlSqlMapBuilder,其作用就是创建SqlMapClient。