- 浏览: 1057509 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (605)
- 数据挖掘 (22)
- spring (40)
- 工具使用 (39)
- java (137)
- JavaScript (40)
- webwork (12)
- web (120)
- 资源 (7)
- SSH (5)
- oracle (20)
- J2ME (1)
- 环境配置 (37)
- 项目管理 (29)
- mysql (14)
- struts (4)
- 项目总结 (27)
- ibatis学习 (33)
- 学习计划 (2)
- 缓存 (7)
- 重构 (3)
- Android (1)
- jquery (12)
- UML (3)
- 用户体验 (4)
- 习惯 (7)
- sakai (1)
- urlrewrite (4)
- rss (5)
- C plus plus (5)
- 算法 (5)
- 海量数据处理 (7)
- office(word、excel) (1)
- 面试题 (3)
- solr (8)
- 大数据 (2)
最新评论
-
hujin19861102:
截图看不见,最后一个webwrok的配置看不见
Ext+Webwork+Json 实现分页表格查询效果 -
蜗牛笔:
弱弱的问一句,要是分出来的词在词典中没有,那么两部分的pos- ...
ICTCLAS 中科院分词系统 -
weipeng1986:
授人予鱼不如授人予鱼,我想问你的是你是怎么总结的。比如第四种情 ...
JAVA中字符串连接效率的测试 -
xiaoqiang2008:
执行两次的原因是什么,好像楼主没弄清楚啊!是不是在web.xm ...
关于Spring中用quartz定时器在定时到达时同时执行两次的问题 -
Kent_Mu:
...
ibatis-dynamic的用法
转载自 http://yoyo08.iteye.com/blog/474915
使用存储过程的好处就不说了,下面简要说一下存储过程的使用。
1. 首先,创建一个新表,用于后面Java代码中的测试。
- create table a
- (
- id int(10) not null,
- name varchar(20) not null
- )ENGINE=MyISAM DEFAULT CHARSET=utf8;
create table a ( id int(10) not null, name varchar(20) not null )ENGINE=MyISAM DEFAULT CHARSET=utf8;
2. 向表中插入一些数据。
- insert into a ( `id`, `name` ) values ('1', 'best');
- insert into a ( `id`, `name` ) values ('2', 'great');
- insert into a ( `id`, `name` ) values ('3', 'china');
- insert into a ( `id`, `name` ) values ('4', 'beijing');
insert into a ( `id`, `name` ) values ('1', 'best'); insert into a ( `id`, `name` ) values ('2', 'great'); insert into a ( `id`, `name` ) values ('3', 'china'); insert into a ( `id`, `name` ) values ('4', 'beijing');
3. 修改MySQL中的默认换行符";"为'##'。
delimiter ##
4. 创建一个带有一个输出参数的存储过程。
create procedure hello(out num int) begin select Max(id) into num from a; end##
5. 创建一个带有两个输出参数的存储过程。
- create procedure hello2(out num int, out str varchar(20))
- begin
- select Max(id) into num from a;
- select name from a where a.id = num into str;
- end##
create procedure hello2(out num int, out str varchar(20)) begin select Max(id) into num from a; select name from a where a.id = num into str; end##
6. 将MySQL的换行符修改回";"。
delimiter ;
7. Java程序中的调用。
- package cn.lifx.util.procedure;
- import java.sql.CallableStatement;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.Types;
- public class Test
- {
- String url = "jdbc:mysql://127.0.0.1:3306/test";
- String name = "root";
- String password = "china";
- public static void main(String[] args)
- {
- Test test = new Test();
- test.proc();
- test.proc2();
- }
- public Connection getConnection()
- {
- Connection con = null;
- try
- {
- Class.forName("com.mysql.jdbc.Driver");
- con = DriverManager.getConnection(url, name, password);
- }catch(Exception e){
- e.printStackTrace();
- }
- return con;
- }
- public void proc()
- {
- Connection conn = getConnection();
- CallableStatement stmt = null;
- try
- {
- stmt = conn.prepareCall("{call hello(?)}");
- stmt.registerOutParameter(1, Types.INTEGER);
- stmt.execute();
- int i = stmt.getInt(1);
- System.out.println(i);
- }catch(Exception e){
- e.printStackTrace();
- }finally
- {
- try
- {
- stmt.close();
- conn.close();
- }catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- public void proc2()
- {
- Connection conn = getConnection();
- CallableStatement stmt = null;
- try
- {
- stmt = conn.prepareCall("{call hello2(?, ?)}");
- stmt.registerOutParameter(1, Types.INTEGER);
- stmt.registerOutParameter(2, Types.VARCHAR);
- stmt.execute();
- int i = stmt.getInt(1);
- String str = stmt.getString(2);
- System.out.println(i + " " + str);
- }catch(Exception e){
- e.printStackTrace();
- }finally
- {
- try
- {
- stmt.close();
- conn.close();
- }catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- }
package cn.lifx.util.procedure; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Types; public class Test { String url = "jdbc:mysql://127.0.0.1:3306/test"; String name = "root"; String password = "china"; public static void main(String[] args) { Test test = new Test(); test.proc(); test.proc2(); } public Connection getConnection() { Connection con = null; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection(url, name, password); }catch(Exception e){ e.printStackTrace(); } return con; } public void proc() { Connection conn = getConnection(); CallableStatement stmt = null; try { stmt = conn.prepareCall("{call hello(?)}"); stmt.registerOutParameter(1, Types.INTEGER); stmt.execute(); int i = stmt.getInt(1); System.out.println(i); }catch(Exception e){ e.printStackTrace(); }finally { try { stmt.close(); conn.close(); }catch (Exception e) { e.printStackTrace(); } } } public void proc2() { Connection conn = getConnection(); CallableStatement stmt = null; try { stmt = conn.prepareCall("{call hello2(?, ?)}"); stmt.registerOutParameter(1, Types.INTEGER); stmt.registerOutParameter(2, Types.VARCHAR); stmt.execute(); int i = stmt.getInt(1); String str = stmt.getString(2); System.out.println(i + " " + str); }catch(Exception e){ e.printStackTrace(); }finally { try { stmt.close(); conn.close(); }catch (Exception e) { e.printStackTrace(); } } } }
8. 输出结果为:
发表评论
-
fork/join框架
2017-03-09 11:03 517http://blog.csdn.net/ye1992/art ... -
protobuffer
2017-03-09 10:54 718http://blog.csdn.net/antgan/art ... -
整理上传代码容易忽略的注意事项
2013-08-31 11:28 1187每个公司都有自己的代码代码上传流程:如果打包发布的话,是不存 ... -
mysql版本升级引发的问题
2013-05-16 15:25 1672问题描述: 1. ibatis 中 mysql语 ... -
网站的记住密码功能设计
2013-02-27 19:09 1320http://greenyouyou.blog.163 ... -
大型网站架构演变之路
2013-02-27 19:08 1160http://www.cnblogs.com/ivanjack ... -
使用Filter统计Java(J2EE)的web程序http请求响应时间
2013-02-27 19:07 1403http://www.cnblogs.com/ivan ... -
java bean与xml相互转换
2013-02-06 10:27 2060最近在做的项目,在各个平台之间需要大量传输数据,且结构比较 ... -
java 反射
2013-01-14 18:21 841http://www.cnblogs.com/rollenh ... -
字符串替换
2012-12-17 11:17 1169高效的字符串模式替换实现效果如下 String str ... -
httpURLConnection获取网络数据:XML格式返回与Json格式返回
2012-12-15 16:57 149381.服务器端代码样例: public class ... -
利用Freemarker实现表到功能界面的一键生成
2012-11-22 18:03 1039利用Freemarker实现表到功能界面的一键生成 h ... -
ibatis in ##的问题
2012-11-02 13:25 889http://www.hake.cc/a/biancheng/ ... -
ibatis缓存强制刷新与命中率
2012-10-19 19:06 1403缓存强制刷新: // spring注入 private Sq ... -
eclipse 的一些设置
2012-08-16 22:06 17691. 控制台信息太多,程序跑完后只能保留最后的一部分之前的 ... -
jdk1.5 System.arraycopy与jdk1.6 中Arrays.copyOf()&Arrays.copyOfRange()
2012-08-16 21:56 3301在JDK1.5的类System类中有方法 ... -
Eclipse报Java heap space错误的解决方案
2012-08-16 16:43 12079当运行大数量的数据时: (1) 如果是java 应用程 ... -
求两个字符串的最大公共字符串
2012-08-10 20:41 1073http://blog.csdn.net/wangcj625/ ... -
ffmpeg 截取视频 播放中的图片
2012-06-19 09:14 1324http://www.cnblogs.com/live365w ... -
memcached 项目中的使用
2012-06-13 09:29 1078http://ljh2008.iteye.com/blog/6 ...
相关推荐
总的来说,Java通过JDBC调用MySQL存储过程涉及到连接数据库、创建`CallableStatement`、执行存储过程和处理结果。这使得开发者能够在Java应用中灵活地利用数据库提供的强大功能,实现更高效的数据处理。
总之,Java调用MySQL存储过程是一个涉及JDBC、CallableStatement和数据库交互的过程。理解这些步骤并正确地应用它们,可以有效地利用存储过程提高应用程序的性能和效率。记得在实际开发中,根据实际情况调整代码,...
以下是一个简单的Java调用MySQL存储过程的示例: ```java import java.sql.*; public class TestJavaProcedure { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydb"; ...
### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...
这就是在Java中调用MySQL存储过程的基本步骤。在实际开发中,你可能需要根据具体的需求进行调整,如处理多结果集、异常处理等。理解这个过程可以帮助你更有效地利用存储过程提升数据库操作的效率和安全性。
在Java编程中,调用数据库的存储过程是常见的任务,特别是在处理复杂的业务逻辑或需要高效数据操作时。本文将详细讲解如何在Java中调用含有`OUT`参数的存储过程,帮助开发者解决这类问题。 首先,理解存储过程的...
这就是通过JDBC在Java中调用MySQL存储过程的基本步骤。实际应用中,你可能需要处理更复杂的存储过程,包括输入参数、输出参数和多结果集。在定义`CallableStatement`时,可以使用`?`作为占位符来指定参数,然后通过`...
值得注意的是,上述代码中的文件名列表(如Project1.cfg、Unit1.dcu等)与Java调用存储过程无关,它们看起来像是Delphi或FreePascal项目的文件,这些文件通常用于描述项目配置、单元信息、表单布局等,而不是与Java...
MyBatis调用MYSQL存储过程 返回多行 引用的包: asm-3.1.jar cglib-2.2.jar commons-logging-1.1.1.jar log4j-1.2.13.jar mybatis-3.0.4.jar mysql-connector-java-5.1.13.jar slf4j-api-1.5.8.jar slf4j-log4j12-...
这个文档合集应该详细讲解了这些步骤和最佳实践,帮助开发者熟练掌握在Java中利用MyBatis调用MySQL存储过程和函数的技巧,从而更高效地进行数据库操作。通过深入学习和实践,开发者可以更好地理解这两者之间的交互,...
本文将详细讲解如何在Spring MVC和MyBatis集成的项目中调用MySQL存储过程。 首先,让我们理解存储过程的概念。存储过程是在数据库中预编译的一组SQL语句,可以包含输入、输出和内部参数,能够执行复杂的业务逻辑。...
总之,Java调用MySQL存储过程并获取返回值涉及到数据库连接、创建`CallableStatement`对象、设置参数、执行存储过程、处理结果集、关闭资源以及异常处理等多个环节。理解并熟练掌握这些步骤对于进行数据库驱动的Java...
通过以上步骤,你已经掌握了如何在MyBatis中调用MySQL存储过程的基本方法。在实际开发中,这将极大地提升你的数据库操作效率,使你能够更好地管理和处理复杂的业务逻辑。在后续的实践中,你可以尝试结合具体业务场景...
Java调用存储过程是数据库操作中的常见任务,特别是在复杂的业务逻辑和数据处理中。MyEclipse作为一款强大的Java集成开发环境,提供了方便的工具来支持这一功能。下面将详细介绍如何在MyEclipse中使用Java调用存储...
Java程序调用存储过程是数据库操作中的常见任务,特别是在处理大量数据或需要高效执行复杂业务逻辑时。存储过程是预编译的SQL语句集合,它们可以提高性能、减少网络流量,并提供更好的安全性。在Java应用程序中调用...
在本项目中,"struts+spring_ibaits+调用Mysql存储过程实现增删改查",意味着开发者利用这三个框架来处理数据库中的增、删、改、查(CRUD)操作,并通过调用MySQL的存储过程来实现这些功能。存储过程是预编译的SQL...
总结,Java操作MySQL存储过程的关键在于使用`CallableStatement`,它允许我们调用数据库中的存储过程并传递参数。在执行前,需要确保正确建立了数据库连接,并且已经创建了所需的存储过程。在处理完存储过程后,别忘...
MySQL存储过程编程是数据库应用开发中的一个重要环节,它可以帮助开发者将一系列的数据库操作封装起来,以提高程序的可维护性和运行效率。在MySQL 5.0及以上版本中,存储过程、函数和触发器的支持为数据库提供了更...
1. **Java调用存储过程**:在Java应用中,我们可以通过JDBC(Java Database Connectivity)API来调用数据库中的存储过程。例如,使用CallableStatement对象,设置输入/输出参数,并执行存储过程。这种方式使得Java...