Sql 语句

有一个test_table1表  他有两个字段  ID 和name

proc是procedure的缩写 也就是存储过程,StuProc2为创建的存储过程名称

执行以下创建存储后会在Sql 数据库生成存储过程

create proc StuProc2
as
begin
select * from test_table1;
end
go

调用存储过程(这是无参的):exec StuProc2

创建一个带参的存储过程  @跟上参数名 和类型   返回参数多一个 output

create proc StuProc1

@sname varchar(100),@count int output
as 
begin
select @count=count(ID) from test_table1 where name=@sname ;
end
go

调用有参存储过程:exec StuProc1 '字符串参数'  (字符串需要有引号)

java 调用,需要用到JDBC连接数据库并创建Connection

package com.bowei.utl;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties; public class JdbcUtl {
// 数据库驱动
private static String Driver = "";
// 数据库地址
private static String url = "";
// 数据库用户名
private static String userName = "";
// 数据库密码
private static String password = "";
static {
Properties p = new Properties();
try {
// 通过相对路径加载文件
p.load(new FileInputStream(new File("sof/jdbc.properties")));
// 用getProperty方法通过关键字获取信息
Driver = p.getProperty("Driver");
url = p.getProperty("url");
userName = p.getProperty("userName");
password = p.getProperty("password");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} public static String getDriver() {
return Driver;
} public static void setDriver(String driver) {
Driver = driver;
} public static String getUrl() {
return url;
} public static void setUrl(String url) {
JdbcUtl.url = url;
} public static String getUserName() {
return userName;
} public static void setUserName(String userName) {
JdbcUtl.userName = userName;
} public static String getPassword() {
return password;
} public static void setPassword(String password) {
JdbcUtl.password = password;
} // 获取数据库连接
public static Connection getConn() {
Connection conn = null;
try {
// 加载驱动
Class.forName(Driver);
// 获取数据库连接
conn = DriverManager.getConnection(url, userName, password); } catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
} // 关闭数据库资源
public static void closeAll(ResultSet rs, Statement stat, Connection conn) {
/* 分别按顺序关闭数据库的结果集资源,Statement 对象资源以及Connection 连接数据库对象 */
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stat != null) {
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
} }
}

JDBC内容:

Driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://192.168.33.170;DatabaseName=test
userName=xxzx
password=xxzx

