JDBC:java语言与数据库的交互

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的
本质是sun公司提供的一套接口, 各个数据库厂商来实现。实现的东西我们称为"驱动jar包", 屏蔽java连接不同数据库的差异。

JDBC的使用步骤:

  • 1,导入jar包
  • 2.注册驱动:DriverManager
  • 3.获取连接(建桥):DriverManager获取到Connection
  • 4.通过桥, 得到执行者对象:通过Connection获取到Statement
  • 5.告Statement要执行的sql语句, 执行sql
  • 6.得到结果,处理结果:通过Statement获取ResultSet
  • 7.释放资源

各个JDBC的API:

  • DriverManager注册驱动
  • 提供了静态方法registerDriver(Driver driver) (不推荐)因为会注册两次, 造成内存的浪费
  • Class.forName(“com.mysql.jdbc.Driver”)(推荐)因为Driver加载到内存, 静态代码块就会执行, 而在静态代码块已经注册过驱动了
  • 获取连接:静态方法: getConnection(url,username,password);
url:"jdbc:mysql://ip地址:端口/数据库的名字 "
省略写法:如果是连接本机的3306的数据库-->"jdbc:mysql:///数据库的名字 "
username:连接数据库的用户名 如: root
password:连接数据库的密码 
  • Connection:连接对象的作用

  • 获取执行者对象
    Statement createStatement();返回执行者对象,这个对象有注入攻击的风险
    PreparedStatement preparedStatement(String sql);返回执行者预编译对象,参数是一条执行的SQL语句,sql语句如果有参数的话, 请用?号替代

  • 事务管理
    需要在所有操作之前开启事务:setAutoCommit(boolean is);
    参数是true则关闭事务管理
    参数是false则开启事务管理,开启事务管理需要调用方法提交事务,否则对数据库的数据没有影响,且只针对本连接有效,不会影响其他链接。
    需要在所有操作之后提交事务:调用commit();
    在catch语句中有异常就回滚事务:调用rollback();
    注意:事务操作需要保证是同一条连接

  • 释放资源 close();

  • 注意:频繁的创建和销毁连接对象比较耗资源应当采用连接池管理连接对象,项目运行速度和提高性能。

  • PreparedStatement预编译执行者对象

  • int excuteUpdate();执行增删改操作,返回影响行数

  • ResultSet excuteQuery();执行查询,返回结果集对象

  • setXxx(Xxx xx):给?号占位符赋值·, 而?号的编号从1开始,建议记住一个方法setObject(?的编号, 值)

  • ResultSet:结果集对象查询语句才有

  • boolean next();移动到下一行, 并且判断是否有数据

  • Xxx getXxx(String 列名);获取数据

  • close(); 释放资源

链接池

数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。这项技术能明显提高对数据库操作的性能。
在这里插入图片描述

作用: 解决频繁创建连接和销毁;连接的过程。
注意: 在使用连接池, 不仅要导入连接池的包, 驱动jar包也要引用 ,因为获取连接只有驱动j

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值