java+带返回值的存储过程_Java处理带返回值的存储过程Procedure (SQL Server)
发布日期:2021-09-13 10:04:22 浏览次数:2 分类:技术文章

本文共 2236 字,大约阅读时间需要 7 分钟。

package com.zjx.test;

import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class TestProcedure {

String url = "jdbc:microsoft:sqlserver://172.16.11.20:1433;DatabaseName=new_cmcc;SelectMethod=cursor";

String username = "sa";

String password = "111";

public static void main(String[] args) {

TestProcedure tp = new TestProcedure();

Connection conn = tp.getConn();

tp.executeStoredProcedureTest(conn);

tp.getAllUsers(conn);

try {

if(!conn.isClosed()){

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

public Connection getConn() {

Connection conn = null;

try {

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

} catch (Exception e) {

System.out.println("注册驱动失败!");

e.printStackTrace();

}

try {

conn = DriverManager.getConnection(url, username, password);

} catch (Exception e) {

System.out.println("数据库连接失败!");

e.printStackTrace();

}

return conn;

}

/**

*

create table "new_cmcc"."dbo"."users"(

"id" int identity not null,

"firstname" varchar(50) null,

"lastname" varchar(50) not null,

"age" int default '(20)' not null,

constraint "id" primary key ("id")

)

*/

public static void getAllUsers(Connection conn){

Statement st = null;

ResultSet rs = null;

try {

st = conn.createStatement();

rs = st.executeQuery("select * from new_cmcc.dbo.users");

while(rs.next()){

System.out.println(rs.getInt(1)+" " +rs.getString(2)+" " +rs.getString(3)+" " +rs.getInt(4));

}

} catch (SQLException e) {

e.printStackTrace();

} finally{

try {

rs.close();

st.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

/**

*

//drop procedure getNames;

CREATE PROCEDURE getNames

(@cityName CHAR(50))

AS

BEGIN

IF ((SELECT COUNT(*)

FROM new_cmcc.dbo.users

WHERE firstname = @cityName) > 0)

RETURN 1

ELSE

RETURN 0

END * @param con

*/

public static void executeStoredProcedureTest(Connection con) {

try {

CallableStatement cstmt = con.prepareCall("{? = call dbo.getNames(?)}");

cstmt.registerOutParameter(1, java.sql.Types.INTEGER);

cstmt.setString(2, "周"); cstmt.execute();

System.out.println("RETURN STATUS: " + cstmt.getInt(1));

cstmt.close();

}

catch (Exception e) {

e.printStackTrace();

}

}

}

转载地址:https://blog.csdn.net/weixin_39817176/article/details/114941780 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java getwidth_为什么getWidth函数在JAVA中返回更多值? - java
下一篇:java idea封装快捷键_idea万能快捷键(alt enter),你不知道的17个实用技巧!!!

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月11日 09时55分42秒