09 2017 档案

摘要:--创建一个user信息表 create table user_info( id number(2) primary key, name varchar2(10) unique ); --插入数据 insert into user_info(id,name)values(1,'曹操'); inser 阅读全文
posted @ 2017-09-21 14:24 赵安之 阅读(2903) 评论(0) 推荐(1)
摘要:输出99乘法表 declare begin for i in 1..9 loop for j in 1..i loop --不换行输出数据 dbms_output.put(j||'*'||i||'='||(j*i)); end loop; --换行输出 dbms_output.put_line(nu 阅读全文
posted @ 2017-09-21 14:23 赵安之 阅读(607) 评论(0) 推荐(0)
摘要:隐式游标 如前所述,DML操作和单行SELECT语句会使用隐式游标,它们是: * 插入操作:INSERT。 * 更新操作:UPDATE。 * 删除操作:DELETE。 * 单行查询操作:SELECT ... INTO ...。 当系统使用一个隐式游标时,可以通过隐式游标的属性来了解操作的状态和结果, 阅读全文
posted @ 2017-09-21 14:21 赵安之 阅读(723) 评论(0) 推荐(0)
摘要:FOREIGN KEY 约束并不仅仅可以与另一表的 PRIMARY KEY 约束相链接,它还可以定义为引用另一表的 UNIQUE 约束。FOREIGN KEY 约束可以包含空值,但是,如果任何组合 FOREIGN KEY 约束的列包含空值,则将跳过组成 FOREIGN KEY 约束的所有值的验证。若 阅读全文
posted @ 2017-09-21 14:19 赵安之 阅读(1729) 评论(0) 推荐(0)
摘要:标号和GOTO PL/SQL中GOTO语句是无条件跳转到指定的标号去的意思。语法如下: GOTO label; ......<<label>> /*标号是用<< >>括起来的标识符 */ 注意,在以下地方使用是不合法的,编译时会出错误。 u 跳转到非执行语句前面。 u 跳转到子块中。 u 跳转到循环 阅读全文
posted @ 2017-09-21 14:18 赵安之 阅读(477) 评论(0) 推荐(0)
摘要:CASE 表达式 例4: 1 DECLARE 2 V_grade char(1) := UPPER('&p_grade'); 3 V_appraisal VARCHAR2(20); 4 BEGIN 5 V_appraisal := 6 CASE v_grade 7 WHEN 'A' THEN 'Ex 阅读全文
posted @ 2017-09-21 14:15 赵安之 阅读(1486) 评论(0) 推荐(0)
摘要:INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始 到字符的结尾就结束。 语法如下: instr( string1, string2 [, start_position [, 阅读全文
posted @ 2017-09-21 14:13 赵安之 阅读(5302) 评论(0) 推荐(1)
摘要:【解决方法】Oracle一次插入多条记录 要向数据库中写入多条记录,记录集已经确定,如果一次一次插入势必影响效率。 解决方法: 注意: 上面最后一个select之后没有union all,否则报错。 阅读全文
posted @ 2017-09-21 14:12 赵安之 阅读(4638) 评论(0) 推荐(0)
摘要:添加NOT NULL约束 alter table tb_name modity column_name constraint nt_name not null; 需要注意的是,添加NOT NULL约束并不使得add constraint语句,而是使用modify。 添加FOREIGN KEY约束 a 阅读全文
posted @ 2017-09-21 14:09 赵安之 阅读(890) 评论(0) 推荐(0)
摘要:重命名表 对于已存在的表,还可以修改其名称。重命名表有两种语法形式,一种是使用ALTER TABLE语句,语法如下:ALTER TABLE table_name RENAME TO new_table_name;另一种是直接使用RENAME语句,语法如下: RENAME table_name TO 阅读全文
posted @ 2017-09-21 14:09 赵安之 阅读(51513) 评论(0) 推荐(2)
摘要:For循环有2种,分别是数值型FOR循环和游标型FOR循环: 1 --数值型For循环procedure loop_num_for 2 ( 3 lowest in number, 4 highest in number 5 ) 6 isbegin 7 FOR even_number in lowes 阅读全文
posted @ 2017-09-21 14:07 赵安之 阅读(4106) 评论(0) 推荐(0)
摘要:在PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列。常用的LOOP循环语句包含3种形式:基本的LOOP、WHILE...LOOP和FOR...LOOP。 LOOP语句的基本语法结构如下: 1 [<<label_name>>] 2 LOOP 3 stateme 阅读全文
posted @ 2017-09-21 14:05 赵安之 阅读(10293) 评论(1) 推荐(0)
摘要:1.java连接oracle的jar包 链接所使用的jar包 :ojdbc14.jar 2.数据库连接字符串 String driver="oracle.jdbc.OracleDriver"; String url="jdbc:oracle:thin:@192.168.56.10:1521:orcl 阅读全文
posted @ 2017-09-21 14:02 赵安之 阅读(188) 评论(0) 推荐(0)
摘要:3.触发器实际应用 3.触发器实际应用 需求:使用序列,触发器来模拟mysql中自增效果 案例中的效果是通过序列和触发器来实现对user表中的id自增的效果 每次进行添加的时候,触发器都会从序列中取出一个序列id添加到user正在插入的这条数据中; 创建序列 1、建立表 1 create table 阅读全文
posted @ 2017-09-21 14:00 赵安之 阅读(400) 评论(0) 推荐(0)
摘要:触发器 数据库触发器是一个与表相关联的、存储的PL/SQL程序。每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle自动地执行触发器中定义的语句序列。 1.触发器作用 数据确认 实施复杂的安全性检查 做审计,跟踪表上所做的数据操作等 数据的备份和同步 阅读全文
posted @ 2017-09-21 13:58 赵安之 阅读(380) 评论(0) 推荐(0)
摘要:包和包体的定义是分开的, 包中存储的是声明, 包体中存储的是存储过程的实现 举例:查询某个部门中的所有员工信息 > 返回集合 包头 CREATE OR REPLACE PACKAGE MYPACKAGE AS type empcursor is ref cursor; //自定义一个集合类型 pro 阅读全文
posted @ 2017-09-21 13:56 赵安之 阅读(559) 评论(0) 推荐(0)
摘要:ORACLE数据库事务隔离级别 事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度。 两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题: 1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用 阅读全文
posted @ 2017-09-21 13:55 赵安之 阅读(257) 评论(0) 推荐(0)
摘要:事务具有四个特征(ACID):原子性( Atomicity )指整个数据库事务是不可分割的工作单位。只有使据库中所有的操作执行成功,才算整个事务成功;事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行事务前的状态。一致性( Consistency )事 阅读全文
posted @ 2017-09-21 13:54 赵安之 阅读(251) 评论(0) 推荐(0)
摘要:存储函数 create or replace function 函数名(Name in type, Name out type, ...) return 数据类型 is 结果变量 数据类型; begin return(结果变量); end[函数名]; 存储过程和存储函数的区别 一般来讲,过程和函数的 阅读全文
posted @ 2017-09-21 13:53 赵安之 阅读(372) 评论(0) 推荐(0)
摘要:冲突解决的策略 尽管散列函数的目标是使得冲突最少,但实际上冲突是无法避免的。因此,我们必须研究冲突解决策略。冲突解决技术可以分为两类:开散列方法( open hashing,也称为拉链法,separate chaining )和闭散列方法( closed hashing,也称为开地址方法,open 阅读全文
posted @ 2017-09-17 17:52 赵安之 阅读(1163) 评论(0) 推荐(0)
摘要:散列表 散列表是一个包含关键字的具有固定大小的数组,表的大小记为 tablesize 。每个关键字被映射到0到 tablesize 中的某个数,并被放到适当的单元中,这个映射称为散列函数。散列函数应尽可能地在单元之间均匀分配关键字。最后还需要解决关键字冲突的情况,即映射到同一个值。 通常需要均匀的分 阅读全文
posted @ 2017-09-17 17:49 赵安之 阅读(595) 评论(0) 推荐(0)
摘要:散列函数 在以下的讨论中,我们假设处理的是值为整型的关键码,否则我们总可以建立一种关键码与正整数之间的一一对应关系,从而把该关键码的检索转化为对与其对应的正整数的检索;同时,进一步假定散列函数的值落在0到M-1之间。散列函数的选取原则是:运算尽可能简单;函数的值域必须在散列表的范围内;尽可能使得结点 阅读全文
posted @ 2017-09-17 17:49 赵安之 阅读(3829) 评论(0) 推荐(0)
摘要:0)引论 左堆的合并,插入,删除最小的时间复杂度为O(logN)。二项队列就是为了对这些结果进一步提高的一种数据结构。利用二项队列,这三种操作的最坏时间复杂度为O(logN),但是插入的平均时间复杂度为O(1)。 1)二项队列 二项队列不是一棵树,它是一个森林,由一组堆序的树组成的深林,叫做二项队列 阅读全文
posted @ 2017-09-17 17:48 赵安之 阅读(219) 评论(0) 推荐(0)
摘要:简介 设计一种堆结构像二叉堆那样高效的支持合并操作而且只使用一个数组似乎很困难。原因在于,合并似乎需要把一个数组拷贝到另一个数组中去,对于相同大小的堆,这将花费O(N)。正因为如此,所有支持高效合并的高级数据结构都需要使用指针。 像二叉堆那样,左式堆也有结构性和堆序性。不仅如此,左式堆也是二叉树,它 阅读全文
posted @ 2017-09-17 17:45 赵安之 阅读(388) 评论(0) 推荐(0)
摘要:d-堆 二叉堆因为实现简单,因此在需要优先队列的时候几乎总是使用二叉堆。d-堆是二叉堆的简单推广,它恰像一个二叉堆,只是所有的节点都有d个儿子(因此,二叉堆又叫2-堆)。下图表示的是一个3-堆。注意,d-堆要比二叉堆浅得多,它将Insert操作的运行时间改进为。然而,对于大的d,DeleteMin操 阅读全文
posted @ 2017-09-17 17:42 赵安之 阅读(749) 评论(0) 推荐(0)
摘要:二叉堆简介: 优先队列是先进先出的模型 二叉堆是实现优先队列的一种常用的方式,以下简称堆 二叉堆是一颗完全填满的二叉树,完全二叉树的高为log(N) 我们可以用一个数组表示完全二叉树(二叉堆) 在这个数组中,对于任意i位置的元素,其左孩子在2i的位置上,其右孩子在2i+1位置上,其父节点在i/2位置 阅读全文
posted @ 2017-09-17 17:33 赵安之 阅读(467) 评论(0) 推荐(0)
摘要:时间复杂度的对比,d-堆插入较快,合并较快 阅读全文
posted @ 2017-09-17 17:28 赵安之 阅读(354) 评论(0) 推荐(0)
摘要:B树可以分成很多种, B-树(通常也只称为B树)是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为2到M个; 3.除根结点以外的非叶子结点的儿子数为M/2到M个; 4.每个结点存放至少M/2-1(取上整 5/2=2)和至多M-1个关键字;(至 阅读全文
posted @ 2017-09-17 17:26 赵安之 阅读(2150) 评论(0) 推荐(0)
摘要:本文为转载文章 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我们讨论过,树的搜索效率与树的深度有关。二叉搜索树的深度可能为n,这种情况下,每次搜索的复杂度为n的量级。AVL树通过动态平衡树的深度,单次搜索的复杂度为log(n) 阅读全文
posted @ 2017-09-17 17:16 赵安之 阅读(291) 评论(0) 推荐(0)
摘要:每次检索某个节点,进行旋转,保证可能经常需要检索的节点深度不为logN, 平均检索M次的平均时间为MlogN 插入位置和最近不平衡结点成一字型, 对插入位置的父节点进行单旋转 插入位置和根节点距离为1 对根节点进行单旋转 插入位置和最近不平衡位置成之字型, 先对插入位置的父节点进行单旋转 在对祖父节 阅读全文
posted @ 2017-09-17 17:10 赵安之 阅读(584) 评论(0) 推荐(0)
摘要:存储过程 存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储 阅读全文
posted @ 2017-09-13 17:06 赵安之 阅读(705) 评论(0) 推荐(0)
摘要:1.游标Cursor 在写java程序中有集合的概念,那么在pl/sql中也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回的多条数据。 语法: CURSOR 游标名 [ (参数名 数据类型,参数名 数据类型,...)] IS SELECT 语句; 例如:cursor c1 is sel 阅读全文
posted @ 2017-09-13 17:05 赵安之 阅读(1144) 评论(0) 推荐(0)
摘要:程序结构 declare 说明部分 定义变量 begin 语句序列DML语句 exception 处理例外 end; declare 说明部分 定义变量 begin 语句序列DML语句 exception 处理例外 end; 语法 PLSQL是Oracle对sql语言的过程化扩展,指在SQL命令语言 阅读全文
posted @ 2017-09-13 17:03 赵安之 阅读(269) 评论(0) 推荐(0)
摘要:索引的图示结构,索引的默认存储结构是B树结构, 其次还有位图等 索引的分类:http://www.cnblogs.com/wishyouhappy/p/3681771.html 索引的超详细讲解:http://blog.csdn.net/iteye1011/article/details/17263 阅读全文
posted @ 2017-09-13 16:58 赵安之 阅读(1146) 评论(0) 推荐(0)
摘要:序列:可供多个用户来产生唯一数值的数据库对象 可以认为和mysql中的auto_increment功能类似 注意 CURRVAL: 返回序列的当前值。NEXTVAL: 序列递增,返回下一值。 你不能使用序列的CURRVAL和NEXTVAL,在下面情况下(具体参见官方文档):1:在DELETE、SEL 阅读全文
posted @ 2017-09-13 16:50 赵安之 阅读(330) 评论(0) 推荐(0)
摘要:视图 视图可以认为是为了方便查询所形成的表 视图并没有存储实际的数据 视图是表中数据的逻辑表示。视图本身并不存储任何数据(这就是视图和表最直接的差别),而真正的数据是存在于基表中的。视图也和表一样,也带有名称的列和行。简单的说,视图就是一个展示的窗口,它可以从这个表拿点数据,从另一个表拿点数据,进行 阅读全文
posted @ 2017-09-13 16:49 赵安之 阅读(372) 评论(0) 推荐(0)
摘要:(1) 闪回数据库(flashback database) 闪回数据库就是当出现逻辑错误时,能够将整个数据库回退到出错前的那个状态。 (2) 闪回删除(flashback drop) Oracle10g之前,一旦删除了一个表,那么该表就会从数据字典里面删除。要恢复该表,需要进行不完全恢复。 Orac 阅读全文
posted @ 2017-09-13 16:46 赵安之 阅读(187) 评论(0) 推荐(0)
摘要:SQL> --Oracle的回收站 SQL> --查看回收站 SQL> show recyclebin; ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME TEST2 BIN$tBAo/HbsRMClk8lSDu2kqg==$0 TABLE 20 阅读全文
posted @ 2017-09-13 16:43 赵安之 阅读(156) 评论(0) 推荐(0)
摘要:SQL> --一次插入多条数据 将emp的列复制给emp10 SQL> create table emp10 as select * from emp where 1=2; SQL> --一次性将emp中所有10号部门的员工插入到emp10中 SQL> insert into emp10 select * from emp where deptno=10; SQL> /* SQL> 海量插入... 阅读全文
posted @ 2017-09-13 16:41 赵安之 阅读(205) 评论(0) 推荐(0)
摘要:SQL> --等值连接 SQL> select e.empno,e.ename,e.sal,d.dname 2 from emp e,dept d 3 where e.deptno=d.deptno; 等值操作会忽略某个表中单独存在的东西 SQL> -- 不等值连接 SQL> select e.em 阅读全文
posted @ 2017-09-13 16:40 赵安之 阅读(162) 评论(0) 推荐(0)
摘要:在多行查询中,使用rollup语句能够大大提高我们的操作效率,在开始接触rollup语句 的时候,总是不能理解其中的顺序,查了一些资料和前辈们的博客,实践操作了几次,在此总结一下,首先rollup是卷起的意思,大体能够形容他的作用。 group by rollup(a,b) 这条语句相当于分组三次 阅读全文
posted @ 2017-09-13 16:40 赵安之 阅读(18345) 评论(0) 推荐(2)
摘要:多行函数可以认为是操作多行数据的函数 关于单行函数:单行查询整理 1 取数据总和 2 SQL> select sum(sal) from emp; 3 取行数总和 4 SQL> select count(*) from emp; 5 取平均值 6 SQL> select sum(sal)/count 阅读全文
posted @ 2017-09-13 16:38 赵安之 阅读(1065) 评论(0) 推荐(0)
摘要:语法 delete from aa truncate table aa 区别 1.delete from后面可以写条件,truncate不可以。 2.delete from记录是一条条删的,所删除的每行记录都会进日志,而truncate一次性删掉整个页,因此日至里面只记录页释放,简言之,delete 阅读全文
posted @ 2017-09-13 16:36 赵安之 阅读(284) 评论(0) 推荐(0)
摘要:一、约束 Oracle数据库通过约束(constraints)防止无效的数据进入到表中,以保护数据的实体完整性。 为了便于约束的使用,往往需要为约束起一个有意义的名字(例如student_id_pk表示student表id列为主键); 如果不显式命名约束,Oracle数据库将以SYS_Cn的格式为约 阅读全文
posted @ 2017-09-13 16:35 赵安之 阅读(5036) 评论(0) 推荐(0)
摘要:虽然各个数据库都是支持SQL语句的,但是每一个数据库也有每一个数据库自己所支持的操作函数,这些就是单行函数,而如果要想进行数据库开发的话,除了要会使用SQL之外 ,就是要多学习函数。 虽然各个数据库都是支持SQL语句的,但是每一个数据库也有每一个数据库自己所支持的操作函数,这些就是单行函数,而如果要 阅读全文
posted @ 2017-09-13 16:34 赵安之 阅读(318) 评论(0) 推荐(0)
摘要:单行查询也叫作单行函数,使用某个函数对数据进行操作 关于基本查询:oracle基本查询 1 SQL> select lower('Hello WOrld') 转小写, 2 upper('Hello WOrld') 转大写, 3 initcap('hello world') 首字母大写 4 2 fro 阅读全文
posted @ 2017-09-13 16:31 赵安之 阅读(591) 评论(0) 推荐(0)
摘要:1 SQL> --字符串大小写敏感 2 SQL> --查询名叫KING的员工 3 SQL> select * 4 2 from emp 5 3 where ename ='KING'; 6 7 SQL> --日期格式敏感 8 SQL> --查询入职日期是17-11月-81的员工 9 SQL> sel 阅读全文
posted @ 2017-09-13 16:29 赵安之 阅读(670) 评论(0) 推荐(0)
摘要:本例的操作前期都在控制台完成,后期会使用客户端。 1 SQL> --设置行宽 2 SQL> show linesize 3 linesize 80 4 SQL> set linesize 150 5 SQL> --设置列宽 6 SQL> col ename format a8 7 SQL> col 阅读全文
posted @ 2017-09-13 16:26 赵安之 阅读(485) 评论(0) 推荐(0)
摘要:在利用oracle的OEM时,输入了正常的账户密码之后总是报错 (错误 java.lang.Exception: Exception in sending Request :: null) 在网上找了很多的解决方法,大体相同,但是有很多没有起作用, 在这里总结一下,并且详细的说明一下操作步骤; 阅读全文
posted @ 2017-09-13 16:23 赵安之 阅读(2001) 评论(0) 推荐(0)
摘要:1、ServletContext: 上下文(全局管理者) 一个项目的引用.代表了当前项目. 当项目启动的时候,服务器为每一个web项目创建一个servletcontext对象. 当项目被移除的时候或者服务器关闭的时候servletcontext销毁 作用: 1.获取全局的初始化参数 2.共享资源(x 阅读全文
posted @ 2017-09-06 21:57 赵安之 阅读(735) 评论(0) 推荐(0)
摘要:1、servlet的体系结构: Servlet:接口 | GenericServlet:抽象类 | HttpServlet:抽象类 | 自定义servlet servlet常用方法: void init(ServletConfig config):初始化,在每一次创建对象的时候回运行一次 void 阅读全文
posted @ 2017-09-06 21:56 赵安之 阅读(169) 评论(0) 推荐(0)
摘要:1、servlet: 动态的web开发技术,本质就是一个类,运行在服务器端的一个java小程序 处理业务逻辑,生成动态web内容 (不太贴切的可以认为是链接浏览器和服务器的类,用来处理请求和响应,并作出相应的操作) 2、编写一个servlet步骤: 1.编写一个类 a.继承HttpServlet b 阅读全文
posted @ 2017-09-06 21:55 赵安之 阅读(545) 评论(0) 推荐(0)
摘要:1、http协议: http协议是超文本传输协议 包括请求和响应两部分 请求由浏览器发送 响应由服务器回应 2、请求:(request) 组成部分: 请求行 请求头 请求体 请求行:请求信息的第一行 格式:请求方式 + 访问的资源 + 协议/版本 例如:GET /day0801/1.html HTT 阅读全文
posted @ 2017-09-06 21:53 赵安之 阅读(243) 评论(0) 推荐(0)
摘要:常见的配置文件格式: 1.properties 里面内容的格式 key=value 2.xml 后期详细解释 若我们的配置文件为properties,并且放在src目录下. 我们可以通过 ResourceBundle工具快速获取里面的配置信息 使用步骤: 1.获取ResourceBundle 对象: 阅读全文
posted @ 2017-09-06 21:50 赵安之 阅读(151) 评论(0) 推荐(0)
摘要:常见的配置文件格式: 1.properties 里面内容的格式 key=value 2.xml 后期详细解释 若我们的配置文件为properties,并且放在src目录下. 我们可以通过 ResourceBundle工具快速获取里面的配置信息 使用步骤: 1.获取ResourceBundle 对象: 阅读全文
posted @ 2017-09-01 21:43 赵安之 阅读(316) 评论(0) 推荐(0)
摘要:C3P0:(★) hibernate和spring使用 有自动回收空闲连接的功能. 使用步骤: 1.导入jar包(c3p0-0.9.1.2.jar) 2.使用api a.硬编码(不推荐) new ComboPooledDataSource() b.配置文件 配置文件的名称:c3p0.properti 阅读全文
posted @ 2017-09-01 21:42 赵安之 阅读(290) 评论(0) 推荐(0)
摘要:通过连接池(数据源)优化我们的操作. 需求: 使用jdbc的时候,没操作一次都需要获取连接(创建)用完之后把连接释放掉了(销毁),通过连接池来优化curd操作. 技术分析: 连接池 连接池概述: 管理数据库的连接, 作用: 提高项目的性能. 就是在连接池初始化的时候存入一定数量的连接,用的时候通过方 阅读全文
posted @ 2017-09-01 21:39 赵安之 阅读(803) 评论(0) 推荐(0)
摘要:通过java_JDBC链接数据库 jdbc: java操作数据库.jdbc是oracle公司指定的一套规范(一套接口) 驱动:jdbc的实现类.由数据库厂商提供. 我们就可以通过一套规范操作不同的数据库了(多态) jdbc作用: 连接数据库 发送sql语句 处理结果 步骤: 导入jar包: jdbc 阅读全文
posted @ 2017-09-01 21:37 赵安之 阅读(182) 评论(0) 推荐(0)
摘要:查询语句,在开发中使用的次数最多,此处使用“zhangwu” 账务表。 查询语句,在开发中使用的次数最多,此处使用“zhangwu” 账务表。 查询语句,在开发中使用的次数最多,此处使用“zhangwu” 账务表。 创建账务表: 创建账务表: CREATE TABLE zhangwu ( id IN 阅读全文
posted @ 2017-09-01 21:35 赵安之 阅读(409) 评论(0) 推荐(0)
摘要:数据库操作 创建数据库 格式: * create database 数据库名; * create database 数据库名 character set 字符集; 例如: #创建数据库 数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8 CREATE DATABASE day21_1; 阅读全文
posted @ 2017-09-01 21:34 赵安之 阅读(180) 评论(0) 推荐(0)
摘要:常见的数据库管理系统 MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。 Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。 DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中. SQ 阅读全文
posted @ 2017-09-01 21:32 赵安之 阅读(198) 评论(0) 推荐(0)
摘要:所谓的线程死锁,是指在多线程运行的过程中,线程1拥有锁a,而需要锁b来继续执行, 而此时,线程2拥有锁b而需要锁a来继续执行,那么此时会形成死锁,两个线程会同时等待。 在编程的过程中应尽量的避免线程死锁。 关于线程锁可以查看:线程锁详解 有时在面试中会要求写出一个死锁的程序演示,如下: 1 //写一 阅读全文
posted @ 2017-09-01 21:30 赵安之 阅读(181) 评论(0) 推荐(0)
摘要:首先回顾一下单利设计模式: 单利设计模式是通过某种方式使某个类只能创建一个对象实例供外界使用。 单利设计模式分为懒汉式和饿汉式: 饿汉式是线程安全的: 1 //饿汉式单利设计模式: 2 class Single{ 3 private static final Single single = new 阅读全文
posted @ 2017-09-01 21:29 赵安之 阅读(934) 评论(1) 推荐(0)
摘要:线程在执行的过程中,容易出现安全问题,除了线程死锁外,所谓的安全问题就是: 对需要同步的变量进行多线程操作时,会使变量的判定发生问题,比如卖票的问题可能出现0票或者-1,-2的情况, 那么我们就需要一个锁来对需要同步的变量或者方法进行标记,指示: 该变量或方法在某个时刻或时间段只能被一个线程所执行 阅读全文
posted @ 2017-09-01 21:28 赵安之 阅读(233) 评论(0) 推荐(0)
摘要:创建线程有两种方法: 1、继承Thread类 2、实现Runnable接口 为什么还有第二种方法? 因为有的时候某个类已经有了父类就不能在继承线程类,那么为了解决单继承的局限性 就可以在实现Runnable接口来被线程调用。 创建线程的第一种方法:继承Thread类: 步骤: 1、创建类继承Thre 阅读全文
posted @ 2017-09-01 21:26 赵安之 阅读(172) 评论(0) 推荐(0)
摘要:java语言中,数组对象并不是从某个类实例化出来的,而是JVM动态创建的.对数组对象使用如下操作,可看到数组对应的Class对象.通过RTTI(Run-Time Type Information)可直接检查数组的运行时类型,以及它的签名.下方的 “[L”就是int[]/Integer[] 的运行类型 阅读全文
posted @ 2017-09-01 21:24 赵安之 阅读(1171) 评论(1) 推荐(0)
摘要:反射: 1.获取对应的class对象 方式1:★ Class clazz=Class.forName("全限定名"); 方式2: Class clazz=类名.class; 方式3: Class clazz==对象.getClass(); 方式4: Class c1 = Integer.TYPE; 阅读全文
posted @ 2017-09-01 21:22 赵安之 阅读(216) 评论(0) 推荐(0)