【无标题】JAVA基础2.0

 

1.定义

1.定义

目录

一、java开发环境

二、名词解释

1.JVM

三、eclipse

1.定义

四、注释

1.解释性文本

2.其他注释

五、变量

4.命名规则

六、八种数据基本类型

七、数据类型之间的转换

1.自动类型转换

八、运算符

1.算术运算符

(2)使用情况分两种:

(3)简化版:

2.关系运算符

九、分支结构

1.if结构

十、循环结构

1.while结构

十一、嵌套结构

十二、数组

2.声明

3.初始化

十三、方法

1.意义

2.定义

3.调用

十四、关键字用法

1.scanner

4.水平制表符 \t


 

一、java开发环境

  1. 编译运行过程(常见面试题)
  1. 编译期:

将.java源文件交给编译器编译成.class字节码文件的过程

(2)运行期:

把编译后的.class字节码文件经过JVM加载并运行.class字节码文件

  1. 配置环境变量

windows 10系统下配置JDK环境变量:
      (1).安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.8.0_08;

(2).安装完成后,右击“我的电脑”,点击“属性”;

(3).选择“高级系统设置”选项卡,选择“高级”栏,点击“环境变量”;

(4).在“系统变量”中,设置3项属性,JAVA_HOME     PATH     CLASSPATH

若已存在则点击“编辑”,不存在则点击“新建”;

(5).JAVA_HOME指明JDK安装路径,例如刚刚安装时所选择的路径D:/java/jdk1.8.0_08,此路径下包括lib,bin,jre等文件夹;

Path使得系统可以在任何路径下识别java命令,设为: %JAVA_HOME%/bin;

创建 CLASSPATH变量

CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为: .;%JAVA_HOME%/lib ;

(6).“开始”->;“运行”(win10系统下 win+R键 回车),键入“cmd”;

(7).键入命令“javac”,“java”,“java -version”几个命令,出现画面,说明环境变量配置成功即环境变量配置成功;

  1. java开发环境特点

跨平台的:软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行;

 面向对象:指以对象为基本粒度,其下包含属性和方法;

 安全性:可以分为四个层面,即语言级安全性、编译时安全性、运行时安全性、可执行代码安全性;

多线程是指允许一个应用程序同时存在两个或两个以上的线程,用于支持事务并发和多任务处理;

一次编程到处使用:Java源代码的书写不拘泥于特定的环境,可以用记事本、文本编辑器等编辑软件来实现,然后将源文件进行编译,编译通过后可直接运行

二、名词解释

1.JVM

Java虚拟机;加载.class字节码文件并运行.class字节码文件

  1. JRE

Java运行环境;包含JVM和运行java所必需的java系统类库

  1. JDK

Java开发工具包,包含JRE和开发java程序所必须的命令工具

  1. 说明:
  1. 运行java程序的最小环境为 JRE
  2. 开发java程序的最小环境为 JDK

三、eclipse

1.定义

IDE集成开发环境(带图形界面的功能强大的开发工具)

  1. 优点

IBM公司的、开源的、免费的,不需要安装,仅需解压即可

  1. 开发步骤

新建Java项目/工程-------------小区

新建Java包--------------------楼+单元

新建Java类--------------------房子

四、注释

1.解释性文本

单行注释: // 文字注释

多行注释: /*

文字注释

......

文字注释

*/

文档注释: /**  文档注释   */

2.其他注释

其他注释属于后期内容,后期定会填充

五、变量

1.声明-----------相当于在银行开个账户

 int a; //声明一个整型的变量,名为a

 

 int b,c,d; //声明三个整型的变量,名为b,c,d

2.初始化--------相当于给银行账户存钱

 int a = 250; //声明整型变量a并赋值为250

 

      int a;   //声明整型变量a

      a = 250; //给变量a赋值为250

3.使用-----------相当于使用银行账户里的钱

对变量的使用就是对它所存的那个数的使用  

 
  1.    int a = 5;

  2.  
  3.      int b = a+10; //取出a的值5,加10后,再赋值给变量b

  4.  
  5.   System.out.println(b);   //输出变量b的值15

  6.  
  7.   System.out.println("b"); //输出b,双引号中的原样输出

  8.  
  9.      a = a+10; //取出a的值5,加10后,再赋值给a

  10.  
  11.   //在a本身基础之上增10

  12.  
  13.   System.out.println(a); //15

  14.  
  15. //变量在用之前必须声明并初始化

  16.  
  17.      //System.out.println(m); //编译错误,变量m未声明

  18.  
  19.   int m;

  20.  
  21.  //System.out.println(m); //编译错误,变量m未初始化

4.命名规则

只能包含字母、数字、_和$符,并且不能以数字开头

严格区分大小写

不能使用关键字

允许中文命名,但不建议,

建议"英文的见名知意"、"驼峰命名法"

六、八种数据基本类型

 

数据类型

占位

字节

范围

1

byte

8

1

-128~127

2

short

16

2

-32768~32767

3

char

16

2

0~65535

4

int

32

4

-2147483648~2147483647

5

double

64

8

无限大

6

float

32

4

无限大

7

long

64

8

-9223372036854775808~

9223372036854775807

8

boolean

8

1

True   false

七、数据类型之间的转换

byte short char 通常转换为int计算

1.自动类型转换

基本数据的自动类型转换只有7种数据类型,除了布尔型
基本原则:低级别可以转高级别
从左向右可以依次转换:byte-short-int-long-float-double
 char-int-long-float-double
运算时的自动转换条件:两种数据类型要兼容,目标类型大于原类型

当范围大的类型与范围小的类型进行运算时,结果会自动转成范围大的类型

2.强制类型转换

高级别转低级别时必须进行强制类型转换

  是否进行强制类型转换取决于数据类型级别的高低,而不取决于数据类型的实际值

格式:(type)value, type是要强制类型转换后的数据类型

 
  1. public class mainTest {

  2.  
  3.     public static void main(String[] args) {

  4.  
  5.         int pageSize = 3;

  6.  
  7.         long pageNo = 2;

  8.  
  9.         int num =  (int) ((pageNo-1)*pageSize);// 强制类型转换,long类型转换为int类型

  10.  
  11.         System.out.println(num);

  12.  
  13.         int test =  (int)(pageNo-1)*pageSize;

  14.  
  15.         System.out.println(test);

  16.  
  17.     }

  18.  
  19. }

八、运算符

1.算术运算符

+ , - , * , / , % , ++ , --

(1)使用规则:必须与变量一起使用

a++/++a/a--/--a

++/--表示变量里的值会自动+1/-1后存入变量里。

2使用情况分两种:

与变量单独使用时(既不与其他任何字符连用)

eg:a++

当自增/自减表达式参与其他运算时

符号在前,变量先自增/自减,然后把新值赋值给表达式。

符号在后,先把值赋值给表达式,变量再自增/自减。

3简化版:

符号在前,先运算再赋值。

