MySQL,JDBC, 数据库连接池及XML

05 Dec 2020

数据库

MYSQL数据库

  1. 数据库(DataBase) 就是存储和管理数据的仓库
  2. 其本质是一个文件系统, 还是以文件的方式,将数据保存在电脑上

Mac上MYSQL的安装

How to Install MySQL on Mac & Configure MySQL in Terminal

MYSQL常用命令

数据库管理系统

SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

MySQL备份&还原

MySQL索引

在数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令MySQL的查询和
运行更加高效。

JDBC

使用JDBC的准备

  1. 前往MySQL官网下载对应版本的jar包
  2. 把jar包添加到项目的依赖Libraries
  3. 在正在使用Modules中添加新增的lib

开发步骤

SQL注入问题

假如使用一条SQL验证登陆用户名和密码是否存在

SELECT * FROM user WHERE username = 'tom' AND PASSWORD = '123';  

在java中会使用占位符来接收输入
接收的sql String大概长这样

String sql = String.format("SELECT * FROM user WHERE username='%s' AND PASSWORD='%s'", name, password);  

那么如果用户名随便输入一个,
password = “123' OR '1' = ‘1”;

那SQL语句大概就会变成这样

SELECT * FROM user WHERE username = 'tom' AND PASSWORD = '123' OR '1' = '1';  

时候JDBC语句查询,返回结果就是true的,这就是SQL注入问题

控制事务

DBUtils

使用JDBC我们发现冗余的代码太多了,为了简化开发 我们选择使用 DbUtils
Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程
序的开发,同时也不会影响程序的性能。

使用相关知识

QueryRunner

用来调用sql语句的类

ResultSetHandler

DbUtils

一个工具类,定义了关闭资源与事务处理相关方法.

数据库连接池

DBCP

DBCP也是一个开源的连接池,是Apache成员之一,在企业开发中也比较常见,tomcat内置的连接池。

C3P0

C3P0是一个开源的JDBC连接池,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、
Spring等。

Druid

Druid(德鲁伊)是阿里巴巴开发的号称为监控而生的数据库连接池,Druid是目前最好的数据库连接池。在功 能、性能、扩展性方面,都超过其他数据库连接池,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行 情况。

常见配置项

数据库批量处理

Statement

PreparedStatement

MySql元数据

SQL

JDBC

XML

XML的作用

XML语法

XML约束

可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束

XML解析