【MySQL的所有知识总结】(待整理)

1.  数据库(JDBC、DBMS)

 1. JDBC:JNDI--DataSource---连接池(c3p0\dbcp\Proxool)----DriverManager---connection

oracle的数据库驱动:oracle.jdbc.driver.OracleDrive

mysql 的数据库驱动:com.mysql.jdbc.Driver

驱动的加载方法有:

     a、调用方法class.forName

     b、通过添加系统的jdbc.drive属性

     c、通过registerDriver方法注册

----------------有待整理-----------------

JDBC-ODBC方式实现:

建立JDBC-ODBC桥接器,(使用java.lang中的class类,使用静态方法forName加载驱动)

创建ODBC数据源,

建立与ODBC的连接(可能异常)

----------------有待整理-----------------


2. 数据库连接方式有两种:

  1.建立JDBC--ODBC桥接器(微软提供)依赖平台,

  2.直连纯Java数据库驱动(数据库厂家提供例如 mysql的mysql-connector-java.jar)


3.数据库实现查询功能流程:

    1. 加载JDBC驱动

    2.建立并获取数据库连接----->通过连接池建立多个连接备用,使用什么连接池用户自定

    3. 创建JDBC statements对象--

    4.设置SQL语句的传入参数->用if,else判断传入的参数#变量名#占位符 $变量名$非占位符

    5.执行SQL语句并获得查询结果

    6.对结果进行转换处理并返回

    7.释放相关资源

 

经过优化之后:

(1) 使用数据库连接池对连接进行管理

(2) SQL语句统一存放到配置文件中

(3) SQL语句变量和传入参数的映射以及动态SQL

(4) 动态SQL语句处理

(5) 对数据库操作结果的映射和结果缓存

(6) SQL语句的重复

 

4. PreparedStatement和Statement的区别:

1.创建时:

    1) Statement statement = conn.creatStatement();

    2) PrepareStatement preStatement = conn.PrepareStatement(sql);

2.执行时:

    1) ResultSet  rSet = statement.executeQuery(sql);

    2) ResultSet  pSet=preStatement.executeQuery();

PreStatement 有预编译过程,已经绑定sql,之后无论执行什么遍,都不会再去编译。

而statement不同,如果执行多遍,就需要编译多遍,所以prestatement效率比较高。

3)安全性:prepareStatement是预编译的,所以可以有效的防止SQL注入等问题。

4)可读和维护:后期维护prepareStatement也比较好读。

 

5. DBMS:数据库管理系统,事务具有持久性、一致性、原子性、隔离性。

持久性实现恢复管理子系统,一致性实现并发控制子系统,

原子性实现完整子系统,隔离性实现安全控制管理子系统。

一般关系数据模型和对象数据模型之间有以下对应关系:表对应类、记录对应对象、字段对应属性,ORMapping只是规定了结构和集的映射。


6. 数据库的优化:

1.索引:




猜你喜欢

转载自blog.csdn.net/ca1m0921/article/details/80945154