JavaSE基础

基本数据类型:

整数型:byte字节型

short短整型

int整型

long长整型

浮点型:单精度float

双精度double

布尔型:boolean的值true、false

字符型:char字符:\u0000-\uffff

中文范围:\u4E00-\u9FA5



运算符:

算术运算:+、-、*、/、%、++、--

关系运算:<、>、<=、>=、!=、==

赋值运算:=、+=、-=、*=、/=、%=

逻辑运算:&&(短路与)、||(短路或)、!(非)

位运算:&、|、^

三目运算: 表达式 ?  值1(true) : 值2(false) ;

instanceof 运算符:检查对象是否是一个特定类型



访问修饰符:

公共的 public

受保护的 protected

默认的

私有的 private

非访问修饰符:

静态修饰符 static

final :

修饰类时,该类不能被继承

   修饰方法时,该方法不能被重写

修饰变量时,该变量的值不能被改变,即为常量

synchronized :处理多线程并发问题

abstract : 抽象的,可以修饰类和方法



变量:

局部变量:

声明在方法体或代码块中;

当方法被调用时才有机会被创建,方法执行完毕后自动销毁;

对所在代码块或方法体可见;

在使用前必须要先赋值;

只能被final修饰;

成员变量(实例变量):

声明在类体中;

当实例化对象时创建,对象销毁时销毁;

对所在类体的所有方法可见;
对外可见性,根据访问修饰符决定的;

可以使用访问修饰符、static、final修饰;

成员变量可以不用赋初始化值,每种类型都有自己的默认值;

当被final修饰时,必须赋初始化值;


类变量(静态变量):

声明在类体中,并且使用static关键字修饰;

在类加载时创建,在JVM关闭时销毁;

存储在静态存储区,该变量的数据是被该类所有对象所共享;



方法:

成员方法(实例方法):

没有使用static关键字修饰的方法

可以被对象调用

静态方法(类方法):

使用static关键字修饰的方法

可以被类或对象调用

构造方法:

作用:用于实例化对象,并对成员变量赋初始化值

特点:

不能有返回值

方法名称必须与类名保持一致,区分大小写

不能使用static、final等关键字修饰

当类没有显式的构造方法,程序执行时会自动创建一个公开的无参构造方法;
当类中有显式的构造方法,程序就不会再自动创建公开无参的构造方法;

可以使用访问修饰符来修饰,当使用非public修饰时,可能会导致某些场景下无法实例化对象

可以使用参数,可以抛异常

调用:

在本类的构造方法中调用其他的构造方法,使用this()方式,this()必须在代码块中的第一行;

在其他地方只能使用实例化对象的方式来调用 new 类名();


方法的概念:

方法重载:

概念:在同一个类中,声明多个同名方法

规则:

与修饰符和返回值无关

与参数有关:顺序、类型、类型

返回值:

除构造方法外,其他所有方法声明时必须有返回值的占位符,当方法无返回值时,使用void

返回值使用return关键字,一个方法中可以有多个return

声明的返回值类型,要和真是的返回值类型保持一致

当方法有返回值时,调用该方法,就会得到该方法返回的数据

参数:

参数是一个特殊的局部变量,在使用时无需在方法体内赋值;

参数的值是在调用该方法时,通过在括号中赋值时传递的

方法中的参数可以有多个,即参数列表

参数可以是基本数据类型,也可以是引用数据类型

流程控制:

分支语句:

if(布尔表达式)-else、switch(byte、short、int、char、(String))-case

循环语句:

while、do-while()、for()、foreach、

控制:

continue:跳过本次循环,不再执行continue后面的语句,继续下一次迭代

break:跳出当前循环体,继续循环后面的代码

标签:声明在循环体之前,例如:a:for(){},需要配合continue/break关键字来使用



面向对象:

封装:

私有属性,把成员变量的访问修饰符声明为private

公开方法对属性赋值和取值,声明getXXX() 和 setXXX()方法

