存储过程是什么?
存储过程是一段代码,存储在数据库中,可以被程序调用
创建一个存储过程
create PROCEDURE SELECT_TESTTWO (IN TESTID LONG ,INOUT TESTALL VARCHAR(255))
BEGIN
SELECT `name` from test where id = TESTID INTO TESTALL;
END
BEGIN
SELECT `name` from test where id = TESTID INTO TESTALL;
END
创建存储过程指令:
create PROCEDURE
PROCEDURE_Name(输入,输出参数,可以有多个)
结构体
BEGIN sql END;
调用一个存储过程
@Test
public
void
test_PROCEDURE
()
throws
Exception
{
Class
.
forName
(
"com.mysql.jdbc.Driver"
);
Connection
connection
=
DriverManager
.
getConnection
(
url
,
user
,
password
);
CallableStatement
callableStatement
=
connection
.
prepareCall
(
"call SELECT_TESTTWO(?,?)"
);
//调用存储过程
callableStatement
.
setLong
(
1
,
1
);
callableStatement
.
registerOutParameter
(
2
,
Types
.
VARCHAR
);
callableStatement
.
execute
();//执行存储过程
// Assert.assertNotNull(callableStatement);
System
.
out
.
println
(
callableStatement
.
getString
(
2
));
}
显示所有的存储过程
show procedure status;
删除一个存储过程
drop PROCEDURE demo;
DROP PROCEDURE SELECT_test;
DROP PROCEDURE SELECT_testone;
DROP PROCEDURE SELECT_test;
DROP PROCEDURE SELECT_testone;
存储过程的有点
提高效率,我们可以直接来使用
减少和数据库的通信,减少网络负担