关闭页面特效

JDBC

1|0JDBC


Java Data Base Connectivity

java语言操作数据库

JDBC的本质,就是官方定义的一套操作所有关系型数据库的规则,就是接口,各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们使用这套接口,就可以执行代码驱动的实现类

1|1包讲解


com.test.domain-实体类-getset

.dao-核心代码 .util-连接数据库

1|2使用步骤


  1. 导入驱动jar包
    1. 复制mysql的jar包到项目的libs文件夹下
    2. 右键add as Library
  2. 注册驱动
  3. 获取数据库连接对象 Connection
  4. 定义sql语句
  5. 获取执行sql语句的对象 Statement
  6. 执行sql,接受返回结果
  7. 释放资源
Class.forName("com.mysql.jdbc.Driver"); Statement statement = DriverManager.getConnection("jdbc:mysql://localhost:3306/java2303","root","root").createStatement(); String sql = "select * from student"; ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()){ System.out.println(resultSet.getString("stuId")+" " +resultSet.getString(2)+" " +resultSet.getString(3)+" " + resultSet.getString(4)+" " ); } statement.close(); resultSet.close();

1|3DriverManager对象


驱动管理对象

  • 注册驱动:告诉java程序该使用哪个数据区驱动jar
  • 获取数据库链接
    • static Connection getConnection(String url,String user,String password)
      • url:指定链接的路径
        • jdbc:mysql://ip地址(域名):端口号/数据库名
      • user:数据库y用户名
      • password:数据库密码

1|4Connection对象


数据库连接对象

  • 获取执行sql的对象
    • Statement createStatement();
    • prepareStatement prepareStatement(String sql)
  • 管理事务
    • 开启事务setAutoCommit(boolean b):调用该方法设置参数为false,即可开启事务
    • 提交事务commit()
    • 回滚事务rollback()

1|5Statement对象


执行sql语句

int executeUpdate(String sql):执行DML语句,DDL语句,返回值为影响的行数,可以通过返回值判断语句是否执行成功 ResultSet executeQuery(String sql):执行DQL语句

1|6ResultSet对象


结果集对象,封装了查询的结果

boolean next():游标向下移动一行,判断当前行是否是最后一行(是否有数据),如果是,则返回false,如果不是返回true getXXX(参数):通过数据库表中的游标或者列名来获取数据

2|0Druid连接池


连接池中保存了一些数据库连接,这些连接是可以重复使用的

原理

  • 启动连接池,连接池就会初始化一些连接
  • 当用户需要使用数据库连接,直接从连接池中取出
  • 当用户使用完连接,会将连接重新放回连接池中

好处

连接池中会保存一些连接,这些连接可以重复使用,降低数据资源的消耗

常用的连接池实现组件

  • 阿里巴巴-德鲁伊Druid连接池:Druid是阿里巴巴开源平台上的一个项目
  • C3P0是一个开源的连接池,目前使用它的开源项目有Hibernate,Spring等。
  • DBCP(DataBase Connection Pool)数据库连接池,是Tomcat使用的连接池组件。

Druid常用的配置参数

方法名 说明
initialSize 刚启动连接池时,连接池中包含连接的数量
maxActive 连接池中最多可以放多少个连接
maxWait 获取连接时最大等待时间,单位毫秒

druid.properties文件内容

driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/day17 username=root password=root initialSize=5 maxActive=10 maxWait=3000
package com.qiankun.util; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class DruidUtils { private static DataSource dataSource; static { try { Properties pro = new Properties(); pro.load(DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties")); dataSource = DruidDataSourceFactory.createDataSource(pro); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (Exception e) { throw new RuntimeException(e); } } //获取连接 public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } //释放资源 public static void close(Statement statement, Connection connection){ if (statement!=null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection!=null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(Statement statement, Connection connection, ResultSet resultSet){ close(statement, connection); if (resultSet!=null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static DataSource getDataSource(){ return dataSource; } }

使用步骤

  1. 导入druid-1.0.0.jar的jar包
  2. 复制druid.properties文件到src下,并设置对应参数
  3. 加载properties文件的内容到Properties对象中
  4. 创建Druid连接池,使用配置文件中的参数
  5. 从Druid连接池中取出连接
  6. 执行SQL语句
  7. 关闭资源

__EOF__

作  者YXH
出  处https://www.cnblogs.com/YxinHaaa/p/17366565.html
关于博主:编程路上的小学生,热爱技术,喜欢专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

posted @   YxinHaaa  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
0
0
关注
跳至底部
点击右上角即可分享
微信分享提示