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();
}
}
}
分享到:
相关推荐
通过这种方式,你可以使用Java的JDBC API在Eclipse的Maven项目中成功连接到SQL Server 2012并调用存储过程。这种方式具有良好的可扩展性和灵活性,可以方便地应用于各种数据库操作。同时,Maven作为项目管理工具,...
### Java连接SqlServer数据库调用存储过程详解 #### 一、引言 在现代软件开发过程中,Java作为一种广泛使用的编程语言,经常需要与各种数据库进行交互。其中,Microsoft SQL Server是一种非常流行的数据库管理系统...
Java中调用SQL Server存储过程是一项常见的任务,特别是在开发企业级应用时,因为存储过程能够封装复杂的数据库逻辑,提高性能并降低网络流量。本篇文章详细介绍了如何通过Java调用SQL Server存储过程,涵盖了几种...
在Java编程中,调用数据库的存储过程是常见的任务,特别是在处理复杂的业务逻辑或需要高效数据操作时。本文将详细讲解如何在Java中调用含有`OUT`参数的存储过程,帮助开发者解决这类问题。 首先,理解存储过程的...
首先,存储过程(Stored Procedure)是预编译的SQL语句集合,它们封装在数据库中,可以执行特定的任务或处理数据。在MsSqlServer 2000中,存储过程提供了一种高效、安全的方式来操作数据,因为它们减少了网络通信,...
你可以构建一个SQL查询字符串,包含存储过程的调用,并通过`addScalar()`或`setResultTransformer()`来处理返回的结果。 ```java Session session = sessionFactory.openSession(); String sql = "CALL my_...
同样,我们可以通过Java代码来调用这个带有输出参数的存储过程: ```java package com.hyq.src; public class TestProcedureTWO { public TestProcedureTWO() {} public static void main(String[] args) { ...
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样可以提高存储过程的性能。 ·存储过程的概念 ...
6. 处理结果:根据存储过程的输出,获取结果集(ResultSet)或其他返回值,如整数或单个值,使用`CallableStatement.getXXX()`方法。 7. 清理资源:执行完毕后,记得关闭ResultSet、CallableStatement以及...
本篇文章将详细讲解如何利用JDBC调用存储过程、函数以及处理游标。 首先,存储过程是数据库中预编译的一组SQL语句,它允许我们封装复杂的业务逻辑,提高执行效率,减少网络传输的数据量。在JDBC中调用存储过程通常...
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。存储过程Procedure是...
6. 处理结果,如果存储过程有返回值或输出参数,可以使用`getXXX()`方法获取,例如`String result = cs.getString(2)`。 7. 最后,记得关闭CallableStatement和Connection。 在JSP中,我们可以将上述Java代码封装到...
5. `Java中调用SQL+Server存储过程示例.txt`和`jsp如何调用sql server存储过程.txt`提供了Java代码示例,解释了如何在`jsp`中通过Java代码调用存储过程。 通过学习以上资源,开发者可以更好地理解并掌握`jsp`调用...
在Java编程中,调用数据库的存储过程是常见的任务,特别是在复杂的业务逻辑处理和数据操作时。本示例将深入探讨如何使用Java来调用存储过程,并处理返回的结果。存储过程是预编译的SQL语句集合,可以提高性能、安全...
总之,Java调用Anywhere 9的存储过程涉及到JDBC连接、CallableStatement使用以及结果处理等环节。在实际操作中,需要根据数据库的具体情况和存储过程的特性进行适当的调整。确保正确配置数据库连接信息,并遵循Java...
在IT行业中,数据库操作是应用程序不可或缺的一部分,而存储过程作为数据库中的预编译...在实际开发中,确保正确配置数据库连接,并根据你的存储过程参数类型和返回值调整代码。希望这个详尽的解释对你的学习有所帮助。
5. **带返回值的存储过程** 如果存储过程有返回值,可以定义输出参数。比如,一个返回用户信息的存储过程可能需要传入用户ID并返回用户名和密码: ```sql CREATE PROCEDURE getuserinfo2 (@id int, @userName ...
存储过程是数据库管理系统中预编译的SQL语句集合,它是一种在数据库中存储复杂程序的方法,可以被多次调用,以完成特定的数据库操作。存储过程是数据库系统中的一个重要组成部分,它允许开发者将一系列的SQL操作封装...