java复盘笔记(包括java基础知识、jdbc数据库连接、sql语句操作等知识)

一、java基础知识

1、Hello Word小程序

1)工具准备:jdk安装:jdk1.6或jdk1.7
2)环境配置:配置环境变量JAVA_HOME
3)编写Hello World代码
4)执行Hello World程序。

public class Helloword{
	public static void main(String[] agres){
		System.out.println("Helloword");
	}
}

java复盘笔记(包括java基础知识、jdbc数据库连接、sql语句操作等知识)_第1张图片
java复盘笔记(包括java基础知识、jdbc数据库连接、sql语句操作等知识)_第2张图片

2、JAVA常用知识点

1)类的定义和声明:

类的定义:访问说明符class类名、extends超类名、implements接口名
类名是自己定义的可以反映该程序的作用的命名,用public定义的类是公共类,任何都可以访问;
超类名是指已经存在的类,可以是系统类(即是:父类);
接口名:是指没有实际方法的类;

2)类的实例化:

包括成员变量,方法。
成员变量:指类的属性,标志性的静态特征(如:人的名字、年龄、身高等)
访问说明符:public、private、protected三种,分别是公开的(可以从外部访问)、私有的(可以间接从外部访问)、受保护的(子类访问受限)
方法:定义方法(访问说明符 数据类型 方法名(数据类型 变量名))
创建类的实例:利用关键字new进行创建

3)接口的定义和声明

接口的定义:接口是没有完全实现的类,在接口中只包含了抽象方法和常量的定义。接口的定义需要用interface进行定义,接口里不能定义构造方法一个接口不能实现另一个接口,但是一个接口可以继承多个其他接口。
接口的声明:访问修饰符 interface 接口名{访问修饰符 方法名}。

public interface A{
	public int sum();
}

4)接口的实现

接口的实现:接口的实现要通过类进行实现,一个类可以实现多个接口,实现接口的方法必须用public来定义。

public class B implements A{
	public int num1;
	public int num2;
	public int sum(){
		return num1+num2;
	}
}

5)常用类和数据结构-String类

String类:String类是继承了Object类,当采用equals比较时,比较的是两个对象的地址。
String类重写了toString方法,输出对象是直接输出内容,用equals比较时,是采用的两个对象的内容。
每次对String改变时会生成一个新的String对象,当内存中引用对象多了以后会导致性能下降,所有不要使用String来频繁的拼接,在单线程中数据较少时用String。

6)String、StringBuffer,StringBuilder使用比较

String:内容被定义了就不能被修改,只能定义一次
StringBuffer:是一个线程安全的可变的字符串变量(在实际开发中,如果要频繁对一个变量修改,使用StringBuffer更加合理),主要用在全局变量中
StringBuillder:是一个线程不安全的可变的字符串序列,可以用在单线程的程序中。

7)常用类和数据结构-包装类

基本数据类型 对应的包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

包装类型的初始值是null

8)包装类型的数值转换

装箱:基本数据类型转换成包装类型
拆箱:包装类型转换成基本数据类型

9)常用类和数据结构-容器类

Collection Map
List Set HashMap Hashtable
ArrayList Vector HashSet HashMap Hashtable
线程不安全、不同步、有序、可重复,查询效率高 线程不安全、同步、有序、可重复,查询效率高 不保证集合中元素顺序,不重复 不同步,可以用containsKey()来判断存在键,可以有一个null 同步,可以用get()判断存在键,用在多线程,不允许出现null

参考地址:https://blog.csdn.net/qq_37465368/article/details/80854672

10)JAVA的IO流

IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。

java复盘笔记(包括java基础知识、jdbc数据库连接、sql语句操作等知识)_第3张图片
参考地址:https://www.cnblogs.com/shuaiguoguo/p/8883862.html

11)java的异常

java复盘笔记(包括java基础知识、jdbc数据库连接、sql语句操作等知识)_第4张图片
java复盘笔记(包括java基础知识、jdbc数据库连接、sql语句操作等知识)_第5张图片
java复盘笔记(包括java基础知识、jdbc数据库连接、sql语句操作等知识)_第6张图片
参考地址:https://www.jianshu.com/p/49d2c3975c56