继承:

在Java中是单继承,但可以实现多重继承

子类可以继承父类非私有的属性和方法,不能继承构造方法

在实例化子类时,先执行父类的构造方法,在执行子类的构造方法

当父类的方法无法满足子类需要时,子类可以重写父类方法

在子类中,使用super关键字表示父类对象,可以用在非静态方法中;
super()表示父类构造器,只能用在子类的构造器中,并且是在构造器的第一行;

this代表当前子类对象,可以使用在子类的非静态方法中;
this()表示子类的构造器,只能用在子类的构造器中,并且是在构造器的第一行;
不能和super()同时出现;

当类使用final关键字修饰时,该类不能被继承

重写规则:

重写方法的声明部分(返回值类型、方法名、参数列表)要和父类中的方法保持一致

重写方法到访问权限要大于等于父类的方法

重写方法可以抛出任意的非强制性异常,如果父类方法中抛出了异常,子类中的重写方法抛出异常的范围要小于等于父类

当父类的方法使用final关键字修饰时,可以被继承,但不能被重写

当父类的方法使用static修饰时,可以被继承,不能被重写,但是可以在子类中重写声明

(排除final和static关键字的情况下)
如果在同包下,子类可以重写父类的非私有的方法;
不在同包下,子类只能重写父类的public和protected修饰的方法;

不能被继承的方法,不能重写,例如:构造方法


多态:

要有继承

方法重写

父类的引用指向子类的对象

父类引用调用子类重写的方法,指向的是重写的方法

抽象类:

使用abstract关键字修饰的类,即为抽象类

抽象类中可以声明普通类的所有成员之外,还可以声明抽象类

含抽象方法的类一定是抽象类,抽象类中不一定有抽象方法

抽象类不能被实例化对象,只能被继承,使用多态的方式获取对象,也可以使用匿名内部类的方式创建对象

如果一个类继承了抽象类,必须要重写抽象类中的所有抽象方法

抽象方法中可以声明构造方法

接口:

使用interface关键字修饰

接口是可以多继承的

接口可以被类实现,一个类可以实现多个接口

接口是一个完全抽象的抽象类,接口中的方法都是抽象方法(JDK1.7)

接口中不能有构造方法

接口中不能声明变量,只能声明常量,默认的声明方式:public static final int i=11

接口的声明和接口中方法的声明都默认的使用了abstract关键字



数组:

声明

Object[] arr = new Object[长度];
Object[] arr = {o1,o2,o3};
Object[] arr = new Object[]{o1,o2,o3};

赋值:

 arr[下标] = 值

获取数组长度:

length属性

取值:

1、 arr[下标]
2、 普通for循环遍历
for(int i=0;i<arr.length;i++){
arr[i];
}
3、 foreach

排序:

冒泡排序:相邻两个元素依次比较,互换位置
选择排序:让未确定的第一个数依次和后面的比较,互换位置
Arrays.sort(arr); 按照自然升序排列

特点:长度一旦声明,不可改变

二维数组:

赋值
遍历




排序
冒泡排序:相邻两个元素依次比较,互换位置
选择排序:让未确定的第一个数依次和后面的比较,互换位置
Arrays.sort(arr); 按照自然升序排列


集合

特点:可变长度

Collection:

List:

特点:有序、可重复

实现类:ArrayList

添加:add(Object obj)
    add(int i,Object obj)
    addAll(Collection c)
    addAll(int i,Collection c)

修改:

set(int i,Object  newObj)   

删除:

set(int i,Object  newObj)
remove(int i)
remove(Object obj)
removeAll(Collection c)
retainAll(Collection c) 仅在列表中保留指定 collection 中所包含的元素
clear()

查询:

