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 ...
随机推荐
- vue-awesome-swiper 的 使用
1.确保 package.json文件中有 "vue-awesome-swiper": "^3.1.3",没有的话install下 2.在main.js配置 ...
- HTML嵌套php
1. <?php echo 'if you want to serve XHTML or XML documents, do it like this'; ?> 2. <scri ...
- 【VBA研究】Excel VBA利用ADODB访问数据库使用小结
[转自] http://blog.csdn.net/iamlaosong/article/details/18043433 作者:iamlaosong ▲连接Oracle数据库 Set cnn = C ...
- PIE SDK矢量唯一值渲染
1. 功能简介 图层的唯一值渲染即是根据矢量图层的某一个数值字段的属性值,按照值的不同大小设置不同的显示符号.属性数值相等的所有要素归为同一种类,即同一符号. 2. 功能实现说明 2.1. 实现思路及 ...
- Vue.js插槽slot和作用域插槽slot-scope学习小结
一般来说,在Vue项目中使用父子组建时,都是把通用的HTML结构提取出来写成一个子组件,需要动态展示的数据用过prop属性传递,不过有时候我们可能想给子组件传递一个HTML代码,这个时候用prop不太 ...
- vm12下Centos6安装mysql5.7
一.下载mysql的rpm tar文件 文件名称:mysql-5.7.18-1.el6.x86_64.rpm-bundle.tar官方地址:https://dev.mysql.com/get/Down ...
- 解决dns服务器未找到问题 &&DNS解析服务器&&连接问题
第一部分: 有时已经连接到了网络,但是却提示未找到dns服务器,或未连接dns服务器,这多是因为dns设置的问题.下面是几种可行的解决方法. 方法一: 1. win + R -> cmd - ...
- TOJ 2939 解救小Q
描述 小Q被邪恶的大魔王困在了迷宫里,love8909决定去解救她.迷宫里面有一些陷阱,一旦走到陷阱里,就会被困身亡:(,迷宫里还有一些古老的传送阵,一旦走到传送阵上,会强制被传送到传送阵的另一头. ...
- Android开发_如何调用系统默认浏览器访问
Android开发_如何调用系统默认浏览器访问 2015-10-20 17:53 312人阅读 http://blog.sina.com.cn/s/blog_6efce07e010142w7.htm ...
- js根据子目录数目显示父级目录
需求:<ul>中<li>数量为0,则不显示<ul>以及<b>:<div>中<ul>数量为0,则不显示<div> 1. ...