java如何调mysql存储过程_Java实现mysql存储过程调用

前言:之前用的是VS+SQL Server 现在用的是Myeclipse+Mysql。能实现心里还是挺兴奋的。

存储过程优点:

1、存储过程增强了SQL语言的功能和灵活性。

2、存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。

3、存储过程能实现较快的执行速度。

4、存储过程能过减少网络流量。

优点知道就可以了,不必一字不差的背过,下面来看看如何实战吧!

准备工作:

1、安装Myeclipse

2、安装mysql并创建好mysql存储过程 具体可以看我之前的博客(mysql存储过程)

3、创建java工具类

1、创建java工具类

/**

* 作者:lxd

* 创建时间:2016 M05 14 13:08:32

* version 1.0 * @parameter

* @since * @return

*/

package cn.com.jdbc;

import java.sql.*;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

public final class JdbcUtil {

//连接数据库,账号是root,密码是空,数据库名字为dong

private static String url="jdbc:mysql://localhost:3306/dong";

private static String user="root";

private static String password="";

private JdbcUtil(){

}

static{

try {

//加载驱动

Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

throw new ExceptionInInitializerError(e);

}

}

public static Connection getConnection() throws SQLException{

//注意使用的都是java.sql中的接口

return DriverManager.getConnection(url,user,password);

}

public static void free(ResultSet rs,Statement st,Connection conn){

try {

if (rs != null)

rs.close();

}catch(SQLException e) {

e.printStackTrace(); //输出堆栈

}

finally {

try{

if(st!=null)

st.close();

}catch(SQLException e) {

e.printStackTrace(); //输出堆栈

}finally{

if(conn!=null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace(); //输出堆栈

}

}

}

}

}

}

2、创建访问存储过程的Psjava.java类

/**

* 作者:lxd

* 创建时间:2016 M05 28 11:34:10

* version 1.0 * @parameter

* @since * @return

*/

package cn.com.jdbc;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Types;

import com.mysql.jdbc.CallableStatement;

public class PsTest {

/**

* @param args

* @throws SQLException

*/

public static void main(String[] args) throws SQLException {

// TODO Auto-generated method stub

ps();

}

static void ps() throws SQLException{

Connection conn = null;

CallableStatement cs=null;

ResultSet rs=null;

try {

//2、建立连接

conn=JdbcUtil.getConnection();

String sql="{call addUser(?,?,?,?)}";

//创建存储过程的对象

cs=(CallableStatement) conn.prepareCall(sql);

//注册输出参数

cs.registerOutParameter(4, Types.INTEGER);

//给存储过程的参数设置值

cs.setString(1, "ps name");

cs.setDate(2, new java.sql.Date(System.currentTimeMillis()));

cs.setFloat(3, 100f);

//执行存储过程

cs.executeUpdate();

int id=cs.getInt(4);

//得到存储过程的输出参数值

System.out.println("id="+id);

}finally{

JdbcUtil.free(rs, cs, conn);

}

}

}

3、点击运行,会在控制台上输出结果

0818b9ca8b590ca3270a3433284dd417.png

4、查看刚才插入的结果

0818b9ca8b590ca3270a3433284dd417.png

小结:之前用过SQL Server的存储过程,现在转用mysql的还得在学习学习,不过只是开发工具换了换,思想还是一样的。通过敲这个例子,让我对java数据库的访问有了更加深入的了解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值