sqlserver学习2---java执行存储过程
一、存储过程
1、新增操作存储过程
--------------1、新建 增加学生的存储过程----------------------------
set IDENTITY_INSERT student on
go
create procedure addStu(@maxcount BIGINT)
as
begin
DECLARE @count int;
set @count = 0;
while(@count<@maxcount)
begin
if(@count=2)
begin
insert into student values('小叶','女',20+@count,GETDATE(),GETDATE());
end
else if(@count%3=0)
begin
insert into student values('小啦啦啦啦啦3','女',10+@count,GETDATE(),GETDATE());
end
else
insert into student values('小花'+cast(@count as varchar(1024)),'男',20+@count,CONVERT(VARCHAR(10),GETDATE(),120),DATEADD(MONTH,2,GETDATE()));
set @count = @count +1;
end
end
go
set IDENTITY_INSERT student off
2、执行存储过程
--执行存储过程
exec addStu 20
--删除存储过程
drop procedure addStu
3、执行语句块
----------------执行语句块---------------------------------------------------------------------
declare @STR NVARCHAR(4000);
declare @count int;
declare @time int;
set @count = 100;
begin
--将表student中最大id的值赋值给变量@count
select @count = max(ID) from student;
--
select @time = CAST(CONVERT(VARCHAR(6),MAX(CREATE_TIME),112)AS INT) from student;
set @STR = 'select * from dbo.student where id <='+cast(@count as NVARCHAR(4000));
--执行sql语句:@STR
EXEC SP_EXECUTESQL @STR
end
go
4、修改存储过程
-----------------------修改存储过程---------------------------------------------------------------
ALTER PROCEDURE PROC_INSERT_DATA_DETAIL
@DealerID varchar(50),
@FieldName varchar(2000),
@FieldValue varchar(2000)
AS
BEGIN
DECLARE @Count INT
DECLARE @StrSQL VARCHAR(2000)
SET @Count = (SELECT COUNT(*) FROM myDATA_Details WHERE DealerID = @DealerID) IF (@COUNT>0)
BEGIN
SET @StrSQL = 'UPDATE myDATA_Details SET '+ @FieldName + ' = ''' +@FieldValue + ''' WHERE DealerID = '+ @DealerID
EXEC(@StrSQL)
END
ELSE
BEGIN
INSERT INTO myDATA_Details (DealerID) VALUES (@DealerID)
SET @StrSQL = 'UPDATE myDATA_Details SET '+ @FieldName + ' = ''' +@FieldValue + ''' WHERE DealerID = '+ @DealerID
EXEC(@StrSQL)
END
END
5、java执行存储过程
package com.xiamgmu.base.utils; import java.sql.CallableStatement;
import java.sql.Connection; public class UtilsPro {
/**
* 创建新建的存储过程
* @param args
* String procedure = "{call addStu(100)}";
*/
public static void runPrcsummone(String procedure){
Connection conn = null;
CallableStatement cstmt = null; try {
conn = UtilsDao.getConnection();
//预处理存储过程
cstmt = conn.prepareCall(procedure);
//执行存储过程
cstmt.execute();
} catch (Exception e) {
// TODO: handle exception
}finally
{
try
{
if(cstmt != null)
{
cstmt.close();
}
if(conn != null)
{
conn.close();
}
}
catch (Exception e)
{
// TODO: handle exception
}
}
} public static void main(String[] args) {
UtilsPro pro = new UtilsPro();
String procedure = "{call addStu(100)}";
UtilsPro.runPrcsummone(procedure);
}
sqlserver学习2---java执行存储过程的更多相关文章
- Mysql学习---使用Python执行存储过程
使用Python执行存储过程 使用Python执行存储过程[2部分]: 1.执行存储过程,获取存储过程的结果集 2.将返回值设置给了 @_存储过程名_序号 = #!/usr/bin/env pyt ...
- Java执行存储过程
1.JDBC调用存储过程: CallableStatement /** *p是要调用的存储过程的名字,存储过程的4个参数,用4个?号占位符代替 *其余地方写法固定 */ CallableStateme ...
- 【SQLSERVER学习笔记】分页存储过程+调用
USE [数据库名] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[存储过程名] @pageI ...
- JAVA使用JDBC技术操作SqlServer数据库执行存储过程
Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带 ...
- Java中执行存储过程和函数(web基础学习笔记十四)
一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. CallableStatement 接口继承自PreparedStatement 接口.所以CallableS ...
- java 执行mysql 8.0.11存储过程报错The user specified as a definer ('root'@'10.%.%.%') does not exist解决办法
执行存储过程,报错 java.sql.SQLException: The user specified as a definer ('root'@'10.%.%.%') does not exist ...
- Java中执行存储过程和函数
装载于:http://www.cnblogs.com/liunanjava/p/4261242.html 一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. Ca ...
- 【学习】java下实现调用oracle的存储过程和函数
在oracle下创建一个test的账户,然后按一下步骤执行: 1.创建表:STOCK_PRICES --创建表格CREATETABLE STOCK_PRICES( RIC VARCHAR(6) PRI ...
- MyCat 学习笔记 第十三篇.数据分片 之 通过HINT执行存储过程
1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150: 330 ...
随机推荐
- qdu_组队训练(ABCFIJK)
A - Second-price Auction Do you know second-price auction? It's very simple but famous. In a second- ...
- [转] Spring Boot特性
[From] http://blog.javachen.com/2015/03/13/some-spring-boot-features.html 1. SpringApplication Sprin ...
- Selenium WebDriver 中鼠标和键盘事件分析及扩展
[From] http://www.51testing.com/html/18/631118-861557.html 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和 ...
- PIE SDK屏幕坐标和地图坐标转换
1. 功能简介 屏幕坐标和地图坐标转换,就是字面意思,将电脑屏幕的坐标转换为带有空间信息的地图坐标,主要运用PIE SDK地图控件的ToMapPoint()方法,而地图坐标转换为设备坐标(屏幕),用的 ...
- 安装软件或运行软件时提示缺少api-ms-win-crt-runtime库解决方法
最近碰到一个问题,在我软件安装或运行时会提示缺少api-ms-win-crt-runtime-|1-1-0.dll 当然第一个想到的是运行库没有装,但是很清楚的是我的电脑是装过vc_redist_20 ...
- html自定义垂直导航菜单(多级导航菜单,去掉font-awesome图标,添加自己的箭头图标)
这次在原先html自定义垂直导航菜单的基础上做了比较大的改动: 1.去掉了font-awesome图标,上级菜单右边的箭头是自己用css写的,具体参考<css三角箭头>. 2.去掉了初始化 ...
- 通过Qt从URL下载文件
示例1: 通过Qt自带的例子学习,位置:[安装盘符]:\Qt\Qt5.1.1\5.1.1\Src\qtbase\examples\network\download 示例2: 通过Qt的文档,位置: ...
- UI设计师与VI设计师的区别
企业视觉形象(CorporateVisualImage)与企业视觉形象识别(VI)并不是一个概念.前者是企业与生俱来的客观存在要素,也就是说一个企业无论是否制定了它的VI,也无论其所制定的VI是否成功 ...
- nginx 代理服务指令详解
nginx 正向代理与反向代理说明图 超级形象说明. 正向代理指令: 1, resolver 这个用于DNS服务器的ip . DNS服务器的主要工作是进行域名解析,将域名映射为对应IP地址 resol ...
- linux 入门命令总结
1,tree -d /etc/ 参数表示只显示目录 -f 显示内容的完整 -i 不显示树枝显示完整路径2,mkdir -p 递归创建多级目录 -v 显示创建目录的过程 -m 设置目录的默认权限 mkd ...