get(int i) 根据下标查询元素,返回元素
contains(Object obj) 查询列表中是否包含指定元素,包含返回true
containsAll(Collection c) 查询列表中是否包含指定的多个元素,全部包含返回true
indexOf(Object obj) 查询指定元素第一次出现的下标,返回下标索引,没有该元素返回-1
lastIndexOf(Object obj) 查询指定元素最后一次出现的下标,返回下标索引,没有该元素返回-1

isEmpty() 判断列表是否为空,为空返回true

列表遍历:

使用for循环

for(int i=0;i<list.size();i++){

list.get(i);

}

使用foreach循环

使用iterator迭代器

it.hasNext() 如果有下一个元素,返回true

it.next() 返回下一个元素

it.remove() 删除迭代器返回的最后一个元素

其他方法:

使用for循环

 for(int i=0;i<list.size();i++){

list.get(i);

}

使用foreach循环

使用iterator迭代器

it.hasNext() 如果有下一个元素,返回true

it.next() 返回下一个元素

it.remove() 删除迭代器返回的最后一个元素

获取长度:size()

subList(int start,int end) 截取集合,从下标start(包含)到下标end(不包含)截取

toArray() 把列表转为数组,返回的是Object[]

补充:

把数组转为List集合,Arrays.asList(arr);


Set:

特点:无序、不可重复

HashSet:

1、 添加:

add(Object obj)

addAll(Collection c)

2、 修改:set中没有修改的方法,可以间接修改,先删除、再添加

3、 删除:

修改:set中没有修改的方法,可以间接修改,先删除、再添加

remove(Object obj)

removeAll(Collection c)

retainAll(Collection c) 仅保留 set 中那些包含在指定 collection 中的元素

clear() 清除所有元素

4、 查询:

contains(Object obj) 查询set中是否包含指定元素,包含返回true

containsAll(Collection c) 查询set中是否包含指定的多个元素,全部包含返回true

isEmpty() 判断set是否为空,为空返回true


遍历:

使用foreach循环

使用iterator迭代器

it.hasNext() 如果有下一个元素,返回true

it.next() 返回下一个元素

it.remove() 删除迭代器返回的最后一个元素


集合的继承关系     Collection接口:

子接口:Set

List


实现类      AbstractCollection抽象类  子类:

AbstractList抽象类 子类ArrayList

AbstractSet抽象类子类HashSet



基本整数类型包装类:

整数型:byte——>Byte

short——>Short

int——>Integer

long——>Long

浮点型:

float——>Float

double——>Double

布尔型:

boolean——>Boolean

字符型:

char——>Character      

判断:

1、isLetter() 判断是否为字母

 2、isLowerCase() 判断是否为小写字母

 3、isLetterOrDigit() 判断是否为字母或数字

 4、isSpaceChar() 判断是否为空白字符

 5、isUpperCase() 判断是否为大写字母

 6、isDigit() 判断是否为数字

转换:

1、toLowerCase() 转换为小写字母

 2、toUpperCase() 转换为大写字母

Object     : 是所有类的父类,每个类都直接或间接继承了Object

方法:

1、equals() 判断两个对象的值是否相等

 2、toString() 默认打印对象的内存地址,可以被重写,一般用于打印对象的内部信息

 3、getClass() 获取对象的类类型,即获取Class

 4、notify() 唤醒处于等待的对象

 5、wait() 让对象等待

 6、notifyAll() 唤醒所有等待的对象


字符串

String:

1、构造方法:

1)String(byte[] b,String char) 把字节数组解码为指定编码的字符串

2)String(byte[] b,int start,int end) 从字节数组的下标strat处开始解码,到下标end(不包含end)

2、获取索引:

1)charAt(int index) 返回指定索引处的 char 值

2)indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引

3)lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引

4)length() 获取字符串长度

3、判断字符串:

1)compareTo(String anotherString) 按字典顺序比较两个字符串

2)contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true

3)endsWith(String suffix)  测试此字符串是否以指定的后缀结束

4)equals(Object anObject) 将此字符串与指定的对象比较

