Java基础_JDBC

概述:

Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,由一组用Java语言编写的接口和类组成;

链接: https://blog.csdn.net/qq_41855420/article/details/102076172

核心类:
1、java.sql.DriverManager:管理JDBC程序;
2、java.sql.Connection:java程序和数据库之间建立的连接,相当于一个管道;
3、java.sql.Statement:用于执行SQL语句,并返回结果;
4、java.sql.ResultSet:存储数据库查询结果;

开发步骤:
1、注册驱动;
2、获取连接;
3、获取语句执行平台;
4、执行sql语句;
5、处理结果;
6、释放资源;

代码路径:E:\IDEA_Study\Scattered_Study\Study\src\JDBC\JdbcDemo1.java

链接: https://blog.csdn.net/dingxingmei/article/details/39270451

DML和DDL:

DML: 对数据库中数据进行一些简单的操作,如insert、update、delete,select;可以手动控制事务的开启、提交、回滚;
DDL: 对数据库中对象进行管理,如create、alter、drop;隐性提交,不能回滚;

Statement、PreparedStatement和CallableStatement:

Statement: 接口提供了执行语句和获取结果的方法;
PreparedStatement: 接口添加了处理输入参数的方法(预编译);
CallableStatement: 接口添加了调用存储过程和函数以及处理输入参数的方法;

执行:

executeQuery: 用于执行select语句,返回值为ResultSet;
executeUpdate: 用于执行insert、delete、update以及sql的DDL语句;
execute: 可以执行所有的sql,可能返回结果集也可能返回受影响的行数;

批处理:

一组sql语句作为一个单元执行发送到数据库,降低了应用程序和数据库之间的网络调用,更加高效;

addBatch(): 将多条预编译的sql语句添加到PrepaerdStatement对象的sql语句列表中;executeBatch(): 将对象语句列表中的所有sql语句发送到数据库中进行处理;
clearBatch(): 清空当前sql语句列表;

代码路径:E:\IDEA_Study\Scattered_Study\Study\src\JDBC\JdbcDemo2.java

自定义连接池:

采用连接池技术来共享connection,类似于线程池;
1,创建连接池实现,并实现接口java.sql.DataSource ;
2,提供一个集合来存放连接(由于移除和添加操作较多,建议使用链表结构);
3,为连接池初始化连接 ;
4,使用完当前连接后,将连接再次添加到连接池中;

DBCP连接池:

需要导入commons-dbcp.jar和commons-pool.jar;没有自动回收空闲连接的功能;提供最大连接数当连接数超过最大连接数后,所有连接被断开;可以采用获取数据源的方式进行获取连接,进行管理;实现类:BasicDataSource;

C3P0连接池:

需要导入C3P0.jar和mchange-common-java.jar;有自动回收空闲连接的功能;提供最大空闲时间,当连接超过最大空闲时间,当前连接被断开;实现类:ComboPooledDataSource;

DBUtils工具类:

commons-dbutils是Apache提供的一个开源JDBC工具类,对JDBC进行了封装,简化JDBC操作;
DBUtils定义了关闭资源和事务处理的方法,里面的方法都是静态的;

作用:
1,对于数据库读操作,可以将结果转换成List、Array、Set等集合,方便操作;
2,对于数据库写操作,只需要写sql语句即可;
3,可以使用数据源、JNDI、数据库连接池等技术优化性能;

QueryRunner:

query(): 用于执行select;
update(): 用于执行insert、update、delete;
batch(): 用于批处理;

索引创建及作用:

唯一索引: create unique index index_name on table_name(column_name)

链接: https://www.cnblogs.com/barrywxx/p/4351901.html

ORM框架:

实现了java对象和关系数据库的记录的映射关系;

JDBC和MyBatis的区别:

JDBC需要频繁的创建数据库连接、释放数据库连接,从而造成系统性能影响,可采用数据库连接池解决将sql语句写在代码中,造成代码难以维护向sql语句传参麻烦,因为sql语句中where条件语句不确定性,需要占位符和参数一一对应对结果集解析麻烦,sql变化可能导致解析代码变化
MyBaits直接在配置文件中配置数据库连接池,使用连接池管理数据库连接,实现代码与配置的解耦将sql配置在xxxxmapper.xml中,实现与代码分离自动将java对象映射到sql语句,不存在该问题自动将sql执行结果映射到java对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值