最近,在忙着换一份工作,面试的时候,被一个话题卡住了,也许是我之前做的项目没有使用过存储过程吧,所以,就相对来说陌生了,被一个考官问得很失底气,遂我决定研究一番,原来是这么的简单,下文记录一下这个历程,以后看一下就一目了然了
引用
附件说明
附件中包含了JDBC使用到的mysql驱动包和小生研究的简单调用代码
引用
首先是,创建数据库--sqlStudy
CREATE DATABASE sqlStudy;
接着创建表--user
CREATE TABLE user
(
id int(10) NOT NULL PRIMARY KEY ATUO_INCREMENT,
name char(50) NOT NULL
)
插入几条数据
USE sqlStudy;
INSERT INTO user VALUES(id,'first');
INSERT INTO user VALUES(id,'second');
INSERT INTO user VALUES(id,'third');
INSERT INTO user VALUES(id,'fourth');
INSERT INTO user VALUES(id,'fifth');
INSERT INTO user VALUES(id,'sixth');
检验下插入的数据吧:
SELECT * FROM user;
然后,创建存储过程--findById
MySQL存储过程语法详见:
http://www.blogjava.net/sxyx2008/archive/2009/11/24/303497.html
DELIMITER //;--这个是设置mysql的分隔符,默认mysql是;
DROP PROCEDURE IF EXISTS findById//
CREATE PROCEDURE findById(IN param int)--IN传入参数进来
BEGIN
SELECT * FROM user WHERE id = param ;
END//
如果报错的话,请检查一下语句是否写错了!此时,可以测试一下我们的存储过程:
SET @param=3//
CALL findById(@param);
你会发现,第三条记录出来了!
引用
下面是JAVA中使用JDBC操作存储过程代码
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.CallableStatement;
import com.mysql.jdbc.Connection;
public class CallProcedure {
private static final String USERNAME = "root";
private static final String PASSWORD = "";
private static final String URL = "jdbc:mysql://localhost:3306/sqlstudy";
public static void call(){
loadMySqlDriver();
Connection conn = null;
CallableStatement cstmt = null;
ResultSet rs = null;
try{
conn = (Connection) DriverManager
.getConnection(URL , USERNAME , PASSWORD);
//创建调用存储过程的预定义SQL语句
String sql = "{call findById(?)}";
//创建过程执行器
cstmt = (CallableStatement) conn.prepareCall(sql);
//设置入参
cstmt.setString(1,"1");
cstmt.executeUpdate();
rs = cstmt.getResultSet();
while(rs.next()){
int id = rs.getInt(1);
String name = rs.getString(2);
System.err.println("取得的id为:"+id+"\n"+"取得的name为:"+name);
}
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}finally{
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(cstmt != null){ // 关闭声明
try{
cstmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
}
}
/**
* 加载MySql驱动
*/
public static void loadMySqlDriver(){
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
call();
}
}
结果:
取得的id为:1
取得的name为:First
分享到:
相关推荐
Java调用Mysql存储过程,Mysql存储过程源代码在该项目根目录下。
相信大家都知道存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集。存储过程是数据库中的一个重要对象,任何一个...Java调用mysql存储过程,实现如下,有需要的朋友们可以参考借鉴,下面来一起看看吧。
Java调用数据库存储过程[mysql测试通过]
java 调用 mysql存储过程实例
MyBatis调用MYSQL存储过程 返回多行 引用的包: asm-3.1.jar cglib-2.2.jar commons-logging-1.1.1.jar log4j-1.2.13.jar mybatis-3.0.4.jar mysql-connector-java-5.1.13.jar slf4j-api-1.5.8.jar slf4j-log4j12-...
Java调用存储过程--传入集合参数 具体的方法描述分析
使用Java struts+spring_ibaits+调用Mysql存储过程 实现增删改查
JAVA通过MyBatis调用MySql存储过程和函数doc文档合集整理.zip
如何在java中调用mysql的存储过程的事例-how Calling mysql storage process stories
主要介绍了Java调用MySQL存储过程并获得返回值的方法,实例分析了java实现MySQL存储过程的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
主要介绍了java调用mysql存储过程的方法,以实例形式较为详细的分析了mysql数据库的建立和存储过程的实现方法,需要的朋友可以参考下
资源包中囊括了MySQL数据库中的存储过程的使用包含的基本结构及日常所使用到的基本函数的使用【包括java端调用存储过程,创建临时表,动态执行sql语句,过程的递归调用,指针循环取数,批量创建表删除表,树状结构的...
hibernate本对数据库的操作有些不完美,有必要的时候可以调用存储过程来补足。
1. 创建存储过程 建立一个MySQL的存储过程 add_pro 代码如下: delimiter // drop procedure add_pro // create procedure add_pro(a int , b int , out sum int ) begin set sum = a * b; end; // 2. 调用存储过程 ...
java 调用存储过程 mysql数据库 有数据库脚本
analyData这是一个java定时任务,定时调用mysql的存储过程
mysql 存储过程 ,存储函数的调用示例
JAVA调用 MYSQL存储过程 JSP实现分页
android通过jdbc方式连接mysql,并执行存储过程。连接数据库部分最好新建一个线程来实现和主线程分开。编译之前确定添加了mysql-connector-java-5.0.8-bin库否则会出错
通过调用数据库连接对话框建立数据库连接 (目前测试支持 MSSQL, Oracle, Access, MySql) 根据自定义模板通过数据库表、视图和存储过程批量生成代码, 模板编辑和代码查看支持语法高亮 (Java, VB, T-SQL) 可以...