`
hz_chenwenbiao
  • 浏览: 1007942 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

mysql存储过程学习及java调用存储过程(转)

阅读更多

首先在mysql中练习下存储过程的小例子:   

mysql> delimiter //
mysql
> create procedure hello()
    
-> begin
    
-> select 'It is not a HelloWorld';
    
-> end
    
-> //
Query OK, 
0 rows affected (0.01 sec)

其中“delimiter //”的意思是定义结束符号为“//”,以此来替换mysql中的“;”
在mysql中查询上面的过程hello():

mysql> call hello()//
+------------------------+
| It is not a HelloWorld |
+------------------------+
| It is not a HelloWorld |
+------------------------+
1 row in set (0.00 sec)

建立一个简单的测试用表:

mysql> DROP TABLE IF EXISTS `userinfo`.`mapping`;
    
-> CREATE TABLE  `userinfo`.`mapping` (
    
->   `cFieldID` smallint(5) unsigned NOT NULL,
    
->   `cFieldName` varchar(30NOT NULL,
    
->   PRIMARY KEY  (`cFieldID`)
    
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
-> //
Query OK, 
0 rows affected (0.14 sec)

向table mapping中插入一些初始化的数据:

mysql> load data infile 'd:\\userInfo\\field.txt' into table mapping
    
-> fields terminated by ',' lines terminated by '\r\n' //
Query OK, 
5 rows affected (0.02 sec)
Records: 
5  Deleted: 0  Skipped: 0  Warnings: 0
mysql
> select *from mapping//
+----------+-------------+
| cFieldID | cFieldName  |
+----------+-------------+
|        1 | MarketValue |
|        2 | P/L         |
|        3 | EName       |
|        4 | Nominal     |
|        5 | Chg         |
+----------+-------------+
5 rows in set (0.02 sec)

现在简历一个向mapping中插入一条记录并返回记录的总和

mysql> drop procedure if exists mappingProc;
    
->  create procedure mappingProc(out cnt int)
    
->  begin
    
->  declare maxid int;
    
->  select max(cFieldID)+1 into maxid from mapping;
    
->  insert into mapping(cFieldID,cFieldName) values(maxid,'hello');
    
->  select count(cFieldID) into cnt from mapping;
    
->  end
    
->  //

查找mappingProc():

mysql> call mappingProc(@a)//
mysql
> select @a//
+------+
| @a   |
+------+
| 6    |
+------+
mysql> select * from mapping//
+----------+-------------+
| cFieldID | cFieldName  |
+----------+-------------+
|        1 | MarketValue |
|        2 | P/L                 |
|        3 | EName          |
|        4 | Nominal     |
|        5 | Chg         |
|        6 | hello       |
+----------+-------------+

下面是java代码用来调用MySQL的存储过程:

package kissJava.sql;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;
public class SQLUtils {
    String url 
= "jdbc:mysql://127.0.0.1:3306/userInfo"
    String userName 
= "root";
    String password 
= "zhui007";
    
public Connection getConnection() {
        Connection con
=null;
        
try{
            DriverManager.registerDriver(
new com.mysql.jdbc.Driver());
            con 
= DriverManager.getConnection(url, this.userName, this.password);
        }
catch(SQLException sw)
         }

        
return con;
    }

    
public void testProc(){
        Connection conn 
= getConnection();
        CallableStatement stmt 
= null;
        
try{
            stmt 
= conn.prepareCall("{call mappingProc(?)}");    
            stmt.registerOutParameter(
1, Types.INTEGER);
            stmt.execute();
            
int i= stmt.getInt(1);
            System.out.println(
"count = " + i);
        }
catch(Exception e){
            System.out.println(
"hahad = "+e.toString());
        }
finally{
            
try {
                stmt.close();
                conn.close();
            }
catch (Exception ex) {
                System.out.println(
"ex : "+ ex.getMessage());
            }

        }

    }

    
public static void main(String[] args) {
        
new SQLUtils().testProc();
    }

}

在到MySQL中查询可看到插入一条新的记录

分享到:
评论

相关推荐

    Java实现调用MySQL存储过程详解

    总的来说,Java通过JDBC调用MySQL存储过程涉及到连接数据库、创建`CallableStatement`、执行存储过程和处理结果。这使得开发者能够在Java应用中灵活地利用数据库提供的强大功能,实现更高效的数据处理。

    Java调用Mysql存储过程

    总之,Java调用MySQL存储过程是一个涉及JDBC、CallableStatement和数据库交互的过程。理解这些步骤并正确地应用它们,可以有效地利用存储过程提高应用程序的性能和效率。记得在实际开发中,根据实际情况调整代码,...

    Java调用数据库存储过程[mysql测试通过]

    以下是一个简单的Java调用MySQL存储过程的示例: ```java import java.sql.*; public class TestJavaProcedure { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydb"; ...

    java调用存储过程(含out参数)

    总之,调用存储过程是Java开发中处理数据库操作的重要环节。理解如何设置`IN`和`OUT`参数,并正确地执行和获取结果,将有助于提高代码的效率和可维护性。希望这个详细讲解对你有所帮助,如果你在实践中遇到任何问题...

    Java调用存储过程--传入集合参数

    ### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...

    java 调用存储过程

    值得注意的是,上述代码中的文件名列表(如Project1.cfg、Unit1.dcu等)与Java调用存储过程无关,它们看起来像是Delphi或FreePascal项目的文件,这些文件通常用于描述项目配置、单元信息、表单布局等,而不是与Java...

    MyBatis调用MYSQL存储过程

    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-...

    mysql调用存储过程

    总之,通过JDBC调用MySQL存储过程使得Java应用程序能够灵活地与数据库交互,执行复杂的业务逻辑,同时保持代码的简洁性和可读性。这在大型系统中尤其重要,因为它允许数据库管理员在不改变应用程序代码的情况下优化...

    如何在java中调用mysql的存储过程的事例

    这就是在Java中调用MySQL存储过程的基本步骤。在实际开发中,你可能需要根据具体的需求进行调整,如处理多结果集、异常处理等。理解这个过程可以帮助你更有效地利用存储过程提升数据库操作的效率和安全性。

    JAVA通过MyBatis调用MySql存储过程和函数doc文档合集整理.zip

    这个文档合集应该详细讲解了这些步骤和最佳实践,帮助开发者熟练掌握在Java中利用MyBatis调用MySQL存储过程和函数的技巧,从而更高效地进行数据库操作。通过深入学习和实践,开发者可以更好地理解这两者之间的交互,...

    java调用存储过程

    Java调用存储过程是数据库操作中的常见任务,特别是在复杂的业务逻辑和数据处理中。MyEclipse作为一款强大的Java集成开发环境,提供了方便的工具来支持这一功能。下面将详细介绍如何在MyEclipse中使用Java调用存储...

    Java调用MySQL存储过程并获得返回值的方法

    总之,Java调用MySQL存储过程并获取返回值涉及到数据库连接、创建`CallableStatement`对象、设置参数、执行存储过程、处理结果集、关闭资源以及异常处理等多个环节。理解并熟练掌握这些步骤对于进行数据库驱动的Java...

    spring mvc + mybatis 调用mysql 存储过程

    本文将详细讲解如何在Spring MVC和MyBatis集成的项目中调用MySQL存储过程。 首先,让我们理解存储过程的概念。存储过程是在数据库中预编译的一组SQL语句,可以包含输入、输出和内部参数,能够执行复杂的业务逻辑。...

    mybatis调用mysql存储过程

    通过以上步骤,你已经掌握了如何在MyBatis中调用MySQL存储过程的基本方法。在实际开发中,这将极大地提升你的数据库操作效率,使你能够更好地管理和处理复杂的业务逻辑。在后续的实践中,你可以尝试结合具体业务场景...

    Java调用存储过程的2种方法

    ### Java调用存储过程的两种方法 在Java中调用数据库中的存储过程是常见的操作之一,这不仅可以提高程序性能和代码可维护性,还可以更好地利用数据库的功能。根据提供的标题、描述以及部分内容,本文将详细介绍Java...

    java调用存储过程源码 sql数据库

    总的来说,Java调用存储过程是数据库交互的一个重要环节,理解其原理和操作流程对于开发高效、可靠的数据库应用至关重要。在实际项目中,根据具体需求选择合适的设计策略,既能保证功能实现,又能兼顾性能和维护性。

    java 调用存储过程返回单个值

    ### 二、调用存储过程返回单个值的步骤 #### 2.1 准备工作 首先,确保已正确配置数据库连接。这通常涉及到以下几点: - 加载合适的JDBC驱动程序。 - 建立到数据库的连接。 #### 2.2 创建存储过程 假设我们有一个名...

    存储过程调用java程序

    1. **Java调用存储过程**:在Java应用中,我们可以通过JDBC(Java Database Connectivity)API来调用数据库中的存储过程。例如,使用CallableStatement对象,设置输入/输出参数,并执行存储过程。这种方式使得Java...

    Java对存储过程的调用方法

    在Java编程中,调用数据库中的存储...总的来说,Java调用存储过程涉及到了JDBC API的使用,参数的设置和结果集的处理,以及可能的事务管理和连接池操作。了解和掌握这些知识,对于开发高效、稳定的数据库应用至关重要。

Global site tag (gtag.js) - Google Analytics