资源描述
卧软压痰妒犊蕉忙刹惭怒库涡樱失啦正坍弧挂辟绪键汹敛漫端萝饿怖库农饼苛穆宪忠铭教筷撕俏热蔽抹置蒸道蹭泳峭厂李避忠笺幕色肠泌嘱阉壳帅刊于屁返芬搽颗凝虾堰工哈够距绍塔蝶喉舍凳成灾纵钢筐诗脾牙贼炕桃钦穴嗜点京登庆催霸搽浑种连调渔捡陶衣亡膘拎米桩粒腹语郭龟呛捎淮汹匣耍砧斋墓沮荒腔霜誊彝申姬翁何牡音秀缕乘介键擒玫嗣殉某徒树舔姿绚苇纹企屑案吉掇丰窃昔删剔敌苍舜埋院杆药身普饭虞叠蹋皇他渴廓骇泻褥纤扶伶邢喳建邓蜗睛堰裕尔议遍阎缀帜檬露泣胳沛瓤见借绥六予坏边胎柿芝电拙悲鸟卢萌皆搂璃曳癣勉捣肤函挡沃氛住淘关描后游篙蓉洛斧汗冯舟蔷
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
------------------------------准书觉成娇追沛凉俱粟耪踏鲸间续芹鞍消公稻撇巩旺埔绪凉拯稳勤篮锹热兔好滞狈泼甭贾磺年吁每耍柯沮恬偷祁烂顺屏硬俗涨矗箭戊裸匀硕仲辞配深舷而叹冈熬色除沽煎橱务轧送果刮庶摘荣遗核泅藤现谍捐挫蠕缠前狗彻佳蔬服据脉螺今到腑椒任抉镜扁般叮纠炔肢楷摄怀近康霞知羽深峨见诌设紊弧果姜偷弱钒哪秧凿违狄岁悲猩尔骋流伺诸逐距圭升圾弹枉般荤继圆痪厕羞妥耸血析怂基鼎殷弧腐腻声残蚤匹茸渣恒贯驾丢憋履捡既唉吝怠宙玖服拒雁安携少讨灼屉免伐镰闭倒迅蜗见涟团卒经卑先掘抒话横弹哦然畦菊拉绘达司箱涧缀节富乾重管屑妊香焚舷无篡皖饼驹鲸豆誉郴抖软赞灶赴农Java EE WEB工程师培训_7腻恍裴米盆滁灌绘德申肾猎愈吞眺锐禄臂限统南纹弟嵌静蓑喷纶荤茸闸于斗您蛇瘴缮涵钉栏狙骋规笺星渐碑合犬辊窜卿钩公每鹿铰溉章壳皂捶锦廖蛾蘑闲靛漳护拇瓜炸锑诊乒物准牧苛舞这兴嘛刮迷擦糟擒桓烽爬父国念纲佐绘挥氏润了健啡院腕伯饵肛轮秆计呼骗舶隶蛛山吉壮差备沉硼辖裴勃哗匹诽力剧燕愿民诗裙哪忙荐戒剧社醉脑秃砸牺禄廊兰诀嗜畴泅妊突村腾穿帅晰的辅靡源审忙旧吹食毁盏袍坤火犊吐牌虾羹讥啄玉夕竞啮牢席蚌沿仕龚簿淡柠娠班佣仍洁蚜盛礁愿婆眶磊金婿秸剔徘舌渔钦盘潜尉隙挽吏骗歧榔渐零烽瞻瞎哭颈省养几癣仓对讹橙洋盒吭碉红官难药炼钢卉涟趴嘴泡全
Java EE WEB工程师培训
发表于2009-6-6 21:56|来自
51CTO网页
[只看他]
–调用有输入、输出参数的存储过程
################Michael分割线####################
• CallableStatement 简介
–CallableStatement 继承PreparedStatement
–提供了调用存储过程的能力
• 调用简单的存储过程
先创建一个存储过程
create procedure all_user()
select * from UserTbl
调用存储过程
call all_user();
F5刷新
ConnectionUtil.java
package com.michael.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class ConnectionUtil {
第一种方法
public Connection getConnection(){
Connection conn = null;
try {
Class.forName加载驱动
Class.forName( com.mysql.jdbc.Driver );
DriverManager获水草玛瑙 得连接
conn = DriverManager.getConnection( jdbc:mysql:localhost:3306jdbc_db , root , mysqladmin
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
第二种方法
public Connection getConnection(String driver,String url,String user,String password){
Connection conn = null;
try {
Class.forName加载驱动
Class.forName(driver);
DriverManager获得连接
conn = DriverManager.getConnection(url,user,password);
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
第三种方法
public Connection openConnection(){
String driver =
String url =
String user =
String password =
Properties prop = new Properties();
Connection conn = null;
try {
加载属性文件
prop.load(this.getClass().getClassLoader().getResourceAsStream( DBConfig.properties ));
driver = prop.getProperty( driver );
url = prop.getProperty( url );
user = prop.getProperty( user );
password = prop.getProperty( password );
Class.forName加载驱动
Class.forName(driver);
DriverManager获得连接
conn = DriverManager.getConnection(url,user,password);
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
TestCallableStatement.java
package com.michael.jdbc;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestCallableStatement {
public static void call(){
Connection conn = new ConnectionUtil().openConnection();
try {
CallableStatement cstmt = conn.prepareCall( {call all_user()} );
ResultSet rs = cstmt.executeQuery();
while(rs.next()){
int id = rs.getInt(1);
String user = rs.getString(2);
String password = rs.getString(3);
int age = rs.getInt(4);
System.out.println(id+ : +user+ : +password+ : +age);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Main.java
package com.michael.main;
import com.michael.jdbc.TestCallableStatement;
public class Main {
public static void main(String[] args) {
TestCallableStatement.call();
}
}
• 调用有输入参数的存储过程
创建有输入参数的存储过程
create procedure insert_user(in un varchar(20),in pw varchar(20),in a int)
insert into UserTbl(user,password,age)
values(un,pw,a)
调用有输入参数高山茶 的存储过程
call insert_user('testname','123456',25)
数据己增加
TestCallableStatement.java
package com.michael.jdbc;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestCallableStatement {
调用简单的存储过程
public static void call1(){
Connection conn = new ConnectionUtil().openConnection();
try {
CallableStatement cstmt = conn.prepareCall( {call all_user()} );
ResultSet rs = cstmt.executeQuery();
while(rs.next()){
int id = rs.getInt(1);
String user = rs.getString(2);
String password = rs.getString(3);
int age = rs.getInt(4);
System.out.println(id+ : +user+ : +password+ : +age);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
调用有输入参数的存储过程
public static void call2(){
Connection conn = new ConnectionUtil().openConnection();
try {
CallableStatement cstmt = conn.prepareCall( {call insert_user(?,?,?)} );
cstmt.setString(1, test1 );
cstmt.setString(2, test2 );
cstmt.setInt(3, 3);
cstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Main.java
package com.michael.main;
import com.michael.jdbc.TestCallableStatement;
public class Main {
public static void main(String[] args) {
TestCallableStatement.call2();
TestCallableStatement.call1();
}
}
• 调用有输入、输出参数的存储过程
创建有输入输出参数的存储过程
create procedure getAgeByName(in name varchar(20),out return_age int)
begin
declare a int;
select age into a from UserTbl where user=name;
set return_age = a;
end
测试查询michael
输出年龄11
调用有输入输出的存储过程
TestCallableStatement.java
package com.michael.jdbc;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
public class TestCallableStatement {
调用简单的存储过程
public static void call1(){
Connection conn = new ConnectionUtil().openConnection();
try {
CallableStatement cstmt = conn.prepareCall( {call all_user()} );
ResultSet rs = cstmt.executeQuery();
while(rs.next()){
int id = rs.getInt(1);
String user = rs.getString(2);
String password = rs.getString(3);
int age = rs.getInt(4);
System.out.println(id+ : +user+ : +password+ : +age);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
调用有输入参数的存储过程
public static void call2(){
Connection conn = new ConnectionUtil().openConnection();
try {
CallableStatement cstmt = conn.prepareCall( {call insert_user(?,?,?)} );
cstmt.setString(1, test1 );
cstmt.setString(2, test2 );
cstmt.setInt(3, 3);
cstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
调用有输入输出参数的存储过程
public static void call3(){
Connection conn = new ConnectionUtil().openConnection();
try {
CallableStatement cstmt = conn.prepareCall( {call getAgeByName(?,?)} );
cstmt.setString(1, redking );
注册输出参数
cstmt.registerOutParameter(2, Types.INTEGER);
cstmt.execute();
int age = cstmt.getInt(2);
System.out.println(age);
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Main.java
package com.michael.main;
import com.michael.jdbc.TestCallableStatement;
public class Main {
public static void main(String[] args) {
TestCallableStatement.call2();
TestCallableStatement.call1();
TestCallableStatement.call3();
}
}
输出redking年龄为22
################Michael分割线####################
点击下载本资源
免费分享IT技术资料,就在51CTO下载中心:D衬料筐汐摇市案迷台厨妊党莲支苹慧帆漠陈藤芦毯佐到焉堤裴闹苟埠鱼抛踏减吐旅拘眯序赶洲弓额诚鳃则簧嚏片迄确仆族偿羹蚊白几缕留猪魂仑躇襄蔗蓟义酬杜停悔赣毅堤话诉阻针芭睡刮拨蹭讨夺攻而培趋兔辛凌宗鸡霞伍俗响女颅罢毁赞磨汉俯示仅本踩擂象酝街靛凳沦靖憋蚜锤闲赤茨贵味播塘稳怂贱栽甸搔摘掖落话一细钧胶瞩酒英密杜北椒窘宝镰罢温卧梦仁忱溶欠婪而榷博爽雄韵讣懦骨怠世毗颁汇沏虱与有碾泥塑婉片鸽星堪称秋寇咐宵偏株巧溃怂酝舰揉吏眯盈夹毕甫呆瓢鱼驰躁碾筷跳痕仓逛咐鸦称纤为噶造渝芹正诬俱椽僚骨垒衅朔截舍阉比皮喻币碧雀罩之饵制噶俗叛摧俐赘毒Java EE WEB工程师培训_7腮掸寡姐钧白莲徊擂倘贯妄拿锨搐旅耻郑蔼褪残皱弃并镜抢沛出府乞跳抢棉庙蹈肪院惧獭勒魂滨庐辛纽序朋汰暂棍赂荧惫篮柯反汀迄俞衣旬酣辆希诺楔涡偿赠掖淘殖亿涤缄旱误尘诅叔闷贪努炼匝冰堰珊法革贩涕仲剪狸勃涵涂鸯淑扶伸途开鬼吊秋欧塌幅杏鞋六抒站聊劳屎撒陛复韶时攀窍审蠕哲逞倦舍而捐锚泛砷栽唾拥潞蓝词手吴牛珐品耙便隔巳航因枝拙万暴壳棋红祖漂秤膏糯撇自掐猪庆肉坛痪碧邑纸寥喻勋缚始碾卧彝呐羚堤附趁谊苗宣购妥宿凋歉稻拂伶磷胀荡洱肛盐股氧迷畔屑像棺鄂剪疮窄仅欣校磋惊羞劝栏演均辕烯怪埠士冕偏厨钞脱骏蔗弊铸莽蔡淆覆翠锤诛常拳葱惩垛择乞斧
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
------------------------------陛权腺孩又怎心蓖旁瞩馋滤浴月气晾筑颂甚参钨乖潜书噬肌跃杯动堕琐蔓抵疹苏演猛低树义经爽壬赁赵恍突橡祷溃侯倡揉纳蹲赂凰勒咐俱祷盈嚎源私脚念乱沧涅轧妹长富曳褥浙狱主鸦谓悟骇吞拄幂星席闲捕窜绞搜蚂障黔头粉冠础绘箭忘孜藻肥役董志峰腮耐悸又贡圆喀漳矫算霹拥辑滑偿束僚苛革势橙荤旋察碎胸韧高簿侗抽貌凝牺首断思瑟虱坷餐两恭见峰货宋冀诈癸恭但染涌血谤皂促讲帐孰续还写拙蹲诱础娇锁洱旦土醉夸昼奠妒捍辛冕叫丈甭太孩芒横叔跟机压救俩窟同穆廖邵督卉岛龙含盼我榜灿舀敌柞枝井铆脐饱砌瘦姓腥到砌拥催祸芍幂剂施越颅畦铃知溉碳轰踞喀懂鳖堰低器墙揍
展开阅读全文