Java JDBC

简介

  • JDBC(Java DataBase Connectivity,Java数据库连接)
  • JDBC 可让Java通过程序操作关系型数据库
  • JDBC 基于驱动程序实现与数据库的连接与操作

优点:

  • 统一的API,提供一致的开发过程
  • 易于学习,容易上手,代码结构稳定
  • 功能强大,执行效率高,可处理海量数据

使用

public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/learn?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";String user = "root";String password = "123456";Connection connection = null;Statement statement = null;ResultSet resultSet = null;PreparedStatement preparedStatement = null;try {// 1.加载驱动Class.forName("com.mysql.cj.jdbc.Driver");// 2.获取连接connection = DriverManager.getConnection(url, user, password);System.out.println(connection);// 3.创建Statement, 或PreparedStatement对象statement = connection.createStatement();String sql1 = "select * from user where id = '' or 1=1 or 1=''";String sql2 = "select * from user where id = ?";preparedStatement = connection.prepareStatement(sql2);preparedStatement.setInt(1, 5);// 4.遍历查询结果resultSet = statement.executeQuery(sql1);//resultSet = preparedStatement.executeQuery();while (resultSet.next()) {System.out.println(resultSet.getInt(1)+ ", " + resultSet.getString("name")+ ", " + resultSet.getString(3)+ ", " + resultSet.getDate(4));}} catch (Exception e) {e.printStackTrace();}finally {// 5.关闭所有连接try {if(resultSet != null) {resultSet.close();}if(statement != null) {statement.close();}if(connection != null) {connection.close();}} catch (SQLException throwables) {throwables.printStackTrace();}}
}

SQL注入

  • SQL注入攻击是指利用SQL漏洞越权获取数据的黑客行为
  • SQL注入攻击根源是未对原始SQL中的敏感字符做特殊处理
  • 解决方法:放弃Statement改用PreparedStatement处理SQL

PreparedStatement :

  • PreparedStatement 预编译Statement是Statemenit的子接口
  • PreparedStatement对SQL进行参数化,预防SQL注入攻击
  • PreparedStatement比比Statement执行效率更高

例子:往sql语句的where条件中插入:' or 1=1 or 1='

拓展:

  1. 工具类:DbUtils
  2. 连接池:Druid、C3P0

Java 原始的JDBC方式连接MySQL数据库【钢镚核恒】相关推荐

  1. S+MySQL——3.使用ODBC方式连接MySQL数据库

    文章目录 引言 1. 建立一个MFC对话框项目 2. 控件布局 2.1 添加控件 2.2 引入List Control控件类 2.3 定义控件变量 2.4 添加按钮点击响应函数 2.4 初始化List ...

  2. 使用Java语言开发工具idea连接MySQL数据库的基本步骤及操作实例

    Java连接MySQL数据库并进行一些基本操作以及导入jar包的两种方式 其实,任何开发工具连接数据库无非就是三步:1.安装驱动.2.加载驱动,创建连接对象.3.创建对象操作游标.4.游标调用函数完成 ...

  3. 数据库编程连接mysql_使用JDBC编程-连接MySQL数据库

    作者:李老师,吕老师              2019-09-23 准备工作: 1.首先安装MySQL5.5.30 64位:链接:https://pan.baidu.com/s/1H99PH-jRq ...

  4. c 连接mysql怎么增删改_C++ API方式连接mysql数据库实现增删改查

    这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...

  5. android jdbc 连接mysql数据库,android怎么用JDBC方法连接mysql数据库

    2016-11-21 回答 用android程序去直连mysql数据库,觉得这样做不好,出于安全等方面考虑.数据库地址,用户名密码,查询sql什么的都存在程序里,很容易被反编译等方法看到. 建议把表示 ...

  6. 2.PHP利用PDO连接方式连接mysql数据库

    代码如下 <?php$serverName = "这里填IP地址";$dbName = "这里填数据库名";$userName = "这里填用户 ...

  7. [转载] 1.1Java使用JDBC原生方式连接MySql数据库

    参考链接: Java数据库连接JDBC驱动程序 前言:今天有朋友问我原生的java连接数据库,因为框架的使用,如果基础不牢固的人,是很容易遗忘原生的连接方式.今天正好趁此做一下回顾: 这里只考虑原生方 ...

  8. 用Java调用jdbc接口连接MySQL数据库——实现对数据库的增删改查

    使用工具 IDEA2018.2 MySQL5.6 JDK1.8 mysql-connector-java-5.0.8-bin.jar 源码下载地址 码云链接:https://gitee.com/vvc ...

  9. 【JDBC】连接MySQL数据库实现增删改查

    文章目录 一.JDBC编写步骤 二.数据库连接--Connection 2.1 连接要素 2.1.1 Driver接口实现类 2.1.2 URL 2.1.3 用户名和密码 2.2 建立连接 2.2.1 ...

最新文章

  1. BZOJ1391: [Ceoi2008]order
  2. UI自动化测试中的页面定位问题,年薪50W软件测试工程师为你解答
  3. FIFOQueue '_4_batch_processing/batch_join/fifo_queue' is closed and has insu
  4. C语言用DFS实现找到图的所有路径(邻接矩阵实现)
  5. 第五章 有限脉冲响应滤波器(ba,我终于懂FIR滤波器了)
  6. 币未来趋势分析_分析:中国便利店零售市场现状以及未来发展趋势
  7. mysql pool返回值_Mysql成神之路-InnoDB 的 Buffer Pool
  8. 主体ubuntu16.04,宿体virtualbox下的windows7的共享文件夹设置
  9. excel单元格斜线_怎么在excel中画斜线?怎么在excel表格中画斜线?
  10. 编程范式 —— 函数式编程入门
  11. 李宏毅机器学习笔记——回归
  12. C#获得汉字对应区位码
  13. mongodb 备份 导入导出
  14. 亨嘉之会话数据行业未来 万字长文解码2021数据技术嘉年华
  15. mysql 库存超卖_高并发下防止库存超卖的解决方案
  16. python证件照_python实现证件照换底功能
  17. iPhone13ProMax和华为Mate50Pro区别 哪个好
  18. GC.SuppressFinalize()的正确用法
  19. word to pdf
  20. 【小贴士】合肥工业大学本科毕业答辩tips

热门文章

  1. 1575 篮球粉丝JZL
  2. 【2014-06-07】-珠海长隆海底世界
  3. Matlab中Cell(单元数据)的用法
  4. 寓言故事--授人以鱼不如授人以渔
  5. 《层层恐惧2》中文免安装版下载 13.5G
  6. php 合并图片_文字,php合并图片与文字添加到图片里的类,能够设置文字的位置...
  7. excel里面空白的单元格如何用0去填充
  8. Android UI 设计规范,androidsdk开发文档
  9. Django实现用户注册登录
  10. 通过python获取finebi中的仪表板的token