JDBC

JDBC

JDB的概念

  • 概念
    • JDBC(Java DataBase Connectivity java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库 提供统一访问,它是由一组用Java语言编写的类和接口组成的。
  • 本质
    • 其实就是java官方提供的一套规范(接口)。用于帮助开发人员快速实现不同关系型数据库的连接!

JDBC HelloWorld

  1. 导包
  2. 注册驱动
  3. 建立连接
  4. 获取语句执行对象
  5. 获取ResultSet
  6. 解析结果
  7. 关闭资源

DriverManager

  1. 加载驱动

    1. 作用:告诉JDBC真正的JDBC规范实现类是谁
    //告诉JDBC真正的JDBC规范实现类是谁
    DriverManager.registerDriver(new Driver());
    
  2. 获取去连接

    1. ip (ping ip)
    2. 端口 (netstat -ant | grep 端口)
    3. 用户名和密码

Connetion(连接)

  1. 创建Statement对象
  2. 管理事务(ACID)
    • 原子性 A
    • 一致性 C
    • 隔离性 I
    • 持久性 D

Statement(语句)

  1. 封装SQL语句
  2. 执行SQL语句
    • DML:结果为int
    • DQL:ResultSet

ResultSet

  1. 存储结构

    List<Map<String, Object>>
    
    class ResultSet {
        List<Map<String, Object>> data;
        int p = 0;
        
        Map<String, Object> curData;
        
        
        public boolean next() {
            if (p > data.size()) return false;
            p++;
            curData = data.get(p);
            return true;
        }
        
        
        public get(String key) {
            return curData.get(key);
        }
        
    }
    
  2. 作用: 封装mysql 服务器响应的数据

SQL注入攻击

  • 什么是SQL注入攻击

    • 就是利用sql语句的漏洞来对系统进行攻击
  • SQL注入攻击的原理

    • 按照正常道理来说,我们在密码处输入的所有内容,都应该认为是密码的组成
    • 但是现在Statement对象在执行sql语句时,将密码的一部分内容当做查询条件来执行了
  • SQL注入攻击的解决

PreparedStatement 预编译执行者对象

  • 在执行sql语句之前,将sql语句进行提前编译。明确sql语句的格式后,就不会改变了。剩余的内容都会认为是参数!

  • SQL语句中的参数使用?作为占位符

  • 为?占位符赋值的方法:setXxx(参数1,参数2);

    • Xxx代表:数据类型
    • 参数1:?的位置编号(编号从1开始)
    • 参数2:?的实际参数
  • 执行SQL语句

    • 执行insert、update、delete语句:int executeUpdate();
    • 执行select语句:ResultSet executeQuery();

JDBC管理事务

  1. JDBC如何管理事务
    • 管理事务的功能类:Connection
      • 开启事务:setAutoCommit(boolean autoCommit); 参数为false,则开启事务。
      • 提交事务:commit();
      • 回滚事务:rollback();

数据库连接池

数据库连接池的概念

  1. 数据库连接的背景

    • 数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出
    • 对数据库连接的管理能显著影响到整个应用程序的性能指标,数据库连接池正是针对这个问题提出来的
  2. 数据库连接池

    • 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接, 而不是再重新建立一个。这项技术能明显提高对数据库操作的性能

开源数据库连接池的使用

  1. C3P0 数据库连接池的使用步骤。

    ① 导入 jar 包。

    ② 导入配置文件到 src 目录下。

    ③ 创建 C3P0 连接池对象。

    ④ 获取数据库连接进行使用。

  2. Druid 数据库连接池的使用步骤。

    ① 导入 jar 包。 ② 编写配置文件,放在 src 目录下。

    ③ 通过 Properties 集合加载配置文件。

    ④ 通过 Druid 连接池工厂类获取数据库连接池对象。

    ⑤ 获取数据库连接进行使用。

策略设计模式

  • 策略(策略接口)

    public interface Sing {
        void sing();
    }
    
    • 策略实现

      public class ThisSing implements Sing {
          @Override
          public void sing() {
              System.out.println("新的风暴已经出现!");
          }
      }
      
  • 执行者(谁执行策略)

    public class Singer {
        public void Sing(Sing sing){
            sing.sing();
        }
    }
    
  • 调用者

    public class TestSing {
        public static void main(String[] args) {
            Singer singer = new Singer();
            singer.Sing(new ThisSing());
    }
    
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值