ITKeyword,专注技术干货聚合推荐

注册 | 登录

Java实现mysql存储过程调用

lxd8731247769 分享于 2016-06-09

推荐:JAVA调用MYSQL存储过程实现分页

create procedure newpage()   begin   select count(*) from admin;   end;         create procedure jilu(in news int,in pagesizeint)   begin   set @news

2019阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

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

存储过程优点:

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

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

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

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

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

准备工作:

1、安装Myeclipse

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

3、创建java工具类

推荐:MYSQL存储过程以及JAVA调用

调用存储过程 call 存储过程名(); 以上我们创建了一个简单的存储过程,当然我们的应用程序不可能使用这么简单的存储过程,我们需要的是能给存储过程传递参数,以


1、创建java工具类

<span style="font-family:KaiTi_GB2312;font-size:18px;">/**
 * 作者: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(); //输出堆栈
				}
			}
			}
		}
    }
}
</span>

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

<span style="font-family:KaiTi_GB2312;font-size:18px;">/**
 * 作者: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);
		}
	}

}
</span>

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


4、查看刚才插入的结果



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


推荐:Java 调用MySQL存储过程

(1)相关API:java.sql.CallableStatement 使用到java.sql.CallableStatement接口,该接口专门用来调用存储过程,该对象的获得依赖于java.sql.Connection,通过

      前言:之前用的是VS+SQL Server 现在用的是Myeclipse+Mysql。能实现心里还是挺兴奋的。 存储过程优点: 1、存储过程增强了SQL语言的功能和灵活性。 2、存储过程被创建后,可以在程序中被

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。