首先在mysql中練習(xí)下存儲過程的小例子:   
          mysql> delimiter //
          mysql
          > create procedure hello()
              
          -> begin
              
          -> select 'It is not a HelloWorld';
              
          -> end
              
          -> //
          Query OK, 
          0 rows affected (0.01 sec)
          其中“delimiter //”的意思是定義結(jié)束符號為“//”,以此來替換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中插入一些初始化的數(shù)據(jù):
          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)
          現(xiàn)在簡歷一個向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代碼用來調(diào)用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)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
           
          主站蜘蛛池模板: 苍梧县| 佳木斯市| 会泽县| 连山| 荆州市| 永昌县| 曲阳县| 太康县| 甘肃省| 凤城市| 石家庄市| 遂溪县| 黔江区| 望都县| 靖宇县| 隆德县| 独山县| 四川省| 竹山县| 奈曼旗| 报价| 若尔盖县| 光山县| 车险| 淮北市| 宕昌县| 巴林左旗| 通海县| 顺义区| 岳池县| 五台县| 石狮市| 麻栗坡县| 灵璧县| 苍山县| 南宁市| 新丰县| 桂林市| 安仁县| 濮阳县| 抚州市|