MySQL中使用存储过程(整理)
MySQL中使用存储过程
使用CallableStatements执行存储过程
mysql版本:5.0
Connector/J的版本:3.1.1以上(java.sql.CallableStatement接口已完全实现,除了getParameterMetaData()方法)
MySQL的存储过程语法在MySQL参考手册的"存储过程和函数"一章.
http://www.mysql.com/doc/en/Stored_Procedures.html
下面是一个存储过程,返回一个inOutParam增1后的值,以ResultSet形式传入一个字符串参数inputParam.
CREATE PROCEDURE demoSp(IN inputParam VARCHAR(255), INOUT inOutParam INT)
BEGIN
DECLARE z INT;
SET z = inOutParam + 1;
SET inOutParam = z;
SELECT inputParam;
SELECT CONCAT('zyxw', inputParam);
END
要通过connector/J使用demoSp这个存储过程,要经过几个步骤:
1.Connection.prepareCall()
import java.sql.CallableStatement;
...
//
// Prepare a call to the stored procedure 'demoSp'
// with two parameters
//
// Notice the use of JDBC-escape syntax ({call ...})
//
CallableStatement cStmt = conn.prepareCall("{call demoSp(?, ?)}");
cStmt.setString(1, "abcdefg");
Connection.prepareCall()方法非常消耗资源,因为jdbc驱动通过元数据(metadata)的获取支持输出参数.出于执行效率的考虑,应该尽可能减少不必要的prepareCall调用,重用CallableStatement对象.
2.注册输出参数(如果有的话)
要得到输出参数的值(创建存储过程时设置的OUT和INOUT),JDBC要求这些参数必须要在数据库操作执行之前通过registerOutputPrameter()方法设置.
import java.sql.Types;
...
//
// 下面给出了设置输出参数的几个方法
//
// 注册第二个参数为输出参数
//
cStmt.registerOutParameter(2);
//
// 注册第二个参数为输出参数,设定getObject得到的返回值的类型为整型
//
cStmt.registerOutParameter(2, Types.INTEGER);
//
// 注册名为"inOutParam"的参数为输出参数
//
cStmt.registerOutParameter("inOutParam");
//
// 注册名为"inOutParam"的参数为输出参数,设定getObjec
相关文档:
1016错误:文件无法打开,使用后台修复或者使用phpmyadmin进行修复。
1044错误:数据库用户权限不足,请联系空间商解决
1045错误:数据库服务器/数据库用户名/数据库名/数据库密码错误,请联系空间商检查帐户。
1054错误:程序文件跟数据库有冲突,请使用正确的程序文件上传上去覆盖。
1146错误:数据表缺失,请恢 ......
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MySql.Data.Types;
using MySql.Data.MySqlCl ......
mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,
要修改my.cnf或者在mysql启动的时候加入一些参数。如果在my.cnf里面修改,需增加如下几行
long_query_time = 1
log-slow-queries = /var/youpath/slow.log
log-queries-not-using-indexes
long_query_time 是指执 ......
查看服务器目前状态信息的命令,两种方式:
1. 命令行,进入mysql/bin目录下,输入mysqladmin extended-status
2. 连接到mysql,输入show status;
3. 如果要查看某个数据,可以
mysql> show s ......
将Excel数据导入MySql
1.将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉。。),假如存到“D:\data.txt”这个位置里。
2.根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命令
load data local infile 'D:\data.txt' into table exceltomysql fields terminated ......