符号在后,先赋值再运算。

2.关系运算符

> , < , >= , <=  ,== , != , boolean

  1. 逻辑运算符

&& , || , !  boolean

 

逻辑运算符

逻辑功能

&(并且)

有false则false

|(或者)

有true则true。

!(非)

非false则true,非true则false。

^(异或)

相同为false,不同为true。

&&(短路与)

有false则false,若&&左边表达式或者值为false则右边不进行计算

||(短路或)

有true则true,若||左边表达式或者值为true则右边不进行计算

    2.赋值运算符

= , += , -= , *= , /= , %=

运算符

用法举例

等效的表达式

+=

a += b

a = a+b

-=

a -= b

a = a-b

*=

a *= b

a = a*b

/=

a /= b

a = a/b

%=

a %= b

a = a%b

  3.三目运算符

boolean?语句块1:语句块2

执行规则:  Boolean值为true 则执行 语句块1;

Boolean值为false 则执行 语句块2;

  4.字符串连接运算符

字符串连接用 + 来实现,“ + ”是算术运算符又是字符串拼接运算符,即 若同时出现则字符串连接前的运算符为算术运算符,字符串连接后的都为字符串连接运算符

Eg.

System.out.println(9 + 7 + "may" + 4 + 7);

输出结果为 : 16may47

九、分支结构

1.if结构

语句:

 
  1. if(boolean){

  2.  
  3.   语句块

  4.  
  5. }

执行过程:

若Boolean值为true,则执行语句块

若Boolean值为false,则不执行语句块

  1. if...else结构

语句:

 
  1. if(boolean){

  2.  
  3.   语句块1

  4.  
  5. }else{

  6.  
  7. 语句块2

  8.  
  9. }

执行过程:

若Boolean值为true,则执行语句块1

若Boolean值为false,则执行语句块2

      2.if...else if结构

语句:

 
  1. if(boolean—1){

  2.  
  3. 语句块1

  4.  
  5. }elseif(boolean—2){

  6.  
  7. 语句块2

  8.  
  9. }elseif(boolean—3){

  10.  
  11. 语句块3

  12.  
  13. }else{

  14.  
  15. 语句块4

  16.  
  17. }

执行过程:

判断boolean-1,结果为true则执行语句块1,若执行条件为false则

执行boolean-2,结果为true则执行语句块2,若执行条件为false则

执行boolean-3,结果为true则执行语句块3,若执行条件为false则

执行语句块4

      3.switch...case结构

优点:效率高、结构清晰

缺点:只能对整数来判断、相等

break:跳出switch

 
  1. int num = 2;

  2.  
  3. switch (num){         //byte,short,int,char,

  4.  
  5. //string(jdk 1.7后可以支持)

  6.  
  7. case 1://if(num ==1)

  8.  
  9. System.out.println(1);

  10.  
  11. case 2://以此为入口

  12.  
  13. System.out.println(2);

  14.  
  15. break;//跳出switch

  16.  
  17. case 3://以此为入口

  18.  
  19. System.out.println(3);

  20.  
  21. default://所有case都未匹配时在执行

  22.  
  23. System.out.println(3);

  24.  
  25. }

十、循环结构

1.while结构

  语句: 

 
  1.   while(boolean){

  2.  
  3.    语句块

  4.  
  5.    }

  执行过程:

  判断boolean的值,若为true则执行语句块;

   判断boolean的值,若为true则执行语句块;

   判断boolean的值,若为true则执行语句块;

   如此反复,直到boolean的值为false时结束

  1. do...while结构

语句:

 
  1. do{

  2.  
  3. 语句块

  4.  
  5. }while(boolean)

执行过程:

执行语句块,

判断boolean的值,若为true则执行语句块;

   判断boolean的值,若为true则执行语句块;

   判断boolean的值,若为true则执行语句块;

   如此反复,直到boolean的值为false时结束

      2.for循环结构

语句:

 
  1. for(初始条件 1 ; 判断条件 2; 改变条件 3 ){

  2.  
  3. 循环体   4;

  4.  
  5. }

 

 
  1. 初始条件1;

  2.  
  3. for(;判断条件2;){

  4.  
  5. 循环体4

  6.  
  7. 改变条件3;

  8.  
  9. }

 

执行过程:(1 2 4 3 2  4  3  2)

执行初始条件1

执行判断条件2 若为true,则执行循环体4,在执行改变条件3;

执行判断条件2 若为true,则执行循环体4,在执行改变条件3:

......

执行判断条件2 若为true,则执行循环体4,在执行改变条件3:

执行判断条件2 若为false,则for循环结束

 

for(;;){//没有条件的循环是死循环

执行体

}

       3.三种结构最佳适用情况

先看循环是否与次数相关

若与次数相关-------for循环--------------打印机类型

若与次数无关,再看要素1与要素3是否相同

相同时-----do...while 语句循环-------猜数字游戏

不同时-----while语句循环

        4.小结:

1)顺序结构:从上到下逐行执行,每句必走

2)分支结构:有条件的执行某语句一次,并非每句都走

3)循环结构:有条件的执行某语句多次,并非每句都走

十一、嵌套结构

1.定义

循环中套循环, 一般多行多列时使用,外层控制行,内层控制列

  1. 执行规则

外层循环走一次,内层循环走所有次

     2.建议

嵌套层数越少越好,能有一层就不用两层,能用两层就不用三层

若业务必须通过三层以上的循环来解决,说明设计有问题

十二、数组

1.定义

数组也是一种数据类型(引用数据类型)

数组是相同数据类型元素的集合

2.声明

 
  1. int[] arr = new int [10];

  2.  
  3. //声明整型数组arr,包含10个元素

  4.  
  5. //每个元素都是int类型,默认值为0

3.初始化

---初始化数组中的数据

 
  1. int[]  arr = new int [4]; //0,0,0,0

  2.  
  3. int[]  arr = {1,4,5,8};//1,4,5,8

  4.  
  5. int[]  arr = new int []{1,4,5,8};//1,4,5,8

  6.  
  7.  
  8.  
  9. int[] arr;

  10.  
  11. arr = {1,4,5,8};//编译错误,此方式只能声明同时初始化

  12.  
  13. arr = new []{1,4,5,8};//正确

4.访问

----访问数组中的数据

(1)通过(数组名.length)可以获得数组的长度(元素的个数)

 
  1. int [] arr = new int [5];

  2.  
  3. Systrem.out.println("arr.length");

(2)通过下标/索引来访问数组中的元素

  下表从0开始,最大到(数组长度-1)

 
  1. int[]  arr = new int [3];

  2.  
  3. arr[0] = 100;//给arr第1个元素赋值为100;

  4.  
  5. arr[1] = 100;//给arr第1个元素赋值为200;

  6.  
  7. arr[2] = 100;//给arr第3个元素赋值为300;

  8.  
  9. arr[3] = 400;//运行时,会发生数组下标超出界限(越界)的异常

  10.  
  11.  
  12.  
  13. System.out.println (arr.length);//输出数组长度

  14.  
  15. System.out.println (arr[arr.length-1]);//输出arr中最后一个数组

