JDBC概述  java  date base connectivity

  JDBC是一种用于执行SQL语句的  java API   作者 sun公司

  内容主要集成在 java.sql和 javax.sql中

   oracle.jdbc.OracleDriver  是 oracle.jdbc.driver.OracleDriver 的直接子类

  

JDBC中的 事务管理 Transaction

    1.事务 可以设定驱动管理经理的自动提交、回滚状态 变成手动提交,回滚

 con.setautoCommit(false);

事务的出现主要是为了解决多个 DML操作为一个事务的情况,比如 支付宝的转账

这个时候不能设置事务的自动提交,需要设置手动提交和回归

JDBC\反射

事务是由几个任务组成的一个最小的工作单元,无论成功或者失败都要作为一个整体,来处理,要不全成功,要不全失败

  事务具有,atomicity  原子性,事务是最小的不可分割的单元。

   Consistency 一致性:状态一致,都成功,或者都失败

   ISOlation 隔离性:在隔离的状态进行执行事务?

   Durability 持久性:事务完成后,对系统的影响是永久的

JDBC 技术主要用于处理什么问题,有什么好处?

1)jdbc是一种用于执行SQL语句的java API,为多种关系数据库提供统一的访问

2) JDBC 程序员只需要用 JDBCAPI写一个程序就可以访问所有数据库

3) 将java和JDBC结合起来,使程序员不必为了不同的平台编写不同的程序,体现了java 一次编译到此运行的优势

4) 简单的说JDBC只做三件事,建立连接,发送处理数据库语句,对结果进行处理

JDBC中的主要操作步骤:

JDBC\反射

JDBC中statement,和PreparedStatement 优缺点

后者是 前者的直接子类

1.安全性高,(不是基于字符串拼接的形式,避免了SQL注入的风险)

2.可读性、可复用性提高,(书写并不繁琐,可读性高)

3.速度快 (使用同一条SQL语句添加多条数据速度快,因为跳过了预编译)

JDBC中  execute, executeQuery, executeUpdate 的区别

  1.返回值类型不同,execute返回的是boolean类型

         2.executeQuery返回的是 ResultSet 结果级

         3.executeUpdate 返回的是 int类型

         2.处理的内容一般不同

         Update,一般用来进行DDL,操作,但是在进行,不修改当前数据的情况下,比如删除表,创建表,返回值会是0

         QUERY一般用来做DQL操作,查询的操作,返回的结果是一个RESULTSET

         Execute,这个方法,是当我们不知道 所要进行从操作的 SQL语句的类型的时候使用的,当执行的结果是一个resultset 的时候返回true,不是则返回false

数据库中的 大对象, large Object

1.     large Object 是一种数据库的数据类型,用来存储大数据量的数据,比如音频和图像

2.     Oracle中2种方式,一种是存储在数据库里,有blob,clob,nclob三种

还有一种,存处在数据库外,也就是不能 rollback,commit等,

CREATE TABLE waterfalls (

       falls_name VARCHAR2(80),--name

       falls_photo BLOB,--照片

       falls_directions CLOB,--文字

       falls_description NCLOB,--文字

       falls_web_page BFILE);--指向外部的html页面

有哪些不同的JDBC驱动

  1) JDBC- ODBC 桥驱动

         2) JDBC- Native API  本地api驱动直接把jdbc调用转变为数据库的标准调用再去访问数据库.这种方法需要本地 数据库驱动代码. 本地api驱动|厂商DB代码

         3) JDBC – NET驱动,也叫网络协议驱动 网络协议驱动--中间件服务器---数据库Server

         4) 100%纯JAVA驱动,是各大厂商给的通过socket进行通信的,最高性能的数据驱动,直接把jdbc调用转换为符合相关数据库系统规范的请求.

SQL注入:

JDBC\反射

JDBC中的批处理:

1.statement . addBatch(sq1)

   statement . addBatch(sq2)

   statement . executeBatch(),返回一个int [] 数组,每个参数代表影响的行数

   statement . clearBatch(). 清楚批处理命令

2.PreparedStatement 中,只能用在 SQL语句相同,但是参数不同的,执行效率高

JAVA中 entity实体类中,

1.只实现了 set/get 方法,和构造方法,就可以叫做 JAVABEAN

2.一般对应Oracle 的,需要实现  serializable  可序列化的接口

JAVA中实际项目的建设步骤

1.创建项目

2.创建项目接口包(接口包是主包,其他包名字,依附于接口包)

3.创建项目的实体包(对象包),对象类一般都需要实现 serializable接口

4.创建接口实现包(放置实现各种接口的类)

5.创建测试包

6.创建工具包

JDBC\反射

FATAL:指出现了非常严重的错误事件,这些错误可能会导致应用程序异常中止

ERROR:指虽有错误,但仍允许应用程序继续运行

WARN:指运行环境潜藏着危害

INFO:指报告信息,这些信息在粗粒度级别上突出显示应用程序的进程

DEBUG:指细粒度信息事件,细粒度信息事件对于应用程序的调试是最有用的

关于log4的应用

1.加载 log4j 的jar包

2.通过jar包生成.jar文件

3.编写,或者copy 配置文件

4.在勒种通过, Logger log = log.getLogger(类的全路径名);获得log对象

JDBC通过反射封装DQL方法

JDBC\反射

MySQL 和 Oracle的不同

基本数据类型不同:

MySql:  

数值型:  smallinit  :2 个字节, int  4个字节(integer) bigint:8个字节

  float: 4个字节,double 8个字节 //    age float(10,2)

字符串类型:

  char : 固定长度字符串   sex  char(2); 速度快

  varchar:可变长度字符串  name varchar(20); 灵活

  text : 非二进制的大对象(字符对象)

  blob: 二进制的大对象(视频,音频,图像)

日期/事件类型:

  date :  yyyy-mm-dd

  datetime:  yyyy-mm-dd hh:mm:ss

  datestamp:yyyy-mm-dd hh:mm:ss

  time: hh:mm:ss

  year : yyyy

MySQL 是没有手动提交事务的,全部是自动提交

LIMT ,  第一个下标是开始的位置,从(0)开始,第二个参数:查询的个数

  规律: page    n   (n-1)*5,5

    select *  from area  LIMIT  3,5;

什么是反射?

1.反射就是java中通过大CLASS 对象来调用类里面的方法

通过反射可以调用,私有的方法和属性,大部分的框架都使用了反射

反射允许在编写与执行时,使用程序代码能够接入装载到JVM中的类的内容部信息,而不是

源代码中选定的类的协作代码。其他语言没有此特性

反射技术的主类有哪些,其作用分别是什么?

JDK中反射的类都在 java.lang.reflect 包中

1.Class 类: 代表一个类

2.Field 类: 代表类的成员变量(属性)

3.Method 类: 代表类的成员方法

4.Constructor类: 代表类的构造方法

5.Array 类: 提供了动态创建数组,以及访问数组的元素的静态方法

JDBC\反射

JDBC\反射

JDBC\反射

JDBC\反射

相关文章:

  • 2022-12-23
  • 2021-04-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-06
  • 2021-09-20
猜你喜欢
  • 2022-02-08
  • 2022-01-25
  • 2022-12-23
  • 2021-04-23
  • 2021-11-01
  • 2021-08-26
  • 2022-02-28
相关资源
相似解决方案