資料庫儲存過程,事務 jfinal中呼叫儲存過程,事務
mysql
DELIMITER $$
CREATE
PROCEDURE `student`.`ceshi`(n INT,j CHAR(1))
BEGIN
IF j = 'h' THEN
SELECT * FROM blog WHERE id > n;
ELSE
SELECT * FROM blog ;
END IF;
END$$
DELIMITER ;
call ceshi(43,"a")
sqlserver
create proc Stu
@sname varchar(100)
as
begin
select name,age from student where [email protected]
end
go
exec Stu 'tom'
jfinal中 連線sqlserver
C3p0Plugin cp = new C3p0Plugin(getProperty("url"), getProperty("user"), getProperty("kwd"), getProperty("driverclass"));
me.add(cp);
// 配置ActiveRecord外掛
ActiveRecordPlugin arp = new ActiveRecordPlugin(cp );
me.add(arp);
arp.setDialect(new SqlServerDialect());
arp.setContainerFactory(new CaseInsensitiveContainerFactory());
arp.addMapping("student", Student.class);
使用java下的jre,而不是jdk中的jre,使用tomcat,不使用jetty
create proc Stu
@sname varchar(100)
as
begin
select name,age from student where [email protected]
end
go
public class Exec implements ICallback{
@Override
public Object call(Connection conn) throws SQLException {
PreparedStatement stmt = conn.prepareStatement("{call dbo.Stu(?)}");
stmt.setString(1, "tom");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("age"));
}
rs.close();
stmt.close();
return null;
}
}
在controller中
public void index()
{
Db.execute(new Exec());
}
create proc CheckAge
@sname varchar(100)
as
begin
if ((select age from student where [email protected])>20)
return 1
else
return 0
end
go
public class ReturnState implements ICallback {
@Override
public Object call(Connection conn) throws SQLException {
// TODO Auto-generated method stub
CallableStatement csmt = conn.prepareCall("{?=call dbo.CheckAge(?)}");
csmt.registerOutParameter(1, java.sql.Types.INTEGER);
csmt.setString(2, "tom");
csmt.execute();
System.out.println(csmt.getInt(1));
return null;
}
}
create proc IsExist
@sname varchar(100),
@IsRight int output
as
begin
if exists (select name,age from student where [email protected])
set @IsRight=1
else
set @IsRight=0
end
go
public class ReturnCallBack implements ICallback{
@Override
public Object call(Connection conn) throws SQLException {
CallableStatement callableStatement = conn.prepareCall("{call dbo.IsExist(?,?)}");
callableStatement.setString(1, "tom");
callableStatement.registerOutParameter(2, java.sql.Types.INTEGER);
callableStatement.execute();
System.out.println(callableStatement.getInt(2));
return null;
}
}
sqlserver 觸發器
create trigger bbq
on tb_Money
after update
as begin
select * from tb_Money
end
sqlserver中使用事務
CREATE PROC ONETWOCCC
AS
BEGIN TRAN
update tb_Money set MyMoney = MyMoney - 30 where name = N'劉備'
update tb_Money set MyMoney = MyMoney + 30 where name = N'關羽'
if @@error<>0
BEGIN
ROLLBACK TRAN
PRINT '有錯誤,回滾';
END
ELSE
BEGIN COMMIT TRAN
PRINT '執行成功'
END
GO
EXEC ONETWOCCC
jfinal中使用事務
public void roll()
{
boolean succeed = Db. tx(new IAtom(){
public boolean run() throws SQLException {
int count = Db. update("update student set sex = sex+1 where id=2");
int count2 = Db. update("update student set sex = sex+3 where id=31");
return count == 1 && count2 == 1;
}});
}
@Before(Tx.class)
public void as()
{
int i = Db.update("update student set sex = sex+1 where id=2");
int s = Db.update("update student set name = null where id=31");
renderText(s+"");
}
個人更推薦第一種
相關推薦
資料庫儲存過程,事務 jfinal中呼叫儲存過程,事務
mysql DELIMITER $$ CREATE PROCEDURE `student`.`ceshi`(n INT,j CHAR(1)) BEGIN IF j = 'h' THEN SELECT * FROM blog
ASP中呼叫儲存過程、語法、寫法-sql server資料庫,return,output
ASP與儲存過程(Stored Procedures)的文章不少,但是我懷疑作者們是否真正實踐過。我在初學時查閱過大量相關資料,發現其中提供的很多方法實際操作起來並不是那麼回事。對於簡單的應用,這些資料也許是有幫助的,但僅限於此,因為它們根本就是千篇一律,互相抄襲,稍微複雜
在PL/SQL中呼叫儲存過程--oracle
在oracle10中寫好了儲存過程,程式碼如下: CREATE OR REPLACE Procedure Proc_Insert ( sName in varchar2, sAge in int,
oracle中呼叫儲存過程
儲存過程的呼叫 增加,修改,刪除的儲存過程呼叫 帶輸入引數的儲存過程呼叫 帶輸出引數的儲存過程的呼叫:此處以登入成功還是失敗為例.返回0 或者1 增加,修改,刪除的儲存過程呼叫
shell中呼叫儲存過程
將需要呼叫的儲存過程寫在檔案tasklist.txt中 下面將批量執行檔案列表中的儲存過程 #!/bin/ksh if [ $# -eq 0 ];then echo "no paramer please input one paramer A OR B" exit fi e
在phpmyadmin中建立儲存過程並在php中呼叫
ADDTIME (date2 ,time_interval ) //將time_interval加到date2 CONVERT_TZ (datetime2 ,fromTZ ,toTZ ) //轉換時區 CURRENT_DATE ( ) //當前日期 CURRENT_TIME ( ) //當前時間 CURR
oracle 函式中呼叫儲存過程
專案中開發了一個儲存過程來給報表提供資料來源,而程式業務邏輯中需要有一個對該資料來源進行判斷的功能,開始是使用拼接sql的方式在儲存過程中對應sql的外面包裝一層來進行處理,但是覺得這種方式拼接的sql太長,而且以後業務邏輯改變要同時修改儲存過程和程式碼,容易發生遺漏,
調取儲存過程的三個方法,以及用mybatis呼叫儲存過程
調取儲存過程的三個方法: 1.如果是PL/SQL命令視窗就用execute(簡寫:exec )儲存過程名,舉個例子: EXEC procedure;--procedure是儲存過程名 2.如果是PL/SQL視窗就用 begin 儲存過程名 end; begi
CI框架中呼叫儲存過程報錯:Commands out of sync; you can't run this command now
專案開發中碰到的問題,資料庫寫了個儲存過程,在ci框架中呼叫此儲存過程,碰到了問題,接觸ci框架時間不長,摸索了好半天,才終於解決。 問題如下: $common = $this->db->query("call welcome_common_data
Java中呼叫儲存過程 -- Mybatis
Java中呼叫儲存過程 -- Mybatis public interface XXXMapper { /* * 1.沒有出參(返回值,void) 返回不了值,返回值都封裝在入參的實體類或Map中(引用型別) * 原因:存過的入參、出參都在java呼叫的入參中
在Java中呼叫儲存過程(詳細)
本文闡述了怎麼使用DBMS儲存過程。我闡述了使用儲存過程的基本的和高階特性,比如返回ResultSet。本文假設你對DBMS和JDBC已經非常熟悉,也假設你能夠毫無障礙地閱讀其它語言寫成的程式碼(即不是Java的語言),但是,並不要求你有任何儲存過程的程式設計經歷。 儲
MyBatis中呼叫儲存過程和函式
一.呼叫儲存過程 1.首先在資料庫中定義儲存過程,定義的儲存過程的程式碼如下: //定義儲存過程create or replace procedure pag_add(p1 varchar2,p2 varchar2,p3 out varchar2) as begin
在python中呼叫儲存過程
儲存過程一般來說在資料庫中直接定義,然後在python中呼叫 新建儲存過程: 執行 結果符合預期,接下來在python呼叫它 import pymysql conn = pymysql.connect(host='127.0.0.1', u
java中呼叫儲存過程並傳遞list集合引數的方法
sql: CREATE OR REPLACE TYPE test as object( FID NUMBER, NUM nVARCHAR2(30), TESKID NUMBER, CID NUMBER, USERCODE nVARCHAR2(100) ) CREA
C#中呼叫儲存過程
1、沒有引數沒有返回值 2、有引數沒有返回值 3、有引數有返回值 下面就這幾種情況分別舉例:1、沒有引數沒有返回值,象這種情況最簡單。 儲存過程 USE Northwind CREATE PROC novaluenoparameter AS SE
在SSH專案中呼叫儲存過程
一. 建表與初始化資料 create database user create table userInfo ( id int identity(1,1) primary key not null, name varchar(20) not null, age int no
Wcf Ria Services學習筆記(三):WCF RIA Service中呼叫儲存過程
專案中碰到要呼叫儲存過程的情況!但Wcf Ria Service呼叫儲存過程似乎有點麻煩!將碰到的問題簡單做個記錄。 分別以幾個特別的儲存過程為例說明下,Wcf Ria Service中怎麼樣呼叫儲存過程。 (一)帶輸入引數和輸出引數的儲存過程。
.net中呼叫儲存過程
摘要:在一個專案的開發中,經常會呼叫資料庫中的儲存過程。可是,幾乎所有儲存過程的呼叫都是同一個模式,主要區別就在於建立的每個引數型別、值等不一樣。那麼,能不能實現通過一個函式(或者類)呼叫所有的儲存過程呢?本文在利用資料庫提供的系統表原理上,實現了統一呼叫的方法,該方法只需
spring 事務處理中,同一個類中:A方法(無事務)調B方法(有事務),事務不生效問題
public class MyEntry implements IBaseService{ public String A(String jsonStr) throws Exception{ UserInfo user = null; UserDetail userDetail = nul
關於一張RGB圖片,在numpy中的儲存。
假設圖片為 width:200 heigh:300 在numpy中,shape為 (1,300,200,3) 意思就是在矩陣中每一列,儲存一張圖片,即一個特徵。 就比如:[ [[0.0, 1.0], [2.0, 3.0], [4.0, 7.0], [