- DriverManager :
- 注册驱动
- Class.forName("com.mysql.jdbc.Driver");
- 获取数据库连接
- url : 连接路径
- 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2…
- 示例:jdbc:mysql://127.0.0.1:3306/db1
- ==细节:==
- 如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写为:jdbc:mysql:///数据库名称?参数键值对配置 useSSL=false 参数,禁用安全连接方式,解决警告提示
- user :用户名
- poassword :密码
- url : 连接路径
- 注册驱动
- Connection
- 1.获取执行 SQL 的对象
- 普通执行SQL对象
- Statement createStatement()
- 预编译SQL的执行SQL对象:防止SQL注入
- PreparedStatement prepareStatement(sql)
- 执行存储过程的对象
- CallableStatement prepareCall(sql)
- 普通执行SQL对象
- 管理事务
- MySQL事务管理的操作:
- 开启事务 : BEGIN; 或者 START TRANSACTION;
- 提交事务 : COMMIT;
- 回滚事务 : ROLLBACK;
- MySQL默认是自动提交事务
- JDBC事务管理的方法
- 开启事务:conn.setAutoCommit();
- 参与autoCommit 表示是否自动提交事务,true表示自动提交事务,false表示手动提交事务。而开启事务需要将该参数设为为false。
- 提交事务 :commit();
- 回滚事务 :rollback();
- 开启事务:conn.setAutoCommit();
- MySQL事务管理的操作:
- 1.获取执行 SQL 的对象
- Statement:作用就是用来执行SQL语句。
- 执行DDL、DML语句
- int executeUpdate(sql)
- 返回值:(1)DML语句影响的行数(2)DDL语句执行后,执行成功也可能返回0
- 执行DQL语句
- ResultSet executeQuery(sql)
- 返回值:ResultSet结果集对象
- 执行DDL、DML语句
- ResultSet:封装了SQL查询语句的结果
- ResultSet(结果集对象)作用:
- 1、封装了SQL查询语句的结果
- ResultSet executeQuery(sql):执行DQL 语句,返回ResultSet 对象
- 获取查询结果
- boolean next()
- 将光标从当前位置向前移动一行判断当前行是否为有效行
- 方法返回值说明:
- true : 有效航,当前行有数据
- false : 无效行,当前行没有数据
- xxx getXxx(参数):获取数据数)
- xxx : 数据类型;如: int getInt(参数) ;String getString(参
- 参数
- int类型的参数:列的编号,从1开始
- String类型的参数: 列的名称
- 1、封装了SQL查询语句的结果
- ResultSet(结果集对象)作用:
- PreparedStatement
- 预编译SQL语句并执行:预防SQL注入问题
- win+r powershell
- dir 跳转盘
- select * from tb_user where username = 'zhangsanjdhsjk' and password = '' or '1'='1'
- 先false and false --->false or true ---->true
- 数据库连接池
- 数据库连接池简介
- 数据库连接池是个容器,负责分配、管理数据库连接(Connection)
- 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;
- 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏
- 好处
- 资源重用
- 提升系统响应速度
- 避免数据库连接遗漏
- 连接池是在一开始就创建好了一些连接(Connection)对象存储起来。用户需要连接数据库时,不需要自己创建连接,而只需要从连接池中获取一个连接进行使用,使用完毕后再将连接对象归还给连接池;这样就可以起到资源重用,也节省了频繁创建连接销毁连接所花费的时间,从而提升了系统响应的速度。
- 数据库连接池实现
- 标准接口:DataSource
- 官方(SUN) 提供的数据库连接池标准接口,由第三方组织实现此接口。
- 该接口提供了获取连接的功能:Connection getConnection()
- 那么以后就不需要通过 DriverManager 对象获取 Connection对象,而是通过连接池(DataSource)获取 Connection 对象。
- 常见的数据库连接池
- DBCP
- C3P0
- Druid 我们现在使用更多的是Druid,它的性能比其他两个会好一些。
- Druid(德鲁伊)
- Druid连接池是阿里巴巴开源的数据库连接池项目
- 功能强大,性能优秀,是Java语言最好的数据库连接池之一
- Driud使用
- 导入jar包 druid-1.1.12.jar
- 定义配置文件
- 加载配置文件
- 获取数据库连接池对象
- 获取连接
- 数据库连接池简介