用JAVA调用Mysql数据库,数据存储过程的封装与调用;
Posted AnswerTheQuestion
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用JAVA调用Mysql数据库,数据存储过程的封装与调用;相关的知识,希望对你有一定的参考价值。
1.存储过程的封装:右键函数--新增函数--选择进程(进程是没有返回值的)或者选择函数(函数是有返回值的)
2.在这里我们选择进程--进入后点击下一步
模式中有IN(往里输入参数),OUT(往外输出参数),INOUT,在这里我们通常使用的就是IN和OUT,如果什么也不写系统默认为IN。
建立好函数之后我们既要把要执行的命令封装到函数里,例如:
注意:在写完一条语句后要加分号,参数varchar类型后要加上长度。
实例:
package com.inba.maya.cunchu; import java.util.*; import java.sql.*; public class MyCunChu { public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?characterEncoDing=GBK","root",""); //注意:在调用数据库函数时关键词是 call 函数名后一定要加(),无论该函数是不是带有参数的,带参数的话一定要写参数; //调用没有参数的 //CallableStatement cs=conn.prepareCall("call TCC()"); //ResultSet rs=cs.executeQuery(); //调用有参数的 //CallableStatement cs=conn.prepareCall("call TTA(?, ?)"); //输入两个参数 //cs.setString(1, "k006"); //cs.setInt(2, 90); //ResultSet rs=cs.executeQuery(); //输出参数 CallableStatement cs=conn.prepareCall("call TDD(?, ?)"); //在这里由于我在数据库中写参数时,定义的第一个参数是IN,第二个参数是OUT,所以第一个还是要setString cs.setString(1, "k001"); //因为第二个是OUT,所以要用registerOutParameter(位置,java.sql.Types.数据类型) cs.registerOutParameter(2, java.sql.Types.INTEGER); ResultSet rs=cs.executeQuery(); //获得参数时一定要在上面执行查询完成之后 int n=cs.getInt(2); while(rs.next()){ System.out.println(n); System.out.println(rs.getString(1)+rs.getString(2)+rs.getInt(5)+rs.getDouble(3)); } conn.close(); } }
以上是关于用JAVA调用Mysql数据库,数据存储过程的封装与调用;的主要内容,如果未能解决你的问题,请参考以下文章