IBatis查删改查与调用存储过程 mysql数据库

简单介绍一下IBatis是什么:iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。最初侧重于密码软件的开发,现在是一个基于Java的持久层框架。

iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore实例。

相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,ibatis是一种“半自动化”的ORM实现。

所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO到数据库表的全套映射机制。程序员往往只需定义好了POJO到数据库表的映射关系,即可通过Hibernate或者OJB提供的方法完成持久层操作。程序员甚至不需要对SQL的熟练掌握,Hibernate/OJB会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执行。

为什么:看到这里我想很多人想要问,为什么要弄一个半自动化的持久层框架,这里的话就要从hibernate的缺陷说起,虽然hibernate使得对数据的操作变得简单,但是如果数据库的数据处理量特别大,性能也要求很高,需要对sql语句进行优化才能够达到预期的要求,这个时候hibernate确实就是一个累赘了。所以在hibernate和jdbc之间多了一个选择,那就是IBatis,他使得开发人员不用在写繁琐的数据库访问代码,和字段读取操作。并且自己写sql语句。

怎么做:具体代码在附件中

1.建表

CREATE TABLE `users` (

`Id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) DEFAULT NULL,

`age` varchar(255) DEFAULT NULL,

PRIMARY KEY (`Id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

CREATE PROCEDURE `sp_modify_user`(in_id Integer, in_age Integer)

begin

update users set age=in_age where id=in_id;

end;

2.建一个实体类

package com.ibatis.entity;

/**

*

* @author Administrator

*User实体类

*/

public class Users {

private int id;

private String name;

private int age;

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;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

4.一个映射

/p>

PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"

"http://www.ibatis.com/dtd/sql-map-2.dtd">

SELECT id,name,age FROM USERS

insert into USERS(id,name,age) values(#id#,#name#,#age#)

SELECT id,name,age FROM USERS WHERE id = #id#

delete from users where id=#id#

update users

name=#name#

age=#age#

where id=#id#

call sp_modify_user($id$,$age$)

select * from users

age > $age$

order by id limit $beginCount$,$pageSize$

5.IBatis配置文件

/p>

PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"

"http://www.ibatis.com/dtd/sql-map-config-2.dtd">

enhancementEnabled="true"

lazyLoadingEnabled="true"

maxRequests="32"

maxSessions="10"

maxTransactions="5"

useStatementNamespaces="false" />

6.后面的太长了还是下附件吧。。

1 楼

ssy341

2012-03-01

SqlMapClientBuilder 是什么啊?报错啊

2 楼

pzh244658240

2012-03-02

ssy341 写道

SqlMapClientBuilder 是什么啊?报错啊

对于这种问题。还是没有理解编译java是怎么实现的呀。。包呀。兄弟。导包,网上一大堆。

ibatis mysql存储过程返回结果集,IBatis查删节查与调用存储过程 mysql数据库相关推荐

  1. 用.NET调用oracle的存储过程返回记录集

    最近做一个项目,为了提高数据库安全性,客户要求所有数据库操作都要放在存储过程.象一般的更新操作,返回一个值的,都比较容易实现.而要想返回记录集就比较麻烦,我在网上搜了一下,这方面的文章并不多.在此总结 ...

  2. C#调用ORACLE存储过程返回结果集及函数

    ORACLE段: 首先在ORACLE建立PACKAGE和PACKAGE BODY,将在这里面定义函数和存储过程返回结果集. 1:建立PACKAGE: CREATE OR REPLACE package ...

  3. (转)Oracle程序包(存储过程)返回记录集

    提示:在Oracle中,如果需要通过存储过程返回结果集, 需要使用游标! CREATE OR REPLACE  PACKAGE BODY "SMS_PAY"."SMSMA ...

  4. oracle 存储过程返回,Oracle 存储过程返回结果集 (转)

    Oracle 存储过程返回结果集 (转)[@more@] 1.返回数组 (作者:/Message_Board/Send.?sendto=enhydraboy" target=_blank&g ...

  5. java 存储过程返回结果集_通过SQL“select * from”从java存储过程返回结果集

    我可以直接通过SQL select * from语句从java存储过程(oracle)获取结果吗? 在数据库上,我将有一个java存储过程/函数,当它被调用时返回一个多列,多行结果集. 我想直接通过s ...

  6. Java(CallableStatement)调用Oracle存储过程返回结果集(ResultSet)

     一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS BEGIN ...

  7. Java 调用存储过程 返回结果集

    这里使用Oracle数据库的thin连接. 下面是存储过程SQL 1 createorreplaceprocedure proc3(stid in student.stuid%type, stname ...

  8. 存储过程返回结果集_PostgreSQL函数返回结果集

    有时我们需要定义返回结果集的函数,本文演示如何编码. 遂古之初,谁传道之?上下未形,何由考之?<天问> 1.函数定义 C语言定义部分 PG_FUNCTION_INFO_V1(quanzl_ ...

  9. jdbc批量调用oracle存储过程,oracle学习笔记(二十三)——JDBC调用存储过程以及批量操作...

    jdbc调用存储过程 使用并获得out模式的参数返回值 //存储过程为sum_sal(deptno department.deptno%type,sum in out number) Callable ...

最新文章

  1. javascript:正则表达式、一个表单验证的例子
  2. 美国商务部工业和安全局(BIS)发布《关于拟制定脑机接口技术出口管制规则的通知》...
  3. python heap_python topN max heap,使用heapq还是自己实现?
  4. metasploit篇-01
  5. opencv进阶学习笔记4:ROI和泛洪扩充
  6. 职中心得体会300字高一计算机,职业高中毕业的自我鉴定范文300字
  7. java函数参数 省略号_[转] java使用省略号代替多参数.pdf
  8. eclipse里启动rabbitmq报错 java.net.SocketException: Connection reset
  9. ES6(Module 模块化)
  10. python中的[1:]、[::-1]、X[:,m:n]和X[1,:]
  11. 计算机系统基本组成教学设计,《计算机系统的基本组成》教学设计.pdf
  12. 什么软件和设备可以修改芯片代码_黑客宣称可以越狱苹果T2安全芯片
  13. 单片机实验一 LED灯实验
  14. 关于如何利用学生邮箱申请jetbrains免费全家桶
  15. Rust中国大会议程介绍:分会场 下
  16. net start mysql无法启动数据库的解决办法
  17. 在css中sticky定位的特性,CSS定位属性sticky详解
  18. 大学英语B116-阅读理解
  19. 计算机地图制图的优势,计算机地图制图
  20. 股票macd计算公式php,【图】日周MACD同图(日线公式)_选股公式,股票,炒股,股票软件,股票公式_指标公式分享交流论坛_理想论坛 - 股票论坛...

热门文章

  1. Vue结合萤石ezuikit-js实现实时监控视频
  2. Odoo产品分析 (二) -- 商业板块(6) --采购(1)
  3. 计算机体系结构学习 --- RISC-V(一)
  4. C语言实现进程同步与互斥
  5. 图灵程序设计丛书•鲜活的数据:数据可视化指南 - 电子书下载(高清版PDF格式+EPUB格式)...
  6. mysql update语句怎么写_mysql更新语句怎么写?
  7. HTML如何关闭窗口大全
  8. 使用incognito重放身份验证令牌
  9. html5不能播放视频的方法
  10. 中国私有LTE和5G网络市场深度研究分析报告(2021)