3JDBC

JDBC是JAVA数据库连接的简称,它是连接数据库与JAVA应用程序之间的桥梁,直接连接,在程序代码中直接编写JDBC代码连接数据库。

1)加载数据库驱动

 驱动程序的加载:class.forName()
 Oracle驱动加载程序:oracle.jdbc.driver.OracleDriver;

2)连接数据库

连接地址:jdbc:oracle:thin:@localhost:1521:oracle
连接用户名:登录管理用户(conn sys/密码)
		   创建用户(create user 用户名 identified by 密码 account unlock;)
		   给创建的用户权限(grant connect,resource to admin;)
密码:(自己设置:如果是sys/system用户,密码为安装Oracle时的口令)
代码:Connection conn = DriverManager.getConnection(连接地址, 用户名, 密码); // 连接数据库
关闭连接:conn.close();
基本操作:executeQuery(sql) 查询
		 executeUpdate(sql) 插入、更新、删除
		 execute(); 创建

3)sql语句

我遇到比较特殊的操作语句
select语句的应用 ·································参考地址
其他详细笔记请看:······························参考地址

····普通条件查询········
select 字段名 from 表名 where 查询条件;

····内联条件查询··········
select 显示字段名 from 表名 where 查询条件;
其中"表名"可以是:inner join 表名 on 查询条件 ... (inner join 表名 on 查询添加)括号里的可以添加任意多个 where 查询条件;

····外部条件查询·······口诀:(+)在哪边,哪边就是部分显示表
左外连接:select 显示字段名 from 全显表 left join 其他表 on 条件;
	   ==select 显示字段名 from 全显表,其他表 where 全表条件=他表条件(+);
右外连接:select 显示字段名 from 全显表 right join 其他表 on 条件; 
       ==select 显示字段名 from 全显表,其他表 where 他表条件(+)==全表条件;

····子查询(嵌套语句)······(in,exists作为where查询条件的一部分)
select 显示字段名 from 表名 where 查询条件;
==select 字段名 from 表名 where exists (查询条件);该方法的exists==字段名>。
其中"查询条件"可以是:字段名>(select 字段名 from 表名 where 查询条件);       

····分组查询························
select 字段名/计算结果 from 表名 group by 分组名 having 查询条件;

····select语句优化····························[参考地址](https://blog.csdn.net/yyl7727/article/details/81483020)
1where 后的条件执行时是从后往前,因此能够筛选更多数据的条件排在后面。
2、将or换为in。 比如 select * from vehicle where syxz in ('R','O')性能优于select * from vehicle where syxz='R' or syxz='O'
3、尽量少嵌套子查询,这种查询会消耗大量的CPU资源;对于有比较多or运算的查询,建议分成多个查询,用union all联结起来;多表查询的查询语句中,选择最有效率的表名顺序。Oracle解析器对表解析从右到左,所以记录少的表放在右边。
4、尽量多用commit语句提交事务,可以及时释放资源、解锁、释放日志空间、减少管理花费;在频繁的、性能要求比较高的数据操作中,尽量避免远程访问,如数据库链等,访问频繁的表可以常驻内存:alter table...cache;

····DML数据操纵语句···········(insertupdatedelete)
插入语句:insert into 表名 value (表值);
更新语句:update 表名 set 字段名=修改值 where 查询条件;
删除语句:delete from 表名 where 查询条件;

····DDL定义语句······(createalterdrop、sequence)
创建用户:create user 用户名 identified by 密码 account unlock; 
授权给用户:grant connect,resource to admin;
[详细请看](https://blog.csdn.net/qq_33271984/article/details/83020212)

····DCL数据控制语句·········
系统权限:
	DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
	RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
	CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
数据对象权限:
	select, update, insert, alter, index, delete, all  //all包括所有权限	

终于整理完了,如果对大家有帮助记得点赞收藏噢!!!

你可能感兴趣的:(java)