一丶C#
1.访问修饰符:
(1)public:(帕布利克)
关键字是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别,对访问公共成员没有限制。
(2).protected :(普若太可太得)
关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问。
(3).private :(拍为特)
键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的
(4).internal :(影太呢)
关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的
二丶数据库
1.什么是事务
(1).事务是作为单个逻辑单元执行的一系列操作,它是一个不可分割的工作逻辑单元。它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。
(2).事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
2.存储过程
(1).存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在 数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。这是百度百科上的解释,可能看这句话觉得有些复杂,但是如果实践一下理解起来就会容易很多。
我的理解存储过程其实就是编译在数据库中的一组SQL语句,当我们需要执行这些SQL语句时只需要调用这个存储过程就可以了,当然如果存储过程需要参数的话,我们需要给出参数,具体的用法详见下面的实例。
3.为什么要用存储过程
(1).存储过程可以重复使用,如果多次需要实现这些SQL语句,就可以重复调用这些存储过程,可以减少数据库开发人员的工作量。
(2).减少网络流量,存储过程位于数据库上,我们调用的时候只需要传递存储过程的名称和参数就可以了,降低了网络传输的数据量。
(3).安全性,参数化的存储过程可以防止SQL注入式攻击,可设定只有某些用户才具有对指定存储过程的使用权
(4).我现在体会最深的就是这一条:当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
有时候我们需要对多个表进行增删改查的时候,我们就可以用到存储过程再结合上我们之前学过的事务就完美了,这些代码都封装到存储过程中,我们在D层直接调用存储过程就好啦。详细问题,下面实例中介绍。
4.存储过程的缺点
存储过程虽然有诸多好处,但是存储过程也是存在缺点的。
1、调试麻烦
2、移植问题,因为存储过程是写在数据库中的,所以如果更换数据库那么维护起来就会很难。
3、重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
4、如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。