5. 遍历

----从头到尾看

 
  1. int[] arr = new int [10];

  2.  
  3. for (int i = 0;i <arr.length;i++){//遍历数组

  4.  
  5. arr[i] = 100;//给每个元素都赋值为100

  6.  
  7. arr[i] = (int)(Math.Random.()*100)//赋值100内的随机数

  8.  
  9. System,out.println(arr[i]);//输出每个元素

  10.  
  11. }

 

//将arr数组转换为字符串并输出

System.out println(Arrays.toString(arr));//简便输出基本数组

6.复制

方式1:(灵活性更好)

 
  1. int[] a ={10,20,30,40,50};

  2.  
  3. int[] b =new int[6];

  4.  
  5.  
  6.  
  7. System.arraycopy(a, 1, b, 0, 4);

  8.  
  9. //System.arraycopy(src, srcPos, dest, destPos, length);

  10.  
  11. //a:源数组(src)

  12.  
  13. //1:源数组的起始下标(srcPos)

  14.  
  15. //b:目标数组(dest)

  16.  
  17. //0:目标数组的起始下标(destPos)

  18.  
  19. //4:要复制的元素个数(length)

注意:此方式容易溢出!编译出现错误

方式2:(灵活性差)

 
  1. int[] a = {2,5,3,8,6,7};

  2.  
  3. int[] b = Arrays.copyOf(a, 6);

  4.  
  5. //int[] b = Arrays.copyOf(original, newLength);

  6.  
  7. //a:源数组(original)

  8.  
  9. //b:目标数组

  10.  
  11. //6:目标数组的长度(元素个数)(newLength)

  12.  
  13. //--若目标数组长度大于源数组长度,则末尾补默认值0

  14.  
  15. //--若目标数组长度小于源数组长度,则从末尾截掉

  16.  
  17.  
  18.  
  19. a = Arrays.copyOf(a,a.length+1);//数组扩容

7.排序

常用的排序方法:冒泡排序、插入排序、快速排序---执行效率不算太高

冒泡排序---工作中永远不会写,但是一个常见面试题

排序分类:升序(从小到大)/降序(从大到小)

(1)Arrays.sort(arr);//对arr进行升序排列

(2)升序排列:

 
  1. for (int i = 0; i < arr.length; i++) {

  2.  
  3. Arrays.sort(arr);

  4.  
  5. System.out.print(arr[i]+"\t");

  6.  
  7. }

 

 降序排列:

 
  1. for(int i=arr.length-1;i>=0;i--) {

  2.  
  3. Arrays.sort(arr);

  4.  
  5. System.out.print(arr[i]+"\t");

  6.  
  7. }

十三、方法

1.意义

1)封装一段特定的业务逻辑功能

2)方法尽可能独立,一个方法只干一件事

3)方法可以被反复调用多次

4)减少代码重复,有利于代码的复用;有利于团队的协作

2.定义

五要素:

修饰词  返回值类型   方法名(参数列表){

方法体

}

1)修饰词:public  

2)返回值类型:方法可有返回值,也可没有返回值

无返回值时:返回值类型写成void

有返回值时:返回值类型写成特定的数据类型

  返回值有误判断:

方法执行完后

(1)若还需要用到方法中的某个数据-----有返回值

(2)若不再需要用到方法中的某个数据---无返回值

3)方法名:见明知义,驼峰命名

4)参数列表:方法可有参,也可无参

参数:  定义方法时的参数为 形参-----String name/int i...

调用方法时的参数为 实参-----int i=3/lisi/12

有参数:方法更加灵活

无参数:

5)方法体:

3.调用

1)无返回值:方法名(有参传参)

2)有返回值:若有返回值,则在的方法中必须通过return来返回数据

并且return后的书必须与返回值类型匹配

数据类型  变量 = 方法名(有参传参)

十四、关键字用法

1.scanner

Scanner接受用户输入的数据

1)在package下:

import java.util.Scanner;

2)在main中:

Scanner com = new Scanner(System.in);

3)在第二步之后:

int command = com.nextInt();

2.break与continue

 break:循环中看到break就跳出循环(在某种特殊条件下提前结束循环)

当多层嵌套时,只用于跳出一层循环

continue:跳过循环体中的剩余语句,进入下一次循环(不能出现在switch语句中)

3.Return

1)return值:

(1)结束方法的执行

(2)返回结果给调用方

--用在有返回值的方法中

2)return; :

(1)结束方法的执行

(2)在某种特定条件下提前结束方法

4.水平制表符 \t

\t 表示制表符,相当于制表符

前面的输出内容位数为8的倍数,\t将输出8个空格