5)matches(String regex) 告知此字符串是否匹配给定的正则表达式

6)startsWith(String prefix) 测试此字符串是否以指定的前缀开始

7)isEmpty() 当且仅当 length() 为 0 时返回 true

4、转换:

1)getBytes() 把字符串转为字节数组

2)valueOf() 把指定类型转为字符串

3)toCharArray() 把字符串转为字符数组

4)toLowerCase() 转为小写字母

5)toUpperCase() 转为大写字母

6)trim() 清除前后空白

7)replace(char oldChar, char newChar) 新字符替换旧字符

5、拆分:

1)split(String regex) 根据给定正则表达式的匹配把字符串拆分成字符串数组

2)substring(int beginIndex, int endIndex) 按照指定索引拆分字符串

可变长度字符串:

1、StringBuilder:线程不安全的,效率高于StringBuffer

2、StringBuffer:线程安全的

时间日期:

java.util.Date:

1、子类:

1)java.sql.Date   格式:yyyy-MM-dd 年月日

2)java.sql.Time  格式: HH:mm:ss 时分秒

3)java.sql.Timestamp    时间戳

2、构造方法:

1)Date() 获取系统当前时间

2)Date(long t) 给定一个时间戳,获取时间戳表示的日期

3、常用方法·:

1)after(Date when) 测试此日期是否在指定日期之后

2)before(Date when) 测试此日期是否在指定日期之前

3)compareTo(Date anotherDate) 比较两个日期的顺序

4)getTime() 获取当前Date类型表示时间的时间戳

5)setTime(long time) 等同于 构造方法Date(long t)

java.util.Calendar

1、获取对象getInstance()

2、常用方法:

1)add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量

2)get(int field) 返回给定日历字段的值

3)set(int field, int value) 将给定的日历字段设置为给定值

4)setTime(Date date) 使用给定的 Date 设置此 Calendar 的时间

5)getTime() 把Calendar类型转为Date类型

6)getTimeInMillis() 获取时间戳

java.text.SimpleDateFormat:

1、构造方法 SimpleDateFormat(String s)  参数为格式

2、format(Date d) 格式化时间

3、parse(String date) 把字符串类型解析为Date类型


异常处理:

1、异常处理方式:

1)向外抛出 throws

2)捕获异常 try-catch-finally

2、自定义异常: 继承异常类即可

3、常见异常:

1)java.io.IOException IO流异常

2)DataFormatException 数据格式化异常

3)ClassNotFoundException 加载类时没有找到指定的类抛出的异常

4)ParseException 解析异常

5)SQLException SQL语句错误异常

6)ArithmeticException 算术异常

7)ClassCastException 类型转换异常

8)IndexOutOfBoundsException 索引越界异常:   一、ArrayIndexOutOfBoundsException 数组下标越界异常;二、StringIndexOutOfBoundsException 字符串索引越界异常

9)NullPointerException 空指针异常



多线程

开启线程的方式

1、继承Thread类;

重写run方法;

实例化Thread对象,调用start()方法;

2、实现Runnable接口;

重写run()方法;

使用Thread(Runnable r)构造方法

调用start();


线程的生命周期

1、新建状态

2、就绪状态

3、运行状态——>阻塞状态

4、死亡状态


线程控制

slep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)

join()等待该线程终止

setPriority(int newPriority)更改线程的优先级


线程信息

getId()返回该线程的标识符

getName()返回该线程的名称

getPriority() 返回线程的优先级

currentThread() 返回对当前正在执行的线程对象的引用

setName(String name) 改变线程名称


并发问题:
多线程共享数据时,会出现线程并发问题,例如:数据不匹配问题(多账户转账/消费)
解决:使用synchronized关键字为对象加锁


死锁问题:
使用线程锁时会出现死锁问题;
解决:使用Object类的wait()方法来让对象处于等待状态,使用notify()方法来唤醒处于等待状态的对象;



IO流:

