首先在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中查詢可看到插入一條新的記錄
          posted on 2008-09-23 23:25 李威威 閱讀(208) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 太仆寺旗| 崇文区| 英德市| 阿克| 峨眉山市| 长岭县| 泸西县| 衢州市| 额敏县| 梅河口市| 嘉峪关市| 广州市| 西华县| 毕节市| 和田县| 剑川县| 张掖市| 安平县| 孟连| 体育| 台江县| 利津县| 葫芦岛市| 石景山区| 安龙县| 岳阳市| 灵璧县| 加查县| 乐平市| 江都市| 修文县| 特克斯县| 巩义市| 南开区| 塔河县| 刚察县| 华亭县| 汽车| 嵊州市| 庆元县| 泸溪县|