package cunChuGuoCheng;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException; import com.bowei.utl.JdbcUtl; public class cunChu {
/**
* 带参的存储过程 返回一个int类型的值
* */
public void daican(){
try{
Connection conn = JdbcUtl.getConn();
CallableStatement c=conn.prepareCall("{call StuProc1(?,?)}");//调用带参的存储过程
//给存储过程的参数设置值
c.setString(1,"测试"); //将第一个参数的值设置成测试
c.registerOutParameter(2,java.sql.Types.INTEGER);//第二个是返回参数 返回未Integer类型
//执行存储过程
c.execute();
System.out.println (c.getInt(2));//打印返回参数
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 这个是直接返回查询所有的结果
* */
public void query(){
try{
Connection conn = JdbcUtl.getConn();
CallableStatement c=conn.prepareCall("{call StuProc2}");//这儿调用了查询所有的存储过程
ResultSet rs=c.executeQuery();
System.out.println ("学号:"+" "+"姓名:");
while(rs.next())
{
int Stu=rs.getInt("ID");
String name=rs.getString("name");
System.out.println (Stu+" "+name+" ");
}
c.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException {
cunChu cun=new cunChu();
//cun.daican();//带参的存储过程
cun.query();//返回查询所有的存储过程 } }

sql server 存储过程 以及java如何使用存储过程的更多相关文章

  1. 如何在SQL Server中生成和使用CRUD存储过程

    在本文中,请参阅如何在SQL Server中生成和使用CRUD存储过程. 大多数数据库系统基于缩写CRUD调用的最简单的4种数据操作操作进行操作. 此首字母缩写词代表CREATE,READ,UPDAT ...

  2. sql server 查询某个表被哪些存储过程调用

    sql server 查询某个表被哪些存储过程调用 select distinct object_name(id) from syscomments where id in (select id fr ...

  3. 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?

    如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何 ...

  4. 刷新SQL Server所有视图、函数、存储过程

    刷新SQL Server所有视图.函数.存储过程 更多   sql   此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...

  5. 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO

    刷新SQL Server所有视图.函数.存储过程 更多   sql   此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...

  6. 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效

    数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...

  7. SQL Server 数据库的维护(一)__存储过程(procedure)

    --维护数据库-- --存储过程(procedure)-- --概述: SQl Serve的存储过程是由一个或多个T-SQL语句组成的一个集合.常用的程序代码段通常被创建成存储过程,一次创建多次调用, ...

  8. [转载]SQL Server查找包含某关键字的存储过程3种方法

    存储过程都写在一个指定的表中了,我们只要使用like查询就可以实现查询当前这台SQL Server中所有存储过程中包括了指定关键字的存储过程并显示出来,下面一起来看看我总结了几条命令. 例子1 代码如 ...

  9. sql:sql server,MySQL,PostgreSQL的表,视图,存储过程结构查询

    sql server 2005: --SQL SERVER 2005 生成代码需要知道的SQL语句 use LibrarySystem --查询当前数据库所有表和其的主键字段,字段类型,长度,是否为空 ...

  10. SQL Server ->> SQL Server 2016新特性之 -- sp_set_session_context存储过程和SESSION_CONTEXT函数

    sp_set_session_context存储过程和SESSION_CONTEXT函数出现在了SQL Server 2016 CTP3.0上.它俩配合起来的作用是sp_set_session_con ...

随机推荐

  1. JavaScript 加载动画Canvas 设计

    var c = document.getElementById('c'), ctx = c.getContext('2d'), cw = c.width = 400, ch = c.height = ...

  2. java8

    1:Scanner的使用(了解) (1)在JDK5以后出现的用于键盘录入数据的类. (2)构造方法: A:讲解了System.in这个东西. 它其实是标准的输入流,对应于键盘录入 B:构造方法 Inp ...

  3. ASP.NET MVC随想录——漫谈OWIN

    什么是OWIN OWIN是Open Web Server Interface for .NET的首字母缩写,他的定义如下: OWIN在.NET Web Servers与Web Application之 ...

  4. Odoo中最小库存规则和按订单生成规则的区别

    ---恢复内容开始--- 最小库存规则(Minimum stock rule)用来保证你的库存产品数量总是不会低于设定的最小库存数量.用来保证产品生产和回到客户的需求.当库存产品低于这个最小库存数量时 ...

  5. 【XLL 框架库函数】 QuitFramework

    去初使化框架库,简问题是才的重新初使化 XLOPER/XLOPER12. 参数 这个函数没有参数 属性值/返回值 这个函数没有返回值.

  6. CoreAnimation 之CATextLayer

    如果你想在一个图层中显示文字,完全可以借助图层代理直接将Core Graphics写入图层的内容(这就是UILabel的精髓).如果雨果寄宿于图层的视图,直接在图层上操作,其实相当繁琐.你要为每一个显 ...

  7. CentOS7—HAProxy安装与配置

    概述 Haproxy下载地址:http://pkgs.fedoraproject.org/repo/pkgs/haproxy/ 关闭SElinux.配置防火墙 1.vi /etc/selinux/co ...

  8. Linux下安裝Oracle database內核參數設置

    參考:1529864.1 ************************************************** RAM                                  ...

  9. Logistic回归 python实现

    Logistic回归 算法优缺点: 1.计算代价不高,易于理解和实现2.容易欠拟合,分类精度可能不高3.适用数据类型:数值型和标称型 算法思想: 其实就我的理解来说,logistic回归实际上就是加了 ...

  10. Knockout.js随手记(2)

    计算属性 konckout.js的API文档,写的极为详细和生动,透过MVVM的运作原理,开发时只需专注于定义ViewModel逻辑,不需耗费心力处理TextBox.Select的onchange.o ...