存储过程(四)查询,使用的是jdbc

来源:互联网 发布:形容闪亮的网络词语 编辑:程序博客网 时间:2024/05/02 21:55

IN `_fields` varchar(200),IN `_table` varchar(50)         

//这里面要注意,每个地方的空格都很重要,要不拼接起来的sql语句是错误的,现在没问题,用的时候                                                                           要注意调试

BEGIN

SET @strsql = CONCAT(           //逗号都是在下一行,concat是拼接的意思

'select '

,_fields        //参数,显示的列

,' from '

,_table      //参数:表名

                ,CASE IFNULL(_where,'')          //这里就可以自己加了,比如order by ;ground by

                        when '' then ''      //如果_where为空,则后面接空

ELSE CONCAT(' where ',_where) END   //否则接where语句

,' limit 0,2'

);

PREPARE strsql FROM @strsql;         //预处理,把@strsql赋值给

EXECUTE strsql;                    //执行sql

END


java:

Class.forName("com.mysql.jdbc.Driver") ;
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test""root""admin");  

CallableStatement call=con.prepareCall("call q1('id,code,name,parentcode','t')"); //q1存储过程名,参数是在 ' ' 内,逗号分隔,是一个in参数,t是一个表名

boolean b=call.execute();

if(b){

ResultSet rs=call.getResultSet();

while(rs.next()){

int id=rs.getInt(1);

int code=rs.getInt(2);

String name=rs.getString(3);

int parentcode=rs.getInt(4);

//System.out.println(id+"\t"+code+"\t"+name+"\t"+parentcode);

            }

b=call.getMoreResults();

}

0 0
原创粉丝点击