数据库完美总结(二)

      JDBC(Java DataBase Connectivity),Java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成。

JDBC优势:

  • Java语言访问数据库操作完全面向抽象接口编程
  • 开发数据库应用不用限定在特定数据库厂商的API
  • 程序的可移植性大大增强

      准备数据库驱动包,并添加到项目的依赖中:在项目中创建文件夹lib,并将依赖包mysql-connector-java-5.1.47.jar复制到lib中。再配置该jar包到本项目的依赖中:右键点击项目Open Module Settings,在Modules中,点击项目,配置Dependencies,点击+ JARS or Directories,将该lib文件夹配置进依赖中,表示该文件夹下的jar包都引入作为依赖。

JDBC访问数据库的基本步骤是什么?
1,加载驱动
2,创建数据库连接Connection
3,创建操作命令Statement
4,使用操作命令来执行SQL
5,处理结果集ResultSet
6,释放连接

// 加载JDBC驱动程序:
Class.forName("com.mysql.jdbc.Driver");


//DataSource类提供连接池的支持。
连接池在初始化时就创建一定数量的数据库连接,这些连接是可以重复使用的,
每次使用完数据库连接,调用connection.close()可以将Conncetion连接对象回收

DataSource ds = new MysqlDataSource();
((MysqlDataSource) ds).setUrl("jdbc:mysql://localhost:3306/test");
((MysqlDataSource) ds).setUser("root");
((MysqlDataSource) ds).setPassword("root");
Connection connection = ds.getConnection();

//建立SQL语句
String sql = " "

//创建操作命令
PreparedStatement preparedStatement = connection.createPreparedStatement();

//执行SQL语句
ResultSet resultSet= statement.executeQuery(sql);

//处理结果集
while (resultSet.next()) {
int id = resultSet.getInt("id");

//关闭连接
DButil.close(result,preparedStatement,connection);

开发中最常用的是PreparedStatement对象,与statement相比,其优点是:

1、性能:sql语句预编译 ,执行效率高于statement,数据库系统不会对相同的sql语句再次编译

2、安全:阻止常见sql注入【sql注入攻击就是从客户端输入一些非法的特殊字符,而使服务器端在构造sql语句的时候仍然能够正确构造,从而收集程序和服务器的信息和数据】


主要掌握两种执行SQL的方法:
executeQuery()        执行后返回单个结果集,通常用于select语句。
executeUpdate()      返回值是一个整数,指示受影响的行数,通常用于update、insert、delete语句。


数据库连接池的原理是什么?为什么要使用连接池?
1,数据库连接池就是为数据库连接建立一个“缓冲池”。即预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。可以通过设定连接池最大连接数来防止系统无尽的与数据库连接,我们可以通过连接池了解到数据库的连接数量、使用情况、及如何性能调优。创建连接使用的DataSource就提供连接池的支持。
2,数据库连接是一种非常费时的操作,使用连接池可以使多个操作共享一个连接,提高对数据库访问效率,同时便于对连接资源的管理。


JDBC的ResultSet是什么? 
ResultSet是一个结果集,调用了ResultSet的next()可以读取下一行,如果没有更多数据会返回false。可以用for循环来遍历数据集,可以使用resultSet.get方法从1开始的序号来获取列数据。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值