-
SpringMVC系列六之视图解析
2020-05-15 08:41:49SpringMVC系列六之视图解析跳转方式工程目录构建过程转发重定向插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚...
视图解析器的最基本功能有:- 页面的跳转
- 有些时候页面放置的位置存在多级文件夹,在SpringMVC中写跳转路径的时候总是会写很长,这样很不方便。有了SpringMVC的视图解析器就可以定义好页面路径的前缀(文件夹路径)和后缀(页面格式,jsp;html…),在书写路径的时候只需要写对应页面名字就可以了,提高了开发效率。;
- /WEB-INF/目录不对外开放的,外部没办法直接访问到(即不能通过URL访问),只能通过映射来访问,这样可以限制访问,能有效提高安全性。为了安全性考虑,我们通常会把jsp文件放在WEB-INF目录下的子目录中,视图解析器能够提供访问方法。
当然视图解析器除了上述基本功能外,还有很多高级功能。作为入门学习,暂时不需学习。
跳转方式代码实现
视图(页面)的相互跳转有两种方式,转发和重定向。这两个概念已在JSP中学过。可参考链接做简要复习。
目录
构建过程
- 创建动态网页工程(Dynamic web project)
- 将所需的jar包复制到lib目录下
- 编写web.xml
- 编写springmvc配置文件
- 编写index.jsp。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>测试页</title> </head> <body> <a href="one">请点击</a> </body> </html>
- 编写视图界面
在WEB-INF下创建view文件夹,在该文件夹下创建1个界面:one.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>测试</title> </head> <body> <h1>One</h1> </body> </html>
- 编写controller中的基本方法
package com.edu.tjdz.geng.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class MyController { @RequestMapping(value = "/one") public String one() { return "one"; } }
- 启动项目,测试基本框架是否有问题
转发
使用场景:在工程中可能会有少部分请求需返回的页面不再是/WEB-INF/view/下的网页,而是其他目录下的网页。针对这种情况,无法使用SpringMVC.xml中配置的视图解析器进行网页路径的拼接。解决方法就是使用转发
例如,现在/one请求需要返回hello.jsp。- 需要修改controller源码
package com.edu.tjdz.geng.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class MyController { @RequestMapping(value = "/one") public String one() { return "forward:/hello.jsp"; } }
- 运行测试。
重定向
将转发中的controller源码进行修改
- 需要修改controller源码
package com.edu.tjdz.geng.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class MyController { @RequestMapping(value = "/one") public String one() { return "redirect:/hello.jsp"; } }
- 运行测试。测试时按F12,打开浏览器的调试功能。查看请求具体有哪些不同,进行比较。
跳转方式的参数传递
向页面传递参数
转发传递参数
- 修改controller
/*1.1、转发,页面获取参数*/ @RequestMapping(value = "/one") public ModelAndView one(String username, String password) { System.out.println("username: " + username + " password: " + password); ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("username", username); modelAndView.addObject("password", password); modelAndView.setViewName("forward:/hello.jsp"); return modelAndView; }
- 修改index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>测试页</title> </head> <body> <a href="one?username=20180101&password=AAA">请点击</a> </body> </html>
- 修改hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>测试</title> </head> <body> <h1>Hello</h1> <h1>${username}</h1> <h1>${password}</h1> </body> </html>
- 运行项目,输入http://localhost:8080/SpringMVC08,点击网页上的链接
重定向传递参数
可以使用借助session。
- 修改controller
package com.edu.tjdz.geng.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.servlet.ModelAndView; @SessionAttributes(value = {"username", "password"}) @Controller public class MyController { /*2.1、重定向,页面获取参数*/ @RequestMapping(value = "/one") public ModelAndView one(String username, String password) { System.out.println("in one request"); System.out.println("username: " + username + " password: " + password); ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("username", username); modelAndView.addObject("password", password); modelAndView.setViewName("redirect:/hello.jsp"); return modelAndView; } }
- 运行项目,输入http://localhost:8080/SpringMVC08,点击网页上的链接
向二次请求传递参数
转发传递参数
- 修改controller,将其他方法注释。
转发传递参数可以使用同名,即处理第一次请求的函数参数名称和处理第二次请求的函数参数名称一模一样
/*1.2、转发,第二请求获取参数*/ @RequestMapping(value = "/one") public String one(String username, String password) { return "forward:/two"; } @RequestMapping(value = "/two") public String two(String username, String password) { System.out.println("in two request"); System.out.println("username: " + username + " password: " + password); return "forward:/hello.jsp"; }
- 运行项目,输入http://localhost:8080/SpringMVC08,点击网页上的链接。观察控制台的输出
重定向传递参数
重定向传参时需要引入新的对象
- 修改controller,将其他方法注释。
这里在第一次请求中使用了RedirectAttributes 这个对象,调用它的addFlashAttribute函数,就可以添加要传递的参数名称和参数值了。
在第二次请求中使用注解@ModelAttribute接受传递的参数。
/*2.2.1、重定向,通过addFlashAttribute 和 @ModelAttribute来解析二次请求里的参数*/ @RequestMapping(value = "/one") public String one(String username, String password, RedirectAttributes redirectAttributes) { System.out.println("username: " + username + " password: " + password); redirectAttributes.addFlashAttribute("username", username); redirectAttributes.addFlashAttribute("password", password); return "redirect:/two"; } @RequestMapping(value = "/two") public String two(@ModelAttribute("username")String username, @ModelAttribute("password")String password) { System.out.println("in two request"); System.out.println("username: " + username + " password: " + password); return "one"; }
- 运行项目,输入http://localhost:8080/SpringMVC08,点击网页上的链接。观察控制台的输出
-
【T-SQL】六、视图方面
2021-01-03 16:27:28视图(VIEW)由一个或多个数据表或视图导出的虚表或查询表,其内容由SELECT查询语句指定,与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在,其数据的物理存放...六、视图方面
(〇)概念
基本概念
视图(VIEW)由一个或多个数据表或视图导出的虚表或查询表,其内容由SELECT查询语句指定,与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在,其数据的物理存放位置仍然在数据库的表中,是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。
对所引用的基本表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个基本表,也可以来自其它视图。
特点
- 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。
- 视图是由基本表(实表)产生的表(虚表)。
- 视图的建立和删除不影响基本表。
- 对视图内容的更新(添加、删除和修改)直接影响基本表。
- 当视图来自多个基本表时,不允许添加和删除数据。
作用
(1)简化用户的操作。经常使用的查询可以定义为视图,从而使得用户不必为以后的操作每次都制定全部的条件。
(2)提高安全性。通过视图,可通过制定限制条件和指定列限制用户对基本表的访问,用户只能查询和修改他们所能见到的数据,数据库中的其它数据既看不见也取不到,达到数据安全保护的目的。
(3)提高逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。有了视图,程序可以建立在视图之上,从而使应用程序与数据库表被视图分隔开。
(一)创建视图
语法格式
CREATE VIEW <视图名>[(列名列表)] --视图名 [with schemabinding] [WITH ENCRYPTION] AS <子查询> --搜索语句 [WITH CHECK OPTION]—强制修改语句必须符合子查询中设置的条件
说明
- 视图名称必须遵循标识符的规则,且对每个架构都必须唯一。该名称不能与该架构包含的任何表的名称相同。
- 可以在其它视图的基础上创建视图。
- 不能为视图定义全文索引。
- 不能创建临时视图,也不能对临时表创建视图。
- WITH ENCRYPTION 表示SQL Server加密包含CREATE VIEW 语句的文本
- WITH CHECK OPTION插入和删除的行必须满足视图中SELECT语句的WHERE条件
-- 定义视图“V1_Reader”为读者表中读者编号和读者姓名的数据 use Library go create view V1_Reader as select RID as 读者编号,Rname as 读者姓名 from Reader
-- 定义视图“SReturnDate”,得到读者借书应还日期信息 use Library go create view SReturnDate (读者编号,姓名,图书编号,图书名,应还日期) as select Borrow.RID,Reader.Rname,Book.BID,Book.Bname, from Borrow inner join Reader in Borrow.RID=Reader.RID,Boorow.Lenddate+Reader.Limitdays inner join ReaderType in ReaderType.TypeID=Reader.TypeID inner join Book in Borrow.BID=Book.BID where borrow.returndate is null
-- 创建视图“overdue”,从视图“SReturnDate”中查询借阅超期的读者新消息 use Library go create view overdue as select * from SReturnDate where 应还日期<getdate()
(二)修改视图
语法格式
ALTER VIEW 视图名 AS SELECT 查询子句
-- 修改视图“V1_Reader”,把从表“Reader”中查询出的列“RID”和“Rname”改为“读者编号”和“读者姓名” use Library go alter view V1_Reader (读者编号,读者姓名) as select distinct RID,Rname from Reader
(三)删除视图
语法格式
DROP VIEW 视图名
-- 删除V1_Reader drop view V1_Reader
(四)操作视图
1.添加数据行
-- 通过视图“View_zy”添加一条新的数据行。 use EDUC insert into View_zy(SID,Sname,Sex,Birthday,Specialty) values('2005216322','李晓燕','女','1998-9-6','计算机网络')
2.修改数据行
-- 将视图“View_zy”中姓名为侯爽的学生的出生日期改为“1991-05-03”。 use EDUC update View_zy set birthday='1991-05-03' where Sname='侯爽'
3.删除数据行
-- 在视图“View_zy”中删除姓名为“李晓燕”的学生数据行 use EDUC delect from View_zy where Sname='李晓燕'
4.提示
- 视图一经定义,便存储在数据库中。对视图的操作与对表的操作一样,可进行查询、修改与删除。
- 当修改视图中的数据时,相应的基本表的数据也会产生变化;反之,当基本表的数据发生变化时,这种变化也会自动反映到视图中。实际上修改的还是基本表的数据。
-
Oracle12C--instead-of触发器(五十六)
2017-08-15 21:29:31视图的问题:如果定义了一个由多张数据表一起显示的视图,这个时候用户是无法对此视图执行更新或增加数据的操作的; 通过一个示例,说明这个问题:创建一张包含20部门雇员编号、姓名、职位、基本工资、部门编号、...-
在视图上定义替代触发器
- 定义:对视图进行触发器的定义,被称为替代(instead-of)触发器;
-
视图的问题:如果定义了一个由多张数据表一起显示的视图,这个时候用户是无法对此视图执行更新或增加数据的操作的;
-
通过一个示例,说明这个问题:创建一张包含20部门雇员编号、姓名、职位、基本工资、部门编号、部门名称、位置的视图;
-
CREATE OR REPLACE VIEW v_myview AS
SELECT e.empno , e.ename , e.job , e.sal , d.deptno , d.dname , d.loc
FROM emp e,dept d
WHERE e.deptno=d.deptno AND d.deptno=20 ;
-
向视图插入一条数据
INSERT INTO v_myview (empno , ename, job , sal , deptno,dname,loc)
VALUES (6688, '魔乐' , 'CLERK' , 2000, 50 , '教学' , '北京') ;
运行结果:
错误报告:
SQL 错误: ORA-01776: 无法通过联接视图修改多个基表
-
可通过替代触发器对视图所映射的数据表直接及进行操作:
- 创建语法:
-
注意:替代触发器可以解决视图的一些更新操作问题,但对于不可更新的视图依然无法实现操作,当视图中包含了以下的结构之一,就表示为不可更新的视图:
- 统计函数;
- CASE或DECODE语句;
- GROUP BY,HAVING子句;
- DISTINCT消除重复列;
- 集合运算连接;
-
实现视图增加数据的替代触发器
- 说明:因为视图本身由多张数据表查询得来,想实现数据增加,就要将这些增加的数据设置到不同的表中,可用替代触发器完成;
-
示例1:创建一个INSERT替代触发器,用于执行视图更新操作
-
分析:
- 由于此时需要通过视图执行数据增加操作,所以要在替代触发器中实现具体的增加数据操作,分别将要增加的dept及emp信息的内容增加到各自对应的数据表中;
- 由于部门编号增加时有可能重复,所以应该先判断增加视图信息的部门编号是否存在,如果不存在,则保存新的dept信息
-
代码:
-
CREATE OR REPLACE TRIGGER view_trigger
INSTEAD OF INSERT ON v_myview
FOR EACH ROW
DECLARE
v_empCount NUMBER ;
v_deptCount NUMBER ;
BEGIN
-- 判断要增加的雇员是否存在
SELECT COUNT(empno) INTO v_empCount FROM emp WHERE empno=:new.empno ;
-- 判断要增加的部门是否存在
SELECT COUNT(deptno) INTO v_deptCount FROM dept WHERE deptno=:new.deptno ;
IF v_deptCount = 0 THEN -- 部门不存在
INSERT INTO dept(deptno,dname,loc) VALUES (:new.deptno , :new.dname , :new.loc) ;
END IF ;
IF v_empCount = 0 THEN
INSERT INTO emp(empno,ename,job,sal,deptno)
VALUES (:new.empno , :new.ename , :new.job , :new.sal , :new.deptno) ;
END IF ;
END ;
/
-
执行视图增加操作
INSERT INTO v_myview (empno , ename, job , sal , deptno,dname,loc)
VALUES (6688, '微软' , 'CLERK' , 2000, 50 , '教学' , '北京') ;
COMMIT ;
-
查询emp表中是否存在了新增的6688记录
SELECT * FROM emp WHERE empno=6688 ;
-
查询dept表中是否存在了新增的50部门记录
SELECT * FROM dept WHERE deptno=50 ;
-
实现视图修改数据的替代触发器
- 说明:视图中的数据属于多表数据的集合,在更新时,需要考虑对多张数据表执行更新操作;
-
示例1:创建一个UPDATE替代触发器
CREATE OR REPLACE TRIGGER view_trigger
INSTEAD OF UPDATE ON v_myview
FOR EACH ROW
BEGIN
UPDATE emp SET ename=:new.empno , job=:new.job , sal=:new.sal WHERE empno=:new.empno ;
UPDATE dept SET dname=:new.dname,loc=:new.loc WHERE deptno=:new.deptno ;
END ;
/
- 更新视图信息
UPDATE v_myview SET ename='史密思',sal=2000,dname='调研部' WHERE empno=7369 ;
COMMIT ;
- 查询v_myview视图
SELECT * FROM v_myview ;
查询emp表中7369雇员信息是否被更新
SELECT * FROM emp WHERE empno=7369 ;
- 查询dept表中20部门的信息是否被更新
SELECT * FROM dept WHERE deptno=20 ;
-
实现视图删除数据的替代触发器
- 如果现在执行删除视图的一个操作,并且删除完成之后,执行的部门已经没有任何一名雇员存在,则应该同部门信息一起删除,此时可利用替代变量执行本操作;
-
示例1:创建一个DELETE替代触发器
CREATE OR REPLACE TRIGGER view_trigger
INSTEAD OF DELETE ON v_myview
FOR EACH ROW
DECLARE
v_empCount NUMBER ;
BEGIN
DELETE FROM emp WHERE empno=:old.empno ;
SELECT COUNT(empno) INTO v_empCount FROM emp WHERE deptno=:old.deptno ;
IF v_empCount = 0 THEN -- 此部门没有雇员
DELETE FROM dept WHERE deptno=:old.deptno ;
END IF ;
END ;
/
- 删除视图之中所有20部门的雇员
DELETE FROM v_myview WHERE deptno=20 ;
COMMIT ;
删除视图中全部的20部门雇员信息,相当于删除了雇员表中的全部20部门雇员信息,此时20部门已经没有员工了,最后可将20部门雇员的信息也删除
-
示例2:以上为根据不同DML分开编写替代触发器,也可以将所有功能集中在一个替代触发器中进行编写,此时依然可以使用触发器提供的3个谓词INSERTING,UPDATING和DELETING进行操作的判断
-
将三个不同功能的替代触发器变为一个替代触发器
-
CREATE OR REPLACE TRIGGER view_trigger
INSTEAD OF INSERT OR UPDATE OR DELETE ON v_myview
FOR EACH ROW
DECLARE
v_empCount NUMBER ;
v_deptCount NUMBER ;
BEGIN
IF INSERTING THEN
-- 判断要增加的雇员是否存在
SELECT COUNT(empno) INTO v_empCount FROM emp WHERE empno=:new.empno ;
-- 判断要增加的部门是否存在
SELECT COUNT(deptno) INTO v_deptCount FROM dept WHERE deptno=:new.deptno ;
IF v_deptCount = 0 THEN -- 部门不存在
INSERT INTO dept(deptno,dname,loc)
VALUES (:new.deptno , :new.dname , :new.loc) ;
END IF ;
IF v_empCount = 0 THEN
INSERT INTO emp(empno,ename,job,sal,deptno)
VALUES (:new.empno , :new.ename , :new.job , :new.sal , :new.deptno) ;
END IF ;
ELSIF UPDATING THEN
UPDATE emp SET ename=:new.empno , job=:new.job , sal=:new.sal WHERE empno=:new.empno ;
UPDATE dept SET dname=:new.dname,loc=:new.loc WHERE deptno=:new.deptno ;
ELSIF DELETING THEN
DELETE FROM emp WHERE empno=:old.empno ;
SELECT COUNT(empno) INTO v_empCount FROM emp WHERE deptno=:old.deptno ;
IF v_empCount = 0 THEN -- 此部门没有雇员
DELETE FROM dept WHERE deptno=:old.deptno ;
END IF ;
ELSE
NULL ;
END IF ;
END ;
/
- 分析:此程序完成了与之前3个触发器同样的操作;
-
-
Android学习路线(六)为Android应用加入ActionBar
2017-11-08 19:59:00Action bar 是你可以为你的应用的Activity实现的最为重要的设计元素...一个专用的显示应用表示的地方,而且可以指出用户当前在应用中的位置。 用户可以非常方便地訪问重要的功能(比如搜索)。 提供视图切换导航(通...Action bar 是你可以为你的应用的Activity实现的最为重要的设计元素之中的一个。它提供了集中UI特性。而且通过提供和其它的Android应用的一致性体验让你的应用可以非常快被用户熟悉。基本的功能包含:
- 一个专用的显示应用表示的地方,而且可以指出用户当前在应用中的位置。
- 用户可以非常方便地訪问重要的功能(比如搜索)。
- 提供视图切换导航(通过tab。或者下拉列表)。
这次的训练课程提供了对action bar基础知识的高速引导。
有关action bar的各种特性的很多其它信息。请查看Action Bar 引导。
课程
- 设置Action Bar
- 学习怎样为你的Activity加入一个主要的action bar。
包含3.0以上的版本号,甚至支持低至Android 2.1版本号(通过使用Android Support Library)。
- 加入Actionbutton
- 学习怎样在action bar上加入并响应actionbutton。
- 为Action Bar设置风格
- 学习怎样自己定义action bar的显示。
- 怎样将Action Bar叠放在你的布局上
- 如和将action bar覆盖在你的布局上来实现隐藏action bar时的无缝转换。
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5203104.html,如需转载请自行联系原作者
-
ZBrush系列——纯小白入门篇(六)
2020-02-28 16:14:12首先找到Z球的位置如图所示: 2. 在视图中拖出一个来,并进入编辑模式。 3. 直接拖拽就可以在第一个Z球上再增加一个新的Z球 4. 按A键可以直接预览到Z球变成网格之后的形状,再按一次A就可以回... -
Visual C++程序开发范例宝典(光盘) 第六部分
2010-04-25 13:39:215.1 文件的基本操作 实例135 创建和删除文件夹 实例136 把文件删除到回收站中 实例137 清空回收站 5.2 查找文件 实例138 搜索文件 实例139 检查文件是否存在 实例140 提取指定文件夹目录到INI文件 5.3 与... -
工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究
2017-02-28 21:22:19安卓上用于加载的Webview视图窗口只是作为类浏览器而存在,在安卓上更是只能同时运行一个Webview。(2)跨域数据交互问题。不同的Webview之间无法共享数据。(3)页面自适应问题。页面难以兼容适应不同分辨率的设备... -
excel的使用
2012-11-25 17:06:01先输入前二个值,定出自变量中数与数之间的步长,然后选中A2和A3两个单元格,使这二项变成一个带黑色边框的矩形,再用鼠标指向这黑色矩形的右下角的小方块“■”,当光标变成"+"后,按住鼠标拖动光标到适当的位置,... -
我的第一本C++书 游历C++世界的地图 PDF 电子书
2012-06-03 19:14:20可以说,这本书基本上囊括了每个C++初学者都应该了解的所有知识,从C++的基础知识到面向对象思想,从设计模式到STL标准模板库,从Windows系统下的开发到Linux/嵌入式系统下的开发,再到最后的项目管理知识。... -
最全的oracle常用命令大全.txt
2011-12-09 08:41:00执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置, 但此时不对数据文件和日志文件进行校验检查。 3、startup open dbname 先执行“nomount”,然后执行“mount”,再打开包括Redo log文件... -
iOS界面交互设计规范
2018-09-18 17:29:17主题(Themes)主题章节,主要对设计规范整体进行一个介绍,引出清晰,遵从和深度三大设计原则以及美学完整性,一致性,直接操作性,反馈性,隐喻性和用户控制性六大基本特性。 基本界面元素,通过栏(bars),... -
iPhone 3开发基础教程(针对iPhone SDK 3新特性全面改版)--详细书签版
2013-02-02 08:24:0712.1 图形世界的两个视图 304 12.2 本章的绘图应用程序 305 12.3 Quart绘图方法 305 12.3.1 Quartz 2D的图形上下文 305 12.3.2 坐标系 306 12.3.3 指定颜色 307 12.3.4 在上下文中绘制图像 308 12.3.5 绘制... -
Android 上百实例源码分析以及开源分析 集合打包4
2012-07-10 21:54:03项目共六个文件: Api 包含共享的编程接口。处理所有ip(可用)的“沟通”这个类别。 这是很重要的类。 BootBroadcast 广播接收机,设置在系统启动时的iptables规则。这是必要的,因为这些规则是不持久的。 Help... -
千里马酒店前台管理系统V7使用手册
2011-06-16 14:09:38按酒店前台业务的部门分组,千里马V7.2的功能划分为可自定义的一个个动态工作视图,即房态视图、预订视图、接待视图、收银视图、管家视图、夜核视图、问讯视图、礼宾视图、报表视图等。这些工作视图以及相关的操作、... -
VC之美化界面篇本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础:
2009-06-17 10:17:32图形对象类封装了所有六个图形对象。 下面的表格列出了MFC的图形对象类: MFC类 图形对象句柄 图形对象目的 CBitmap HBITMAP 内存中的位图 CBrush HBRUSH 画刷特性—填充某个图形时所使用的颜色和模式 CFont ... -
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串
2017-05-06 20:26:52 实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。主要包括select, update, insert, alter, index, delete, all其中all包括所有权限。 授予实体权限 用法:grant 实体权限1... -
Android移动应用开发从入门到精通--详细书签版
2013-02-08 11:45:3311.1.1 查找你的位置 267 11.1.2 定位你的模拟器 269 11.2 位置地理编码 269 11.3 在地图上标注位置 272 11.3.1 地图标注内容 272 11.3.2 地图标注视图 272 11.3.3 获得调试API Key 274 11.3.4 拖曳... -
Visual Studio程序员箴言--详细书签版
2012-10-16 20:37:39技巧1.14 在不滚动的情况下跳到编辑器中当前视图的顶部或底部 8 技巧1.15 隐藏编辑器中的垂直和水平滚动条 10 1.2.2 在编辑器内和编辑器之间进行导航 10 技巧1.16 通过返回标记在编辑器中进行向前和向后定位... -
JAVA面试题最全集
2010-03-13 13:09:1084.dotnet由哪几个基本框架组成? 85.Oracle中SGA是什么? 86.web servers是什么? 87.UNIX中QT是什么意思? 88.在软件开发生命周期中的哪个阶段开始测试? 89.dotnet与J2EE的比较? 90.什么是ActiveX? 91.Java中... -
Microsoft C# Windows程序设计(上下册)
2011-08-05 10:28:1322.4 树形视图的事件 22.5 节点定位 22.6 目录树 22.7 显示图像 22.8 列表视图基础 22.9 列表视图事件 第二十三章 元文件 23.1 加载和显示现有的元文件 23.2 元文件的大小和显示 23.3 将元文件... -
ESM_ArcSight控制台用户指南(中文翻译版—Zephyr)_6.11.0 .pdf
2020-08-20 09:25:23打印资源的导航树视图 52 打印资源定义 52 打印网格视图 53 打印条件树摘要 53 使用列翻转限制格式化网格视图打印输出 54 保存和发送设置 55 错误和警告消息 56 第三章 管理用户和组 57 管理用户组 57 用户 59 创建... -
Visual C++程序员实用大全(精华版).(水利水电.邓劲生.张晓明译).part3
2016-06-21 20:50:392 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机语言的句法 10 理解“标记” 11 ... -
Visual C++程序员实用大全(精华版).(水利水电.邓劲生.张晓明译).part4
2016-06-21 21:13:272 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机语言的句法 10 理解“标记” 11 ... -
Visual C++程序员实用大全(精华版).(水利水电.邓劲生.张晓明译).part1
2016-06-21 21:05:542 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机语言的句法 10 理解“标记” 11 ... -
Visual C++程序员实用大全(精华版).(水利水电.邓劲生.张晓明译).part2
2016-06-21 21:09:542 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机语言的句法 10 理解“标记” 11 ... -
Oracle Database 11g数据库管理艺术--详细书签版
2012-09-30 01:09:45本书还提供了dba完成本职工作必备的基本的uniix、sql、pl/sql和数据建模的知识,也给出了许多富有趣味性的例子,通过这些实例详细、循序渐进地说明了oracle database 11g数据库的各个概念和特性。 作译者 Sam... -
软件工程知识点
2012-12-02 21:34:25单元测试也以“详细设计说明书”为依据,用于检验每个基本模块在功能、算法与数据结构上是否符合设计要求。 4.系统集成测试 所谓系统集成也就是根据概要设计中的软件结构,把经过测试的模块,按照某种选定的集成...