前面的输出内容位数不是8的倍数,\t将补足8位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
目录 前言 第1部分 介绍数据库、SQL和JDBC 第1章 关系型数据库 1.1 理解关系型数据库管理系统 1.1.1 关系模型 1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式化 1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 1.3 事务管理和事务控制命令 1.3.1 ACID测试 1.3.2 SQL中的事务管理 1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 数据库设计应考虑的事项 2.1.1 项目规范 2.1.2 设计表 2.1.3 生成发票 2.2 引用完整性 2.2.1 通用完整性规则 2.2.2 特定于数据库的完整性规则 2.3 小结 第3章 SQL基础 3.1 SQL语言 3.2 SQL数据类型 3.3 数据定义语言 3.3.1 创建、取消、更改数据库和表 3.3.2 创建、更改和取消视图 3.4 数据处理语言 3.4.1 INSERT语句 3.4.2 UPDATE语句 3.4.3 DELETE语句 3.5 数据查询语言 3.5.1 SELECT语句 3.5.2 WHERE子句 3.5.3 SQL运算符 3.5.4 使用子查询 3.6 对查询结果排序 3.7 将查询结果进行汇总 3.7.1 集合函数 3.7.2 使用HAVING子句来筛选组 3.7.3 使用索引提高SQL查询效率 3.7.4 格式化SQL命令 3.7.5 使用SQL连接 3.7.6 编写SQL的JOIN命令 3.7.7 使用UNION运算符进行组合查询 3.8 数据控制语言 3.8.1 管理用户 3.8.2 授予和取消用户权限 3.9 创建和使用存储过程 3.9.1 在存储过程中使用输入参数 3.9.2 存储过程中使用输出参数 3.10 小结 第4章 JDBC入门 4.1 什么是JDBC 4.2 两层和三层模型 4.2.1 两层模型 4.2.2 三层模型 4.3 SQL的一致性 4.4 JDBC兼容性 4.5 JDBC如何工作 4.5.1 DriverManager 4.5.2 JDBC DataSource 4.5.3 DataSource对象和JNDI 4.5.4 部署和使用DataSource的基本实现 4.6 连接池 4.7 分布式事务处理 4.7.1 分布式事务管理 4.7.2 Connection对象 4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 4.9.2 事务存储点 4.9.3 多线程 4.10 批更新 4.11 ResultSet 4.12 可滚动的ResultSet 4.12.1 创建可滚动的ResultSet 4.12.2 游标控制 4.12.3 将游标移动到指定行 4.12.4 获得游标位置
目录 前言 第1部分 介绍数据库、SQL和JDBC 第1章 关系型数据库 1.1 理解关系型数据库管理系统 1.1.1 关系模型 1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式化 1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 1.3 事务管理和事务控制命令 1.3.1 ACID测试 1.3.2 SQL中的事务管理 1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 数据库设计应考虑的事项 2.1.1 项目规范 2.1.2 设计表 2.1.3 生成发票 2.2 引用完整性 2.2.1 通用完整性规则 2.2.2 特定于数据库的完整性规则 2.3 小结 第3章 SQL基础 3.1 SQL语言 3.2 SQL数据类型 3.3 数据定义语言 3.3.1 创建、取消、更改数据库和表 3.3.2 创建、更改和取消视图 3.4 数据处理语言 3.4.1 INSERT语句 3.4.2 UPDATE语句 3.4.3 DELETE语句 3.5 数据查询语言 3.5.1 SELECT语句 3.5.2 WHERE子句 3.5.3 SQL运算符 3.5.4 使用子查询 3.6 对查询结果排序 3.7 将查询结果进行汇总 3.7.1 集合函数 3.7.2 使用HAVING子句来筛选组 3.7.3 使用索引提高SQL查询效率 3.7.4 格式化SQL命令 3.7.5 使用SQL连接 3.7.6 编写SQL的JOIN命令 3.7.7 使用UNION运算符进行组合查询 3.8 数据控制语言 3.8.1 管理用户 3.8.2 授予和取消用户权限 3.9 创建和使用存储过程 3.9.1 在存储过程中使用输入参数 3.9.2 存储过程中使用输出参数 3.10 小结 第4章 JDBC入门 4.1 什么是JDBC 4.2 两层和三层模型 4.2.1 两层模型 4.2.2 三层模型 4.3 SQL的一致性 4.4 JDBC兼容性 4.5 JDBC如何工作 4.5.1 DriverManager 4.5.2 JDBC DataSource 4.5.3 DataSource对象和JNDI 4.5.4 部署和使用DataSource的基本实现 4.6 连接池 4.7 分布式事务处理 4.7.1 分布式事务管理 4.7.2 Connection对象 4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 4.9.2 事务存储点 4.9.3 多线程 4.10 批更新 4.11 ResultSet 4.12 可滚动的ResultSet 4.12.1 创建可滚动的ResultSet 4.12.2 游标控制 4.12.3 将游标移动到指定行 4.12.4 获得游标位置 4.13 可更新的ResultSet 4.13.1 更新ResultSet 4.13.2 插入一新行 4.13.3 删除行 4.14 观察ResultSet中的变化 4.15 RowSet对象 4.16 创建RowSet和设置属性 4.16.1 RowSet事件 4.17 元数据 4.17.1 DatabaseMetaData 4.17.2 ResultSetMetaData 4.17.3 ParameterMetaData方法 4.18 SQL数据类型的JDBC映射 4.19 SQL3数据类型 4.19.1 对象关系型数据库 4.19.2 使用SQL3数据类型 4.19.3 创建用户定义的数据类型 4.20 异常和日志 4.20.1 SQLException 4.20.2 SQLWarning 4.20.3 BatchUpdateException 4.20.4 日志 4.21 小结 第2部分 在两层客户/服务器结构中使用JDBC和SQL 第5章 使用JDBC和SQL创建表 5.1 创建数据库 5.2 使用表 5.2.1 记录和字段、行和列 5.2.2 SQL数据类型 5.2.3 完整性约束 5.3 创建表 5.4 使用JDBC创建表 5.4.1 DriverManager 5.4.2 驱动程序 5.4.3 连接 5.4.4 Statement 5.5 使用ALTER TABLE改变表 5.6 删除或取消表 5.7 创建基于Swing的表构建器 5.7.1 控制程序 5.7.2 视图 5.7.3 模型 5.8 小结 第6章 插入、更新和删除数据 6.1 使用SQL INSERT插入数据 6.1.1 INSERT语句 6.1.2 使用带有JDBC的INSERT 6.1.3 使用INSERT SELECT 6.2 UPDATE语句 6.2.1 在UPDATE中使用经计算的值 6.2.2 UPDATE的常见问题 6.3 带有提交和回滚的事务管理 6.4 DELETE语句 6.5 基于Swing的表编辑器 6.5.1 TableEditFrame 6.5.2 Controller类 6.6 JDBC ResultSetMetaData 6.7 小结 第7章 使用SQL查询检索数据 7.1 SELECT语句 7.1.1 使用WHERE子句 7.1.2 格式化SQL命令 7.2 在较复杂的WHRER子句中使用运算符 7.2.1 DISTINCT运算符 7.2.2 TOP运算符 7.2.3 比较运算符 7.2.4 CHAR和VARCHAR运算符 7.2.5 逻辑运算符 7.2.6 算术运算符 7.2.7 混合运算符:IN和BETWEEN 7.2.8 集合运算符 7.3 转义序列 7.4 子查询 7.4.1 使用ANY,SOME和ALL谓词 7.4.2 使用IN和NOT IN谓词 7.4.3 使用EXISTS和NOT EXISTS谓词 7.4.4 嵌套子查询 7.4.5 测试子查询 7.5 子查询的额外用途 7.5.1 在SELECT列表中使用子查询 7.5.2 使用带有INSERT命令的子查询 7.5.3 使用带有UPDATE命令的子查询 7.5.4 使用带有DELETE命令的子查询 7.5.5 关联子查询 7.6 JDBC ResultSet 7.6.1 ResultSetMetaData 7.6.2 使用具有JDBC的SELECT来返回RecordSet 7.7 基于Swing的SQL查询面板 7.7.1 View菜单 7.7.2 TableQueryFrame 7.8 JDBC代码 7.9 小结 第8章 组织查询结果和使用索引 8.1 使用ORDER BY对查询结果进行排序 8.2 GROUP BY子句 8.3 聚合函数 8.4 使用HAVING子句筛选组 8.5 使用索引来提高SQL查询的性能 8.6 视图 8.7 小结 第9章 连接和组合查询 9.1 连接表 9.1.1 连接的类型 9.2 键 9.2.1 主键 9.2.2 外键 9.3 使用内连接 9.3.1 使用等连接 9.3.2 使用非等连接 9.4 使用外连接 9.4.1 左外连接 9.4.2 右外连接 9.4.3 全外连接 9.4.4 使用NOT EXISTS 9.5 使用自连接 9.6 使用UNION运算符合并查询 9.6.1 EXCEPT运算符 9.6.2 INTERSECT运算符 9.7 小结 第10章 构建一个客户/服务器应用程序 10.1 使用不同的数据库和驱动程序 10.1.1 扩展的DBManager类 10.2 使用DatabaseMetaData 10.3 检索与数据库相关的信息 10.3.1 在JTree中显示DatabaseMetaData 10.4 检索有关RDBMS功能性的信息 10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性需求 11.3 设计数据库 11.3.1 处理会员登录 11.3.2 会员注册 11.3.3 数据输入 11.3.4 搜索数据库 11.3.5 数据库驱动的电子邮件 11.4 小结 第12章 通过servlet和JSP使用JDBC DataSource 12.1 使用JDBC DataSource 12.2 使用servlet创建动态Web页面 12.2.1 创建一个简单的servlet 12.3 创建和配置Lo9in servlet 12.3.1 实现会员Web站点 12.3.2 创建Login页面 12.3.3 创建servlet 12.3.4 部署 12.4 使用JSP 12.4.1 在JSP中使用JavaBean 12.4.2 自动类型转换 12.4.3 创建和部署JDBC LoginBean 12.5 小结 第13章 使用PreparedStatement和CallableStatement 13.1 创建和使用PreparedStatement 13.1.1 创建PreparedStatement对象 13.1.2 在循环中使用PrenaredStatement 13.1.3 PreparedStatement返回的值 13.2 创建和使用CallableStatement 13.2.1 创建存储过程 13.2.2 调用存储过程 13.2.3 使用JSP Bean中的存储过程 13.2.4 ProcessNABean的作用 13.2.5 错误处理 13.2.6 使用存储过程作为输入和输出参数 13.3 小结 第14章 使用Blob和Clob管理图像和文档 14.1 大对象 14.1.1 使用Blob存储二进制数据 14.1.2 使用Clob存储文本数据 14.2 从浏览器上载图像或文档 14.2.1 用于从DBMS下载大对象的servlet 14.3 小结 第15章 使用JSP,XSL和可滚动的ResultSet显示数据 15.1 可滚动的ResultSet 15.1.1 创建一个可滚动ResultSet 15.1.2 在可滚动ResultSet中移动游标 15.1.3 使用可滚动ResultSet创建一个搜索页面 15.2 使用XSL从SQL查询中创建网页 15.2.1 XSLT如何工作 15.2.2 从数据库中检索的数据作为XML文档 15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4 小结 第16章 使用JDBC驱动的JavaMail API 16.1 使用电子邮件协议 16.1.1 MIME协议 16.1.2 SMTP协议 16.1.3 POP协议 16.2 使用JavaMail API 16.3 使用JDBC驱动的JavaMail发送电子邮件信息 16.3.1 使用JSP页面和JavaMail发送电子邮件 16.3.2 使用有SendMailBean的JSP页面 16.3.3 部署 16.4 使用JavaMail API接收电子邮件 16.5 小结 第4部分 数据库、JDBC和XML 第17章 XML文档对象模型和JDBC 17.1 XML与HTML 17.2 XML和文档对象模型 17.2.1 XML标题 17.2.2 标记和属性 17.2.3 元素和节点 17.3 使用Java XML API——Xerces和JDOM 17.4 将Xbean作为可插入的XML处理模块 17.5 查询数据库创建XML文档 17.6 XML数据源填充数据库 17.7 小结 第18章 用RowSet显示数据 18.1 理解RowSet 18.1.1 创建和应用RowSet 18.1.2 使RowSet可滚动和可更新 18.1.3 更新RowSet 18.1.4 插入新行 18.1.5 删除行 18.1.6 查看可更新RowSet所做的修改 18.1.7 RowSet事件 18.2 未连接的RowSet 18.2.1 在PDA中使用CachedRowSet 18.2.2 客户端代码 18.3 根据RowSet生成XML 18.4 小结 第19章 用SQL访问XML文档 19.1 用SQL访问XML文档的原因 19.2 创建可访问JDBC的XML DBMS 19.2.1 实现基类 19.2.2 实现JDBC类 19.2.3 XMLResultSet 19.2.4 实现SQL引擎 19.2.5 测试JDBC/XML数据库 19.3 小结 第5部分 EJB、数据库和持久性 第20章 EJB 20.1 EJB简述 20.2 会话bean 20.2.1 无状态会话Bean 20.2.2 无状态会话Bean 20.3 实体Bean 20.3.1 主键 20.3.2 持久性存储 20.4 消息驱动bean 20.5 EJB事务 20.5.1 容器管理的事务 20.5.2 bean管理的事务 20.6 小结 第21章 bean管理的持久性 21.1 实体对象持久性 21.2 bean管理的持久性 21.2.1 主键 21.2.2 通过实体bean创建和删除实体对象 Z1.2.3 查找实体对象 21.2.4 bean实例变量的同步和持久性对象的状态 Z1.2.5 业务方法 21.3 BMP实体bean示例——MemberEJB 21.4 使用值对象获得更佳性能 21.5 小结 第22章 容器管理的持久性 22.1 CMP实体bean——EJB 2.0之后的新生品 22.2 CMP EJB开发 22.2.1 主接口和远程接口 22.2.2 用最少的代码实现类 22.3 EJB查询语言 22.4 运行示例应用程序 22.5 容器管理的关系 22.5.1 关系字段 22.5.2 关系的基数和方向 22.5.3 访问关系字段 22.6 小结 第23章 Java数据对象和透明持久性 23.1 JDO的透明持久性 23.2 什么使JDO成为独特的持久性机制 23.3 主要的JDO API 23.3.1 PersistenceCapable接口 23.3.2 PersistenceManagerFactory接口 23.3.3 PersistenceManager接口 23.3.4 Query接口 23.3.5 Transaction接口 23.4 测试客户示例 23.5 对复杂域对象模型的支持 23.6 JDO应用程序开发过程 23.7 JDO与J2EE框架集成 23.8 小结 第6部分 数据库管理 第24章 用户管理和数据库的安全性 24.1 组、用户和角色 24.1.1 对组进行操作 24.1.2 对用户进行操作 24.2 理解数据库模式 24.3 管理模式 24.4 用户权限 24.5 用户角色 24.5.1 所有权限 24.5.2 GRANT命令 24.5.3 REVOKE命令 24.6 小结 第25章 性能调整 25.1 数据库调整 25.1.1 语句调整 25.1.2 调整连接 25.1.3 调整索引 25.2 修改数据库方案 25.2.1 范式化 25.2.2 反向范式化 25.2.3 多数据表 25.3 产生冗余数据 25.4 使用导出列和导出表 25.5 数据划分 25.5.1 水平划分 25.5.2 垂直划分 25.6 使用视图 25.7 持续监控 25.8 小结 附录A SQL语法简明指南 附录B 安装Apache和Tomcat
原书名:Foundations of Ajax 原出版社: Apress 作者: (美)Ryan Asleson,Nathaniel T.Schutta 译者: 金灵 等 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:7115144818 上架时间:2006-2-14 出版日期:2006 年2月 简介   ajax技术可以提供高度交互的web应用,给予用户更丰富的页面浏览体验。本书重点介绍ajax及相关的工具和技术,主要内容包括xmlhttprequest对象及其属性和方法、发送请求和处理响应、构建完备的ajax开发工具、使用jsunit测试javascript、分析javascript调试工具和技术,以及ajax开发模式和框架等。本书中所有例子的代码都可以从apmss网站本书主页的源代码(source code)免费得到。.   本书适合各层次web应用开发人员和网页设计人员阅读。    2005年,在web 2.0热潮中,ajax横空出世,迅速成为最炙手可热的web开发技术。google、microsoft、amazon和yahoo都已经全面采用ajax,新一代的网站如雨后春笋,迅速兴起。..   什么是ajax? ajax为什么会这么热,它到底有什么奇妙之处?ajax是少数高手才能使用的尖端技术吗?如何用ajax开发全新用户体验的web应用,如何用ajax赋予原有应用新的生命?本书将给你满意的答案!   书中不仅详细讲述了如何结合使用各种标准web技术如javascript、html、css和xmlhttprequest开发ajax应用,而且涵盖了调试、测试、文档、验证等工具,以及相关的模式、框架、应该避免的陷阱。阅读本书,再加上已有的开发经验,你也能在应用中使用超炫的ajax技术,使你的网站立即焕然一新!这一过程将乐趣无穷,我们衷心地希望,有一天能看到你开发的基于ajax的一流应用!... 目录 译者序. 前言 致谢 关于技术审校 第1章 ajax简介 1 1.1 web应用简史 1 1.2 浏览器历史 2 1.3 web应用的发展历程 3 1.3.1 cgi 4 1.3.2 applet 4 1.3.3 javascript 5 1.3.4 servlet、asp和php……哦,太多了! 6 1.3.5 flash 9 1.3.6 dhtml革命 10 1.3.7 xml衍生语言 10 1.3.8 基本问题 12 1.3.9 ajax 13 1.4 可用性问题 17 1.5 相关技术 18 1.6 使用场合 19 .1.7 设计考虑 20 1.8 小结 21 第2章 使用xmlhttprequest对象 23 2.1 xmlhttprequest对象概述 23 2.2 方法和属性 25 2.3 交互示例 26 2.4 get与post 28 2.5 远程脚本 29 2.5.1 远程脚本概述 29 2.5.2 远程脚本的示例 29 2.6 如何发送简单请求 31 2.6.1 简单请求的示例 32 2.6.2 关于安全 34 2.7 dom level 3 加载和保存规约 35 2.8 dom 35 2.9 小结 36 第3章 与服务器通信:发送请求和处理响应 37 3.1 处理服务器响应 37 3.1.1 使用innerhtml属性创建动态内容 37 3.1.2 将响应解析为xml 40 3.1.3 使用w3c dom动态编辑页面 45 3.2 发送请求参数 52 3.2.1 请求参数作为xml发送 59 3.2.2 使用json向服务器发送数据 64 3.3 小结 70 第4章 实现基本ajax技术 71 4.1 完成验证 71 4.2 读取响应首部 75 4.3 动态加载列表框 79 4.4 创建自动刷新页面 85 4.5 显示进度条 90 4.6 创建工具提示 95 4.7 动态更新web页面 101 4.8 访问web服务 110 4.9 提供自动完成 116 4.10 小结 123 第5章 构建完备的ajax开发工具箱 125 5.1 使用jsdoc建立javascript代码的文档 125 5.1.1 安装 126 5.1.2 用法 126 5.2 使用firefox扩展验证html内容 129 5.2.1 html validator 130 5.2.2 checky .. 132 5.3 使用dom inspector搜索节点 133 5.4 使用jslint完成javascript语法检查 137 5.5 完成javascript压缩和模糊处理 138 5.6 使用firefox的web开发扩展 140 5.7 实现高级javascript技术 141 5.7.1 通过prototype属性建立面向对象的javascript 142 5.7.2 私有属性和使用javascript的信息隐藏 146 5.7.3 javascript中基于类的继承 148 5.7.4 汇合 149 5.8 小结 152 第6章 使用jsunit测试javascript代码 155 6.1 javascript提出的问题 155 6.1.1 测试先行方法介绍 155 6.1.2 junit介绍 157 6.2 分析jsunit 158 6.2.1 起步 159 6.2.2 编写测试 159 6.2.3 运行测试 172 6.2.4 使用标准/定制查询串 177 6.2.5 使用jsunit服务器 181 6.2.6 获得帮助 183 6.2.7 还能用什么? 184 6.3 小结 184 第7章 分析javascript调试工具和技术 185 7.1 用greasemonkey调试ajax请求 186 7.1.1 greasemonkey介绍 186 7.1.2 使用greasemonkey xmlhttprequest调试用户脚本 186 7.1.3 使用xmlhttprequest调试用户脚本检查ajax请求和响应 186 7.2 调试javascript 188 7.2.1 使用firefox javascript console 189 7.2.2 使用microsoft script debugger 190 7.2.3 使用venkman 192 7.3 小结 207 第8章 万事俱备 209 8.1 模式介绍 209 8.1.1 实现褪色技术 209 8.1.2 实现自动刷新 210 8.1.3 实现部分页面绘制 210 8.1.4 实现可拖放dom 211 8.2 避免常见的陷阱 212 8.3 相关的更多资源 214 8.4 使用框架 216 8.5 taconite介绍 216 8.5.1 taconite原理 217 8.5.2 解决方案 217 8.5.3 taconite怎么处理内容 219 8.6 dashboard应用介绍 219 8.7 用taconite构建ajax dashboard 221 8.7.1 一般特性介绍 221 8.7.2 设计特性介绍 222 8.7.3 分析代码 224 8.7.4 分析天气预报组件 225 8.7.5 分析标题新闻组件 232 8.7.6 如何完成自动重新刷新工作 235 8.7.7 构建更好的autocomplete 237 8.8 小结 240 附录a 开发跨浏览器javascript 241 a.1 向表中追加行 241 a.2 通过javascript设置元素的样式 242 a.3 设置元素的class属性 243 a.4 创建输入元素 243 a.5 向输入元素增加事件处理程序 244 a.6 创建单选钮 245 a.7 小结 246 附录b ajax框架介绍 247 b.1 浏览器端框架 247 b.1.1 dojo 248 b.1.2 rico 248 b.1.3 qooxdoo 248 b.1.4 tibet 249 b.1.5 flash/javascript集成包 249 b.1.6 google ajaxslt 249 b.1.7 libxmlrequest 249 b.1.8 rslite 250 b.1.9 sack 250 b.1.10 sarrisa 250 b.1.11 xhconn 251 b.2 服务器端框架 251 b.2.1 cpaint 251 b.2.2 sajax 251 b.2.3 json/json-rpc 251 b.2.4 direct web remoting 252 b.2.5 swato 252 b.2.6 java blueprints 252 b.2.7 ajax.net 252 b.2.8 microsoft的atlas项目 253 b.2.9 ruby on rails ... 253
目录 前言 第1部分 介绍数据库、SQL和JDBC 第1章 关系型数据库 1.1 理解关系型数据库管理系统 1.1.1 关系模型 1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式化 1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 1.3 事务管理和事务控制命令 1.3.1 ACID测试 1.3.2 SQL中的事务管理 1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 数据库设计应考虑的事项 2.1.1 项目规范 2.1.2 设计表 2.1.3 生成发票 2.2 引用完整性 2.2.1 通用完整性规则 2.2.2 特定于数据库的完整性规则 2.3 小结 第3章 SQL基础 3.1 SQL语言 3.2 SQL数据类型 3.3 数据定义语言 3.3.1 创建、取消、更改数据库和表 3.3.2 创建、更改和取消视图 3.4 数据处理语言 3.4.1 INSERT语句 3.4.2 UPDATE语句 3.4.3 DELETE语句 3.5 数据查询语言 3.5.1 SELECT语句 3.5.2 WHERE子句 3.5.3 SQL运算符 3.5.4 使用子查询 3.6 对查询结果排序 3.7 将查询结果进行汇总 3.7.1 集合函数 3.7.2 使用HAVING子句来筛选组 3.7.3 使用索引提高SQL查询效率 3.7.4 格式化SQL命令 3.7.5 使用SQL连接 3.7.6 编写SQL的JOIN命令 3.7.7 使用UNION运算符进行组合查询 3.8 数据控制语言 3.8.1 管理用户 3.8.2 授予和取消用户权限 3.9 创建和使用存储过程 3.9.1 在存储过程中使用输入参数 3.9.2 存储过程中使用输出参数 3.10 小结 第4章 JDBC入门 4.1 什么是JDBC 4.2 两层和三层模型 4.2.1 两层模型 4.2.2 三层模型 4.3 SQL的一致性 4.4 JDBC兼容性 4.5 JDBC如何工作 4.5.1 DriverManager 4.5.2 JDBC DataSource 4.5.3 DataSource对象和JNDI 4.5.4 部署和使用DataSource的基本实现 4.6 连接池 4.7 分布式事务处理 4.7.1 分布式事务管理 4.7.2 Connection对象 4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 4.9.2 事务存储点 4.9.3 多线程 4.10 批更新 4.11 ResultSet 4.12 可滚动的ResultSet 4.12.1 创建可滚动的ResultSet 4.12.2 游标控制 4.12.3 将游标移动到指定行 4.12.4 获得游标位置 4.13 可更新的ResultSet 4.13.1 更新ResultSet 4.13.2 插入一新行 4.13.3 删除行 4.14 观察ResultSet中的变化 4.15 RowSet对象 4.16 创建RowSet和设置属性 4.16.1 RowSet事件 4.17 元数据 4.17.1 DatabaseMetaData 4.17.2 ResultSetMetaData 4.17.3 ParameterMetaData方法 4.18 SQL数据类型的JDBC映射 4.19 SQL3数据类型 4.19.1 对象关系型数据库 4.19.2 使用SQL3数据类型 4.19.3 创建用户定义的数据类型 4.20 异常和日志 4.20.1 SQLException 4.20.2 SQLWarning 4.20.3 BatchUpdateException 4.20.4 日志 4.21 小结 第2部分 在两层客户/服务器结构中使用JDBC和SQL 第5章 使用JDBC和SQL创建表 5.1 创建数据库 5.2 使用表 5.2.1 记录和字段、行和列 5.2.2 SQL数据类型 5.2.3 完整性约束 5.3 创建表 5.4 使用JDBC创建表 5.4.1 DriverManager 5.4.2 驱动程序 5.4.3 连接 5.4.4 Statement 5.5 使用ALTER TABLE改变表 5.6 删除或取消表 5.7 创建基于Swing的表构建器 5.7.1 控制程序 5.7.2 视图 5.7.3 模型 5.8 小结 第6章 插入、更新和删除数据 6.1 使用SQL INSERT插入数据 6.1.1 INSERT语句 6.1.2 使用带有JDBC的INSERT 6.1.3 使用INSERT SELECT 6.2 UPDATE语句 6.2.1 在UPDATE中使用经计算的值 6.2.2 UPDATE的常见问题 6.3 带有提交和回滚的事务管理 6.4 DELETE语句 6.5 基于Swing的表编辑器 6.5.1 TableEditFrame 6.5.2 Controller类 6.6 JDBC ResultSetMetaData 6.7 小结 第7章 使用SQL查询检索数据 7.1 SELECT语句 7.1.1 使用WHERE子句 7.1.2 格式化SQL命令 7.2 在较复杂的WHRER子句中使用运算符 7.2.1 DISTINCT运算符 7.2.2 TOP运算符 7.2.3 比较运算符 7.2.4 CHAR和VARCHAR运算符 7.2.5 逻辑运算符 7.2.6 算术运算符 7.2.7 混合运算符:IN和BETWEEN 7.2.8 集合运算符 7.3 转义序列 7.4 子查询 7.4.1 使用ANY,SOME和ALL谓词 7.4.2 使用IN和NOT IN谓词 7.4.3 使用EXISTS和NOT EXISTS谓词 7.4.4 嵌套子查询 7.4.5 测试子查询 7.5 子查询的额外用途 7.5.1 在SELECT列表中使用子查询 7.5.2 使用带有INSERT命令的子查询 7.5.3 使用带有UPDATE命令的子查询 7.5.4 使用带有DELETE命令的子查询 7.5.5 关联子查询 7.6 JDBC ResultSet 7.6.1 ResultSetMetaData 7.6.2 使用具有JDBC的SELECT来返回RecordSet 7.7 基于Swing的SQL查询面板 7.7.1 View菜单 7.7.2 TableQueryFrame 7.8 JDBC代码 7.9 小结 第8章 组织查询结果和使用索引 8.1 使用ORDER BY对查询结果进行排序 8.2 GROUP BY子句 8.3 聚合函数 8.4 使用HAVING子句筛选组 8.5 使用索引来提高SQL查询的性能 8.6 视图 8.7 小结 第9章 连接和组合查询 9.1 连接表 9.1.1 连接的类型 9.2 键 9.2.1 主键 9.2.2 外键 9.3 使用内连接 9.3.1 使用等连接 9.3.2 使用非等连接 9.4 使用外连接 9.4.1 左外连接 9.4.2 右外连接 9.4.3 全外连接 9.4.4 使用NOT EXISTS 9.5 使用自连接 9.6 使用UNION运算符合并查询 9.6.1 EXCEPT运算符 9.6.2 INTERSECT运算符 9.7 小结 第10章 构建一个客户/服务器应用程序 10.1 使用不同的数据库和驱动程序 10.1.1 扩展的DBManager类 10.2 使用DatabaseMetaData 10.3 检索与数据库相关的信息 10.3.1 在JTree中显示DatabaseMetaData 10.4 检索有关RDBMS功能性的信息 10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性需求 11.3 设计数据库 11.3.1 处理会员登录 11.3.2 会员注册 11.3.3 数据输入 11.3.4 搜索数据库 11.3.5 数据库驱动的电子邮件 11.4 小结 第12章 通过servlet和JSP使用JDBC DataSource 12.1 使用JDBC DataSource 12.2 使用servlet创建动态Web页面 12.2.1 创建一个简单的servlet 12.3 创建和配置Lo9in servlet 12.3.1 实现会员Web站点 12.3.2 创建Login页面 12.3.3 创建servlet 12.3.4 部署 12.4 使用JSP 12.4.1 在JSP中使用JavaBean 12.4.2 自动类型转换 12.4.3 创建和部署JDBC LoginBean 12.5 小结 第13章 使用PreparedStatement和CallableStatement 13.1 创建和使用PreparedStatement 13.1.1 创建PreparedStatement对象 13.1.2 在循环中使用PrenaredStatement 13.1.3 PreparedStatement返回的值 13.2 创建和使用CallableStatement 13.2.1 创建存储过程 13.2.2 调用存储过程 13.2.3 使用JSP Bean中的存储过程 13.2.4 ProcessNABean的作用 13.2.5 错误处理 13.2.6 使用存储过程作为输入和输出参数 13.3 小结 第14章 使用Blob和Clob管理图像和文档 14.1 大对象 14.1.1 使用Blob存储二进制数据 14.1.2 使用Clob存储文本数据 14.2 从浏览器上载图像或文档 14.2.1 用于从DBMS下载大对象的servlet 14.3 小结 第15章 使用JSP,XSL和可滚动的ResultSet显示数据 15.1 可滚动的ResultSet 15.1.1 创建一个可滚动ResultSet 15.1.2 在可滚动ResultSet中移动游标 15.1.3 使用可滚动ResultSet创建一个搜索页面 15.2 使用XSL从SQL查询中创建网页 15.2.1 XSLT如何工作 15.2.2 从数据库中检索的数据作为XML文档 15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4 小结 第16章 使用JDBC驱动的JavaMail API 16.1 使用电子邮件协议 16.1.1 MIME协议 16.1.2 SMTP协议 16.1.3 POP协议 16.2 使用JavaMail API 16.3 使用JDBC驱动的JavaMail发送电子邮件信息 16.3.1 使用JSP页面和JavaMail发送电子邮件 16.3.2 使用有SendMailBean的JSP页面 16.3.3 部署 16.4 使用JavaMail API接收电子邮件 16.5 小结 第4部分 数据库、JDBC和XML 第17章 XML文档对象模型和JDBC 17.1 XML与HTML 17.2 XML和文档对象模型 17.2.1 XML标题 17.2.2 标记和属性 17.2.3 元素和节点 17.3 使用Java XML API——Xerces和JDOM 17.4 将Xbean作为可插入的XML处理模块 17.5 查询数据库创建XML文档 17.6 XML数据源填充数据库 17.7 小结 第18章 用RowSet显示数据 18.1 理解RowSet 18.1.1 创建和应用RowSet 18.1.2 使RowSet可滚动和可更新 18.1.3 更新RowSet 18.1.4 插入新行 18.1.5 删除行 18.1.6 查看可更新RowSet所做的修改 18.1.7 RowSet事件 18.2 未连接的RowSet 18.2.1 在PDA中使用CachedRowSet 18.2.2 客户端代码 18.3 根据RowSet生成XML 18.4 小结 第19章 用SQL访问XML文档 19.1 用SQL访问XML文档的原因 19.2 创建可访问JDBC的XML DBMS 19.2.1 实现基类 19.2.2 实现JDBC类 19.2.3 XMLResultSet 19.2.4 实现SQL引擎 19.2.5 测试JDBC/XML数据库 19.3 小结 第5部分 EJB、数据库和持久性 第20章 EJB 20.1 EJB简述 20.2 会话bean 20.2.1 无状态会话Bean 20.2.2 无状态会话Bean 20.3 实体Bean 20.3.1 主键 20.3.2 持久性存储 20.4 消息驱动bean 20.5 EJB事务 20.5.1 容器管理的事务 20.5.2 bean管理的事务 20.6 小结 第21章 bean管理的持久性 21.1 实体对象持久性 21.2 bean管理的持久性 21.2.1 主键 21.2.2 通过实体bean创建和删除实体对象 Z1.2.3 查找实体对象 21.2.4 bean实例变量的同步和持久性对象的状态 Z1.2.5 业务方法 21.3 BMP实体bean示例——MemberEJB 21.4 使用值对象获得更佳性能 21.5 小结 第22章 容器管理的持久性 22.1 CMP实体bean——EJB 2.0之后的新生品 22.2 CMP EJB开发 22.2.1 主接口和远程接口 22.2.2 用最少的代码实现类 22.3 EJB查询语言 22.4 运行示例应用程序 22.5 容器管理的关系 22.5.1 关系字段 22.5.2 关系的基数和方向 22.5.3 访问关系字段 22.6 小结 第23章 Java数据对象和透明持久性 23.1 JDO的透明持久性 23.2 什么使JDO成为独特的持久性机制 23.3 主要的JDO API 23.3.1 PersistenceCapable接口 23.3.2 PersistenceManagerFactory接口 23.3.3 PersistenceManager接口 23.3.4 Query接口 23.3.5 Transaction接口 23.4 测试客户示例 23.5 对复杂域对象模型的支持 23.6 JDO应用程序开发过程 23.7 JDO与J2EE框架集成 23.8 小结 第6部分 数据库管理 第24章 用户管理和数据库的安全性 24.1 组、用户和角色 24.1.1 对组进行操作 24.1.2 对用户进行操作 24.2 理解数据库模式 24.3 管理模式 24.4 用户权限 24.5 用户角色 24.5.1 所有权限 24.5.2 GRANT命令 24.5.3 REVOKE命令 24.6 小结 第25章 性能调整 25.1 数据库调整 25.1.1 语句调整 25.1.2 调整连接 25.1.3 调整索引 25.2 修改数据库方案 25.2.1 范式化 25.2.2 反向范式化 25.2.3 多数据表 25.3 产生冗余数据 25.4 使用导出列和导出表 25.5 数据划分 25.5.1 水平划分 25.5.2 垂直划分 25.6 使用视图 25.7 持续监控 25.8 小结 附录A SQL语法简明指南 附录B 安装Apache和Tomcat

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值