import java.sql.CallableStatement;
專業(yè)領(lǐng)域包括成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、商城網(wǎng)站開發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開發(fā), 與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)建站的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Types;
/*
* 對(duì)應(yīng)的存儲(chǔ)過程
DROP PROCEDURE IF EXISTS `pro_num_user`;
delimiter
CREATE PROCEDURE `pro_num_user`(IN user_name varchar(10) ,OUT count_num INT)
READS SQL DATA
BEGIN
SELECT COUNT(*) INTO count_num FROM tab_user WHERE 'name'=user_name;
END
delimiter ;
*/
public class Test {
public static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
public static final String URL = "jdbc:mysql://127.0.0.1:3306/test";
public static final String USERNAME = "root";
public static final String PASSWORD = "acbee";
public static void main(String[] args) throws Exception {
test1();
test2();
}
public static void test1() throws Exception
{
Class.forName(DRIVER_CLASS);
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String sql = "{CALL pro_num_user(?,?)}"; //調(diào)用存儲(chǔ)過程
CallableStatement cstm = connection.prepareCall(sql); //實(shí)例化對(duì)象cstm
cstm.setString(1, "myd"); //存儲(chǔ)過程輸入?yún)?shù)
//cstm.setInt(2, 2); // 存儲(chǔ)過程輸入?yún)?shù)
cstm.registerOutParameter(2, Types.INTEGER); // 設(shè)置返回值類型 即返回值
cstm.execute(); // 執(zhí)行存儲(chǔ)過程
System.out.println(cstm.getInt(2));
cstm.close();
connection.close();
}
public static void test2() throws Exception
{
Class.forName(DRIVER_CLASS);
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String sql = "{CALL pro_number(?,?,?)}"; //調(diào)用存儲(chǔ)過程
CallableStatement cstm = connection.prepareCall(sql); //實(shí)例化對(duì)象cstm
cstm.setInt(1, 2); // 存儲(chǔ)過程輸入?yún)?shù)
cstm.setInt(2, 2); // 存儲(chǔ)過程輸入?yún)?shù)
cstm.registerOutParameter(3, Types.INTEGER); // 設(shè)置返回值類型 即返回值
cstm.execute(); // 執(zhí)行存儲(chǔ)過程
System.out.println(cstm.getInt(3));
cstm.close();
connection.close();
}
}
通過jdbc;
class.forName("com.mysql.jdbc.Driver");//加載驅(qū)動(dòng)類
Drivermanager.getConnection(url,userName,password);//獲取鏈接
1.下面代碼是使用jdbc直接來鏈接mysql的操作,方式與SQL SERVER類似,區(qū)別在于加載的驅(qū)動(dòng)不同,url的設(shè)置也有點(diǎn)區(qū)別。
2.執(zhí)行腳本返回的結(jié)果,可以看出java成功鏈接上mysql并獲取到返回值
3.mysql-connector-java-5.1.26-bin.jar是java鏈接mysql使用的jar包,與SQL SERVER鏈接也有專門的jar包,jar包中包含了java鏈接mysql所用到的函數(shù)驅(qū)動(dòng)等等,所有的jar包都是放到web工程lib目錄下
4.如果工程是整合在ssh下,一般情況下都會(huì)有一個(gè)properties文件,該文件配置了數(shù)據(jù)庫(kù)鏈接常用的命令,下圖是mysql中的配置
5.使用spring框架下進(jìn)行的測(cè)試,結(jié)果可以成功執(zhí)行,無論是sql server還是mysql還是其他的數(shù)據(jù)庫(kù),基本功能都一樣,只是語法結(jié)構(gòu)有所區(qū)別,java在調(diào)用的過程中大部分功能只要切換了數(shù)據(jù)庫(kù)鏈接命令就可以公用,如果系統(tǒng)架構(gòu)設(shè)計(jì)的足夠好,切換數(shù)據(jù)庫(kù)的時(shí)候,應(yīng)用程序是不用調(diào)整就能兼容的