IO流的分类

按流向分

1、输入流:读到内存里

2、输出流:从内存向外写

 

按单位分

1、字节流 对象流(序列化和反序列化)

2、字符流 缓冲流


字节流

1、字节输入流 InputStream 抽象类

1)FileInputStream(File f) 参数为File对象

2)FileInputStream(String path) 参数为文件路径

3)ObjectInputStream(InputStream in) 对象输入流,用于反序列化操作


2、字节输出流  OutputStream 抽象类

1)FileOutputStream(File f) 参数为File对象

2)FileOutputStream(String path) 参数为文件路径

3)ObjectOutputStream(OutputStream out) 对象输出流,用于序列化操作


3、对象流

1、序列化  把内存中的对象保存(写)到本地

2、反序列化  把本地保存的对象读到内存中


字符流(与编码格式相关)

1、字符输入流 Reader 抽象类

1)InputStreamReader(InputStream in) 参数为字节输入流对象

2)InputStreamReader(InputStream in, Charset cs) 参数为字节流对象,第2个参数为编码格式

子类:FileReader(File file)  参数为File对象

FileReader(String fileName) 参数为文件路径





2、字符输出流 Writer 抽象类

1)OutputStreamWriter(OutputStream out) 参数为字节输出流对象

2)OutputStreamWriter(OutputStream out, Charset cs) 参数为字节输出流对象,第2个参数为编码格式

子类:FileWriter(String fileName) 参数为文件路径

FileWriter(File file) 参数为File对象



3)PrintWriter

PrintWriter(File file) 参数为File对象

PrintWriter(File file, String csn)  参数1为File对象,参数2为字符集

PrintWriter(OutputStream out) 参数为字节输出流

PrintWriter(String fileName) 参数为文件路径

PrintWriter(String fileName, String csn) 参数1为文件路径,参数2为字符集

PrintWriter(Writer out) 参数为字符输出流对象



缓冲流

1、缓冲输入流 BufferedReader(Reader in) 参数为字符输入流对象

2、缓冲输出流 BufferedWriter(Writer out) 参数为字符输出流


文件操作类:File

 1、操作文件的方法

1)createNewFile() 创建新文件

2)delete() 删除文件或目录

3)mkdir() 创建指定的目录

4)mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录

5)renameTo(File dest) 重新命名此抽象路径名表示的文件

6)setLastModified(long time) 设置此抽象路径名指定的文件或目录的最后一次修改时间

7)setReadable(boolean readable) 设置是否可读

8)setWritable(boolean writable) 设置是否可写

9)setReadOnly() 设置只读



获取信息的方法

1、获取File对象

1)getAbsoluteFile() 返回此抽象路径名的绝对路径名形式

2)getParentFile() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null

3)listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件


2、获取字符串

1)getAbsolutePath() 返回此抽象路径名的绝对路径名字符串

2)getName() 返回文件或目录名称

3)getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null

4)list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录


3、判断的方法

1)isAbsolute() 测试此抽象路径名是否为绝对路径名

2)isDirectory() 测试此抽象路径名表示的文件是否是一个目录

3)isFile() 测试此抽象路径名表示的文件是否是一个标准文件

4)isHidden() 测试此抽象路径名指定的文件是否是一个隐藏文件



4、lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间



5、length() 返回由此抽象路径名表示的文件的长度


网络编程:

1、URL openStream

2、Scoket 

1)构造方法:Scoket(InetAdress adress,int port)

2)getInputStream接受信息

3)getOutputStream()发送信息

3、ServerSocket

1)构造方法:ServerSocket(int port)

2)accept()侦听客户端连接



Swing JFrame

1、组件

1)文本输入框

2)密码框

3)按钮

4)单选按钮

5)下拉框

2、监听事件

1)鼠标事件

2)键盘事件


反射

Class

1、获取Class的方式

1)对象名.getClass

2)类名.class

3)Class.forName("类的全路径")

