栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java调用mysql存储过程实例分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java调用mysql存储过程实例分析

本文实例讲述了java调用mysql存储过程的方法。分享给大家供大家参考。具体如下:

数据库的测试代码如下 :

1、新建表test

create table test(
field1 int not null
)
TYPE=MyISAM ;
insert into test(field1) values(1);

2、删除已存在的存储过程:

-- 删除储存过程
delimiter // -- 定义结束符号
drop procedure p_test;

3、mysql存储过程定义:

create procedure p_test()
begin
declare temp int;
set temp = 0; 
update test set field1 = values(temp);
end

4、调用方法:

CallableStatement cStmt = conn.prepareCall("{call p_test()}");
cStmt.executeUpdate();
import java.sql.*; 
 
public class ProcedureTest {
  
 public static void main(String[] args) {
 //callIn(111);
 //callOut();
 callResult();
 } 
 
 public static void callIn(int in){
 //获取连接
 Connection conn = ConnectDb.getConnection();
 CallableStatement cs = null;
 try {
  //可以直接传入参数
  //cs = conn.prepareCall("{call sp1(1)}");
  //也可以用问号代替
  cs = conn.prepareCall("{call sp1(?)}");
  //设置第一个输入参数的值为110
  cs.setInt(1, in);
  cs.execute();
 } catch (Exception e) {
  e.printStackTrace();
 } finally {
  try {
  if(cs != null){
   cs.close();
  }
  if(conn != null){
   conn.close();
  }
  } catch (Exception ex) {
  ex.printStackTrace();
  }
 }
 }
 
 public static void callOut() {
 Connection conn = ConnectDb.getConnection();
 CallableStatement cs = null;
 try {
  cs = conn.prepareCall("{call sp2(?)}");
  //第一个参数的类型为Int
  cs.registerOutParameter(1, Types.INTEGER);
  cs.execute();
  //得到第一个值
  int i = cs.getInt(1);
  System.out.println(i);
 } catch (Exception e) {
  e.printStackTrace();
 } finally {
  try {
  if(cs != null){
   cs.close();
  }
  if(conn != null){
   conn.close();
  }
  } catch (Exception ex) {
  ex.printStackTrace();
  }
 }
 }
 
 public static void callResult(){
 Connection conn = ConnectDb.getConnection();
 CallableStatement cs = null;
 ResultSet rs = null;
 try {
  cs = conn.prepareCall("{call sp6()}");
  rs = cs.executeQuery();
  //循环输出结果
  while(rs.next()){
  System.out.println(rs.getString(1));
  }
 } catch (Exception e) {
  e.printStackTrace();
 } finally {
  try {
  if(rs != null){
   rs.close();
  }
  if(cs != null){
   cs.close();
  }
  if(conn != null){
   conn.close();
  }
  } catch (Exception ex) {
  ex.printStackTrace();
  }
 }
 }
} 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; 
class ConnectDb {
 public static Connection getConnection(){
 Connection conn = null;
 PreparedStatement preparedstatement = null;
 try {
  Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
  String dbname = "test";
  String url="jdbc:mysql://localhost/"+dbname+"?user=root&password=root&useUnicode=true&characterEncoding=8859_1";
  conn= DriverManager.getConnection(url);
 } catch (Exception e) {
  e.printStackTrace();
 } 
 return conn;
 } 
}

希望本文所述对大家的java程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/151574.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号