zoukankan      html  css  js  c++  java
  • 存储过程、面向对象

    存储过程:就像函数一样的
    会保存在数据库中--》可编程性 --》 存储过程
    -----------------------------------------------------
    创建存储过程
    create proc JiaFa
    --需要的参数
    @a int,
    @b int
    as
    --存储过程的内容
    declare @c int;
    set @c = @a + @b;
    return @c;
    go

    public int JiaFa(int a, int b)
    {
    int c = a+b;
    return c;
    }
    --执行完毕后全部选中,执行创建
    -----------------------------------------------------
    执行存储过程
    exec JiaFa 3,5;

    declare @f int;
    exec @f = JiaFa 3,5;
    print @f;

    --根据用户传入的参数查询汽车表符合该条件的汽车数量
    create proc ChaXun
    @n varchar(20)
    as
    declare @num int
    select @num = count(*) from car where name like '%'+@n+'%'
    return @num
    go

    declare @m int
    exec @m = ChaXun '奥迪'
    print @m

    ---------------------------------------------------------------------------------------

    1、面向过程

    int a = 10;
    int b =5;
    int c = a+b;

    int r1 = 10;
    int r2 = 5;
    double c = r1*r1*3.14 - r2*r2*3.14

    缺点:重用性差,扩展性差,可维护性差

    2、面向对象
    (1)对象:万物皆对象,对象是类实例化出来的东西
    (2)类:由众多对象抽象出来的东西

    例子:管理学生信息的程序
    研究的对象主要是 学生
    程序中的类 学生的类 (学号 姓名 性别 年龄 住址 联系方式 )

    student(code,name,sex,age,address,lianxi)

    (3) class Student //定义类 关键字class 后面跟类名
    {
    string code; //成员变量code
    string name; //成员变量 name
    bool sex; //成员变量 sex
    int age; //成员变量 age
    string address; //成员变量 address
    string lianxi; //成员变量 lianxi
    }

    面向对象
    1.类:众多对象抽象出来的
    2.对象:类实例化出来的,万物皆对象,对象是类实例化出来的东西

    例子:管理学生信息的程序
    研究的对象主要是 学生
    程序中的类 学生的类 (学号 姓名 性别 年龄 住址 联系方式 )

    student(code,name,sex,age,address,lianxi)

    3.类的定义
    关键字 class

    4.类里面包含
    成员变量
    成员属性
    成员方法

    class Student //定义类 关键字class 后面跟类名
    {
    string code; //成员变量code
    string name; //成员变量 name
    bool sex; //成员变量 sex
    int age; //成员变量 age
    string address; //成员变量 address
    string lianxi; //成员变量 lianxi
    }

    ---------------------------------------------------------------------

    事务:
    保障流程的完整执行
    就像银行取钱,先在你账上扣钱,然后存入别人的账上;
    但是从你账上扣完钱了,突然网断了,对方没有收到钱,那么此时你的钱也没了,别人的钱也没加上,为了防止此类情况的出现,事务。

    begin tran --在流程开始的位置


    if @@ERROR>0
    begin
    rollback tran --回滚事务,到begin tran的位置,就当没发生过
    end
    else
    begin
    commit tran --提交事务,都没问题,那么就一把进行提交
    end

    -----------------------------------------------------------------
    购物车实例
    begin tran --开启事务
    declare @tran_error int; --存储错误
    set @tran_error = 0; --默认没有错误

    update Fruit set Numbers = Numbers-1 where Ids='k002'
    set @tran_error = @tran_error + @@ERROR;
    update Login set Account=Account-1 where UserName='wangwu'
    set @tran_error = @tran_error + @@ERROR;
    insert into Orders values('d002','wangwu','2016-8-7')
    set @tran_error = @tran_error + @@ERROR;
    insert into OrderDetails values('d002','k002',10)
    set @tran_error = @tran_error + @@ERROR;


    if @tran_error>0
    begin
    rollback tran --回滚事务,到begin tran的位置,就当没发生过
    end
    else
    begin
    commit tran --提交事务,都没问题,那么就一把进行提交
    end

  • 相关阅读:
    mysql报错:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    MD5登陆密码的生成
    15. 3Sum、16. 3Sum Closest和18. 4Sum
    11. Container With Most Water
    8. String to Integer (atoi)
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    几种非线性激活函数介绍
    AI初探1
    AI初探
  • 原文地址:https://www.cnblogs.com/dreamer666/p/5761309.html
Copyright © 2011-2022 走看看