2、newInstance()创建对象

3、获取属性

1)getFile(String name)

2)getFiles()

4、获取方法

1)getMethod(String name,Class<?>...parameter Types)

2)getMethods()

5、getName()获取类名



method

1、getName()获取方法名称

2、invoke(Object obj,Object...args)执行方法

3、getParameterTypes()返回参数的类型


Filed

1、getName()获取类中成员属性的名称

2、getType()获取类中成员属性的类型

3、set(Object obj,Object value)为类的成员属性赋值




数据库


MySQL

DDL(数据定义语句)

1、操作库

1)创建库 CREATE DATABASE [IF NOT EXISTS] mydb1 [CHARSET = utf-8]

2)修改库的编码集 ALTER DATABASE mydb1 CHARACTER SET utf-8

3)删除库 DROP DATABASE [IF EXISTS] mydb1

4)查询库 SHOW DATABASE


2、操作表

1)创建表  CREATE TABLE [IF NOT EXISTS] 表名(
列名 列类型
);

2)修改表

添加列 ALTER TABLE 表名 ADD(
列名 列类型
);

修改列类型 ALTER TABLE 表名 MODIFY 列名 列类型;

修改列名 ALTER TABLE 表名 CHANGE 原表名 新列名 列类型

删除列 ALTER TABLE 表名 DROP 列名

修改表名 ALTER TABLE 原表名 RENAME TO 新表名


3)删除表 DROP TABLE表名

4)查询表 SHOW TABLES


关键字汇总:CREATE/ALTER/DROP/SHOW


DML(数据操作语句)

对表中数据的添加、修改、删除操作

1、添加数据

INSERT INTO 表名(列名1,列名2,....) VALUES(值1,值2....);

2、修改数据

UPDATE  表名 SET 列名1=列值1,列名2=列值2......[WHERE条件]

3、删除数据

DELETE FROM 表名 [WHERE 条件]

4、关键字汇总

INSERT INTO/UPDATE SET/DELETE



DQL(数据查询语句)

对表中数据的查询操作

1、基础查询

SELECT * FROM 表名

2、条件查询

WHERE子句

1)比较运算

2)BETWEEN END

3)IN

4)IS NOT NULL

5)LIKE


3、排序查询

ORDER BY

1、ASC升序(默认)

2、DESC降序


4、聚合数据

1)COUNT()查询总记录数

2)MAX()查询最大值

3)MIN()查询最小值

4)SUM()求和

5)AVG()求平均数


5、分组查询

GROUP BY

分组条件HAVING


DCL(数据控制语句)

1、创建用户

2、删除用户

3、修改用户权限


 事务管理

1、事务的特点

1)原子性 事务中所有操作是不可再分割的原子单位。事务中所有操作要么全部执行成功,要么全部执行失败

2)一致性 事务执行后,数据库状态与其他业务规则保持一致。

3)隔离性 隔离性是指在并发操作中,不同事务之间应该隔离开来,使每个并发中的事务不会相互干扰

4)持久性 一旦事务提交成功,事务中所有的数据操作都必须被持久化到数据库中


2、事务操作

1)开启事务 start  transaction

2)提交事务 commit

3)回滚事务 rollback


JDBC

1、数据库连接

步骤:

1).动态加载驱动,以MySQL为例
Class.forName("com.mysql.jdbc.Driver");

2)2获得数据库连接对象
Connection conn = DriverManager.getConnection(url,user,password);


2、JDBC核心对象

1)Connection

Statement stmt = conn.createStatement();

PreparedStatement ps = conn.prepareStatement(sql);PreparedStatement ps = conn.prepareStatement(sql);


2)Statement

int executeUpdate(String sql) 添加、修改、删除数据,返回成功操作的记录数

ResultSet executeQuery(String sql) 查询数据,返回结果集

boolean execute() 对数据做增、删、改、查操作,返回boolean类型结果


