/* * Copyright 2008 biaoping.yin * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.frameworkset.mysql; import java.sql.Connection; import java.sql.SQLException; import org.junit.Test; import com.frameworkset.common.poolman.PreparedDBUtil; public class createfunction { static Connection con; static { try { con = PreparedDBUtil.getConection("mysql"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); // con = null; } } @Test public static void createfunction() { for (int i = 0; i < 1; i++) { try { PreparedDBUtil dbutil = new PreparedDBUtil(); // Connection con = dbutil.getConection("mysql"); // dbutil.executeInsert("mysql", // "INSERT INTO sequence VALUES (0)",con); dbutil.executeUpdate("mysql", "UPDATE sequence SET id=LAST_INSERT_ID(id+1)", con); dbutil.executeSelect("mysql", "SELECT LAST_INSERT_ID()", con); long va = dbutil.getLong(0, 0); // System.out.println(con); // con.close(); System.out.println(va); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } @Test public static void getNextValue() { // for(int i = 0; i < 1; i ++) // { // try { // PreparedDBUtil dbutil = new PreparedDBUtil(); // // // dbutil.executeInsert("mysql", // "INSERT INTO seq_dbpool VALUES (0)",con); // dbutil.executeUpdate("mysql", // "UPDATE seq_dbpool SET id=LAST_INSERT_ID(id+1)",con); // dbutil.executeSelect("mysql","SELECT LAST_INSERT_ID()",con); // long va = dbutil.getLong(0, 0); // // con.close(); // System.out.println("seq_dbpool:"+va); // } catch (SQLException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } try { System.out.println("seq_dbpool:" + PreparedDBUtil.getNextPrimaryKey(con, "mysql", "cim_dbpool")); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } static class T extends Thread { public void run() { createfunction(); } } static class Tt extends Thread { public void run() { getNextValue(); } } public static void main(String[] args) { // T t = new T(); // t.start(); // Tt tt = new Tt(); // tt.start(); // String sql = "CREATE PROCEDURE sp1 (x VARCHAR(5)) " // +"BEGIN " // +" DECLARE xname VARCHAR(5) DEFAULT 'bob';" // +" DECLARE newname VARCHAR(5);" // +" DECLARE xid INT;" // +" SELECT xname,id INTO newname,xid " // +" FROM table1 WHERE xname = xname;" // +" SELECT newname;" // +" END;"; // String sql_ = "CREATE FUNCTION nextval (seq_name varchar(100)) " + " RETURNS bigint(20) NOT DETERMINISTIC " + " BEGIN " + " DECLARE cur_val bigint(20); " + " SELECT " + " sequence_cur_value INTO cur_val " + " FROM " + " sequence.sequence_data " + " WHERE " + " sequence_name = seq_name ; " + " IF cur_val IS NOT NULL THEN " + " UPDATE " + " sequence.sequence_data " + " SET " + " sequence_cur_value = IF ( " + " (sequence_cur_value + sequence_increment) > sequence_max_value, " + " IF ( " + " sequence_cycle = TRUE, " + " sequence_min_value, " + " NULL " + " ), " + " sequence_cur_value + sequence_increment ) " + " WHERE " + " sequence_name = seq_name ; " + " END IF; " + " RETURN cur_val; " + " END;"; // PreparedDBUtil dbutil = new PreparedDBUtil(); try { dbutil.preparedUpdate("mysql", sql_); dbutil.executePrepared(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }