JDBC学习日志

JDBC概念:
JDBC是使用java语言操作关系型数据库的一套API
全称:Java数据库连接(Java DateBase Connectivity)

JDBC本质:
为了在使用同一套Java代码,操作不同的关系型数据库,JDBC诞生,作为一套标准接口,各类数据库通过实现JDBC接口,在java上操作数据库

各数据厂商实现该接口,提供数据库驱动jar包;使用JDBC真正执行代码的是j驱动ar的实现类

JDBC好处:
Java代码不需要针对数据库开发,底层数据库随时更改,访问数据库的Java代码基本不变

创建工程,导入驱动jar包 →注册驱动Class.forName(“com.mysql.jdbc.Driver”)→
获取连接Connection conn =DriverManager.getConnection(url,username,password);→
定义SQL语句String sql ="update…"→
获取执行SQL对象 Statement stmt = conn.createStatement();→
执行SQL stmt executeUpdate(sql);→返回处理结果→释放资源

JBDC API详解:

DriverManager(驱动管理类)作用:注册驱动,获取数据库连接

Connection(数据库连接对象)作用:获取执行sql的对象,管理事务

事务管理:

开启事务:setAutoCommit(boolean autoCommit) ture为自动提前事务,false为手动提交事务

提交事务:commit()

回滚事务:rollbac()

Java事务处理方式try catch,在try catch进行事务回滚

Statement作用:执行sql语句

int executeUpdate(sql):执行DML,DDL语句 返回值:DML语句影响的行数,DDL语句执行吼,执行成果也可能返回 0

ResultSet executeQuery(sql):执行DQL语句 返回值:ResultSet结果集对象

ResultSet(结果集对象)作用:封装了DQL查询语句的结果

boolean next():判断当前行是否有数据

xxx getxxx(参数):获取数据

实现时需要通过while(boolean next()){

    xxx getxxx

}
PreparedStatement作用:
预编译SQL语句并执行:预防SQL注入问题。
SQL注入:SQL注入是通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法。
PreparedStatement作用:
预编译SQL并执行SQL语句

获取PreparedStatement对象
String sql = “select * from user where username = ? and password= ?”;
PreparedStatement pstmt = conn.prepareStatement(sq|);
设置参数值
PreparedStatement对象: setXxx(参数1, 参数2): 给?赋值
Xxx:数据类型;如setInt (参数1,参数2)
执行SQL executeUpdate(); / executeQuery(); :不需要再传递sql

数据库连接池简介
数据库连接池是个容器,负责分配、管理数据库连接(Connection)
它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个; .
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引|起的数据库连接遗漏
好处:资源重用,提升系统响应速度,避免数据库连接遗漏

数据库连接池实现
标准接口: DataSource
官方(SUN)提供的数据库连接池标准接口,由第三方组织实现此接口。
功能:获取连接
Connection getConnection()
常见的数据库连接池:
DBCP C3P0 Druid
Druid(德鲁伊):
Druid连接池是阿里巴巴开源的数据库连接池项目
功能强大,性能优秀,是Java语言最好的数据库连接池之一

Driud使用步骤
1 导入jar包druid-1.1.12.jar
2 定义配置文件
3加载配置文件
4获取数据库连接池对象
5获取连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值