3)PreparedStatement

setXXX() 为SQL模板动态赋值

int executeUpdate(String sql) 添加、修改、删除数据,返回成功操作的记录数

ResultSet executeQuery(String sql) 查询数据,返回结果集

boolean execute() 对数据做增、删、改、查操作,返回boolean类型结果


4)ResultSet

next() 把光标下移一行

getXXX(int i)  获取结果集中指定位置的数据

滚动结果集(了解)



3、滚动结果集(游标)

1)移动游标

void beforeFirst():把光标放到第一行的前面,这也是光标默认的位置(虚拟位置)

void afterLast():把光标放到最后一行的后面(虚拟位置)

boolean first():把光标放到第一行的位置上,返回值表示调控光标是否成功

boolean last():把光标放到最后一行的位置上

boolean previous():把光标向上挪一行

boolean next():把光标向下挪一行

boolean relative(int row):相对位移,当row为正数时,表示向下移动row行,为负数时表示向上移动row行

boolean absolute(int row):绝对位移,把光标移动到指定的行上


2)判断游标

boolean isBeforeFirst():当前光标位置是否在第一行前面;

boolean isAfterLast():当前光标位置是否在最后一行的后面;

boolean isFirst():当前光标位置是否在第一行上;

boolean isLast():当前光标位置是否在最后一行上;

int getRow():返回当前光标所在位置;


3)获取总行数

先执行rs.last();把光标移动到最后一行,
再执行rs.getRow();获得当前光标所在行,
可以得到结果集一共有多少行


4)获取总列数

先获取结果集的元数据 ResultSetMetaData rsmd = rs.getMetaData();

获取结果集列数:int len = rsmd.getColumnCount();

获取指定列的列名:String name = rsmd.getColumnName(int colIndex);


5、事务管理

1)Connection的三个方法实现事务管理

conn.setAutoCommit(false)表示开启事务

conn.commit()表示提交事务

conn.rollback()表示回滚事务


Web前端

HTML

1、文本标签

1)文本修饰

font、i斜体、u下划线、s删除线、sub下标、sup上标

2)段落

p、hr、br


2、图片标签

img


3、超链接

a


4、列表

1)有序列表

ol-li

2)无序列表

ul-li


5、表格

table

tr

td

th


6、表单

1)form

2)input

type属性

text 文本输入框

password 密码输入框

radio 单选按钮

checkbox 多选按钮

submit 提交按钮

3)常用组件

button

textarea

select-option


7、其他标签

meta

base

link

style

script




CSS

1、选择器

1)类选择器

2)ID选择器

3)标签选择器







JavaWeb

1、Servlet

1)Servlet生命周期

2)常用对象

3)监听器

4)过滤器



2、JSP

1、基础语法

Java脚本

1)<% %>相当于方法体(变量、常量、类)

2、<%!  %> 相当于类体(静态成员、实例成员、接口)

3、<%= %>  相当于print()的参数


2、JSP指令

1、<%@ page     %>

2、<%@ include     %>

3、<%@ taglib    %>



3、动作元素

1)<jsp:useBean> 实例化对象

2)<jsp:setProperty> 为对象的属性赋值

3)<jsp:getProperty>  获取对象的属性值

4)<jsp:include>  引入页面或文件到当前的JSP页面中

5)<jsp:forward> 请求转发 配合标签 <jsp:param> 声明参数



4、九大内置对象

out、request、response、session、application、exception、page、pageContext、config


3、跟踪会话

1、session

1)把信息保存在服务器端

2)保存Object类型

3)会话结束销毁

4)安全机制高,保存重要信息


2、cookie

1)把信息保存在客户端

2)保存String类型

3)可以长期保存

4)安全机制低,保存不重要信息



4、JSTL标签库

out标签、set标签、remove标签、catch标签、if标签、choose/when/otherwise标签、forEach标签、forTokes标签、import标签、redirect标签、url标签


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值