首页 > 其他分享 >12_JDBC

12_JDBC

时间:2023-03-06 23:03:19浏览次数:28  
标签:12 数据库 sql stmt API SQL JDBC

一. JDBC简介

1.什么是JDBC?

  • JDBC就是使用java语言来操作关系型数据库的一套API
  • 官方sun公司定义的一套操作所有关系型数据库的规则,即接口;

2.JDBC的好处?

  • 可随时更换底层数据库,访问数据库的java代码基本不变

3.JDBC实现的步骤

  • 创建工程,导入驱动jar包

  • 注册驱动(可不写)

    • class.forName("com.mysql.jdbc.Driver")
  • 获取连接

    • Connection conn = DriverManager.getConnection(url,user,pwd);
  • 定义SQL语句

    • String sql = ”update 。。。“
  • 获取执行SQL对象

    • Statement stmt = conn.createStatement();
  • 执行SQL

    • int count = stmt.executeUpdate(sql);
    • ResultSet rs = stmt.executeQuery(sql);
  • 处理返回结果

    • if(count>0){

      ​ System.out.println("修改成功~");

      }else{

      ​ System.out.println("修改成功~");

      }

    • while(rs.next) {

      rs.getXxx(参数);

      }

  • 释放资源

    • rs.close();
    • stmt.close();
    • conn.close();

二.JDBC-API

1.API--DriverManager

  • 作用:
    • 注册驱动(类加载时,静态代码块自动注册,且可以不写)
    • 获取数据库的连接

2.API--Connection

  • Connection(数据库连接对象)作用:

    • 获取执行SQL对象

      • 普通执行SQL对象:Statement createStatement()

      • 预编译SQL的执行SQL对象:防止SQL注入

        PreparedStatement preparedStatement(sql)

      • 执行存储过程的对象

        CallableStatement prepareCall(sql)

    • 管理事务

      • 开启事务 setAutiCommit(boolean autoCommit)ture为自动提交事务 false为手动提交事务,即开启事务
      • 提交事务 commit()
      • 回滚事务 rollback()

3.API--Statement

  • 作用:执行SQL语句
  • int executeUpdate(sql):用于执行DML、DDL语句
  • ResultSet executeQuery(sql):用于执行DQL语句

4.API--ResultSet

  • ResultSet(结果集对象)作用:封装DQL查询语句的结果
  • boolean next() 判断当前行是否为有效行
  • getXxx() 获取数据

5.API--PreparedStatement

  • 作用:预编译SQL语句并执行,防止SQL注入,将敏感字符进行转义

  • 获取PreparedStatement对象

    • String sql = ”select * from user where username = ? and password = ?“
    • PreparedStatement pstmt = conn.preparedStatement(sql)

    设置参数值

    ​ pstmt.setXxx(参数1,参数2)

    执行sql

    ​ stmt.executeUpdate() / stmt.executeQuery()

  • 在url中开启预编译功能:useServerPerpStmts = true;

三.JDBC-数据库连接池

1.简介

  • 数据库连接池是个容器,负责分配,管理数据库连接 Connection
  • 它允许应用程序重复使用一个现有的数据库连接,而不是再重写建立一个
  • 好处:资源重用,提升系统响应速度,避免数据库连接遗漏

2.数据库连接池实现

  • 官方标准接口:DataSource,由第三方组织实现此接口

  • 常用的数据库连接池:Druid(德鲁伊),C3P0,DBCP

3.Driud使用

  • 导入jar包,driud-1.1.12.jar
  • 定义配置文件
    • image-20230303175256799
  • 加载配置文件
    • Properties prop = new Properties();
    • prop.load(new FileInputStream(”src/druid.“))
  • 获取数据库连接池对象
    • DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
  • 获取连接
    • Connection conn = dataSource.getConnection();

标签:12,数据库,sql,stmt,API,SQL,JDBC
From: https://www.cnblogs.com/cxk6/p/17185854.html

相关文章

  • 7 odoo12 全屏模块开发
    全屏功能开发:1定义web模板t-name=”WebFullScreen”,预置全屏和退出全屏的a标签,退出全屏默认隐藏<?xmlversion="1.0"encoding="UTF-8"?><templatexml:space="pre......
  • 如何使用JDBC将Cordova应用程序连接到MySQL数据库?
    不建议使用JDBC直接将您的Cordova应用程序连接到MySQL数据库,因为它会带来安全风险.移动设备通常受到安全漏洞的约束,并且从移动应用程序连接到数据库会增加暴露敏感信息的风......
  • Apinto V0.12 发布:新增流量镜像与 Mock 插件,路由特性更丰富!
    Hello~各位开发者朋友们好呀,Eolink旗下开源网关Apinto本周又更新啦!这次的更新我们给大家带来了2个好用的插件,且目前已经支持静态资源路由了!希望新的功能能让大家的......
  • P1273 有线电视网
      f[u][j]=max(f[y][k]+f[u][j-k]-w[i])#include<bits/stdc++.h>usingnamespacestd;constintN=3002,M=N*5,inf=0x7f7f3f;intn,m,sz[N];inta[N],n......
  • ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连接
    今天通过DatabaseControl日常查看Oracle数据库情况,结果报错了:ORA-12528:TNS:listener:allappropriateinstancesareblockingnewconnections然后百度,看......
  • JDBC(重点)
    1.数据库驱动驱动:声卡、显卡、数据库我们的程序会通过数据库驱动,和数据库打交道2.JDBCSUN公司为了简化开发人员的(对数据库的统一)操作,提供了一个(Java操作数据库的)规范,俗......
  • thinpphp6+php8.0.2链接PGSQL12
    1、提示   如果是pgsql12以下的执行CREATEORREPLACEFUNCTIONpgsql_type(a_typevarchar)RETURNSvarcharAS$BODY$DECLAREv_typevarchar;BEGINIF......
  • EBS R12.1.3 查询用户密码
    --EBSR12.1.3查询用户密码--用APPS账户创建数据库(ORACLE11G) selectfu.user_name,cs_knowledge_audit_pvt.decrypt(apps_pwd.apps_password,fu.encryp......
  • Windws sever 12安装向导
    1首先点击创建新的虚拟机2然后会出现这个页面,点下一步就可以 3选为安装程序光盘映像文件,选择下载,点击下一步4上网查找密钥5设置虚拟机名称6选定BIOS,点击下一......
  • P1220 关路灯 (有点不同的区间dp)
    P1220关路灯-洛谷|计算机科学教育新生态(luogu.com.cn)本题有个很重要的信息:大爷是可以随手关灯,所以对于区间[i~j],出于贪心,大爷最后要么在i位置,要么在j位置。......