备注:try catch快捷键:选中代码块,然后Ctrl+Alt+T   //idea

所需文件夹

查询:statement.executeQuery(sql)  返回结果是数据集

package com;import java.sql.*;public class Demo1 {//备注:try catch快捷键:选中代码块,然后Ctrl+Alt+Tpublic static void main(String[] args){Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {//1.加载驱动Class.forName("com.mysql.cj.jdbc.Driver");//mysql8.0以后版本//2.获得链接String username = "root";String passWord = "123456";String url = "jdbc:mysql://localhost:3306/mysql2?serverTimezone=UTC";connection = DriverManager.getConnection(url, username, passWord);//3.定义sql,创建状态通道(进行sql语句的发送)statement = connection.createStatement();resultSet = statement.executeQuery("select * from emp1");//executeQuery(sql) 执行查询//4.取出结果集信息while(resultSet.next()){//判断是否有下一条数据//取出数据:resultSet.getXXX(“列名”);  xxx表示数据类型System.out.println("姓名:"+resultSet.getString("ename")+",工资:"+resultSet.getDouble("sal")+",雇佣日期:"+resultSet.getDate("hiredate"));}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException throwables) {throwables.printStackTrace();} finally {try {//5.关闭资源if (resultSet != null) {resultSet.close();}if (statement != null) {statement.close();}if (connection != null) {connection.close();}} catch (SQLException throwables) {throwables.printStackTrace();}}}
}

增删改:statement.executeUpdate(sql)  返回结果是int类型,指受影响的行数

package com;import java.sql.*;public class Demo1 {//备注:try catch快捷键:选中代码块,然后Ctrl+Alt+Tpublic static void main(String[] args){Connection connection = null;Statement statement = null;try {//1.加载驱动Class.forName("com.mysql.cj.jdbc.Driver");//mysql8.0以后版本//2.获得链接String username = "root";String passWord = "123456";String url = "jdbc:mysql://localhost:3306/mysql2?serverTimezone=UTC";connection = DriverManager.getConnection(url, username, passWord);//3.定义sql,创建状态通道(进行sql语句的发送)statement = connection.createStatement();//返回结果为受影响的行数  result的值是受影响的行数int result = statement.executeUpdate("insert into emp1(ename,hiredate,sal) values('aa','2020-1-1',2000)");//executeUpdate(sql) 执行增删改时使用if(result>0){System.out.println("执行成功");}else{System.out.println("执行失败");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException throwables) {throwables.printStackTrace();} finally {try {//5.关闭资源if (statement != null) {statement.close();}if (connection != null) {connection.close();}} catch (SQLException throwables) {throwables.printStackTrace();}}}
}

SQL注入

package com;import java.sql.*;public class Demo1 {//备注:try catch快捷键:选中代码块,然后Ctrl+Alt+Tpublic static void main(String[] args){Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {//1.加载驱动Class.forName("com.mysql.cj.jdbc.Driver");//mysql8.0以后版本//2.获得链接String username = "root";String passWord = "123456";String url = "jdbc:mysql://localhost:3306/mysql2?serverTimezone=UTC";connection = DriverManager.getConnection(url, username, passWord);//3.定义sql,创建状态通道(进行sql语句的发送)statement = connection.createStatement();String uname = "abcd";String pass = " '' or 1=1";resultSet = statement.executeQuery("select * from users2 where username='"+uname+"' and password="+pass);//executeQuery(sql) 执行查询//4.取出结果集信息if(resultSet.next()){System.out.println("登陆成功");}else{System.out.println("登陆失败");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException throwables) {throwables.printStackTrace();} finally {try {//5.关闭资源if (resultSet != null) {resultSet.close();}if (statement != null) {statement.close();}if (connection != null) {connection.close();}} catch (SQLException throwables) {throwables.printStackTrace();}}}
}

防止SQL注入(预状态通道)

package com;import java.sql.*;public class Demo1 {//备注:try catch快捷键:选中代码块,然后Ctrl+Alt+Tpublic static void main(String[] args){Connection connection = null;PreparedStatement pps = null;ResultSet resultSet = null;try {//1.加载驱动Class.forName("com.mysql.cj.jdbc.Driver");//mysql8.0以后版本//2.获得链接String username = "root";String passWord = "123456";String url = "jdbc:mysql://localhost:3306/mysql2?serverTimezone=UTC";connection = DriverManager.getConnection(url, username, passWord);//3.定义sql,创建预状态通道(进行sql语句的发送)String sql = "select * from users2 where username=? and password=?";pps = connection.prepareStatement(sql);String uname = "aa";String pass = "1";//给占位符赋值 (下标,内容)pps.setString(1,uname);pps.setString(2,pass);//执行sqlresultSet = pps.executeQuery();//4.取出结果集信息if(resultSet.next()){System.out.println("登陆成功");}else{System.out.println("登陆失败");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException throwables) {throwables.printStackTrace();} finally {try {//5.关闭资源if (resultSet != null) {resultSet.close();}if (pps != null) {pps.close();}if (connection != null) {connection.close();}} catch (SQLException throwables) {throwables.printStackTrace();}}}
}

JAVA JDBC连接步骤代码,SQL注入,处理异常try catch 的快捷键相关推荐

  1. Java JDBC 使用Statement 产生sql注入问题

    #Java JDBC 使用Statement 产生sql注入问题 Statement 对象用于执行静态SQL语句并返回其生成的结果对象 Statement 对象执行SQL语句,存在SQL注入风险 代码 ...

  2. Java JDBC连接oracle、SQL server、My Sql数据库的驱动

    JAVA创建以JDBC连接数据库的程序 ①加载JDBC驱动程序: 1.oracle---------JDBC try{//加载oracle的驱动类Class.forName("oracle. ...

  3. java jdbc连接sql server2014

    近几天尝试用java jdbc方式访问sql server2014,但老是报错(报错如下)现在终于解决了这个问题.java jdbc连接sql server2014步骤如下 1开启sql server ...

  4. Java应用程序中的SQL注入

    在本文中,我们将讨论什么是SQL注入攻击. 以及它如何影响任何Web应用程序使用后端数据库. 在这里,我专注于Java Web应用程序. 开放Web应用程序安全项目(OWAP)列出了SQL注入是Web ...

  5. JAVA代码审计之WebGoat靶场SQL注入

    文章目录 前言 WebGoat IDEA部署靶场 No.1 回显注入 No.2 布尔盲注 No.3 Order by 代审技巧 SQL注入挖掘 SQL注入防御 Fortify体验 总结 前言 为了从自 ...

  6. 原生JDBC连接步骤

    #原生JDBC连接步骤 Java中定义了访问数据库的接口,可以为多种关系型数据库统一的访问方式. 由数据库厂商提供驱动实现类. ##JDBC开发步骤 1.注册驱动,jdk1.8之后,自动注册. //获 ...

  7. Java JDBC 连接MySQL数据库方法(IJ版)

    Java JDBC 连接MySQL数据库方法(IJ版) 首先说一下IJ建立项目步骤: 1.新建一个Empty Project 2.新建一个Module 3.在src里新建一个Package 4.在Pa ...

  8. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  9. java JDBC连接MySQL数据库调用存储过程进行查询

    java JDBC连接MySQL数据库调用存储过程进行查询 主程序代码 工具类 文件信息 存储过程 结果截图 主程序代码 package Mysql;import util.JDBCUtils; im ...

最新文章

  1. 【从入门到放弃-Java】并发编程-线程安全
  2. Android 程式开发:(二十)内容提供者 —— 20.6 自定义ContentProvider的使用
  3. http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=9332 多broser
  4. 《HTML5和CSS3快速参考》——第1章 走进HTML51.1 概述
  5. kubernetes-[1]-简单介绍
  6. 【图像去模糊】SDWNet: A Straight Dilated Network with Wavelet Transformation for image Deblurring
  7. SDN交换机配置说明—微云
  8. 敏捷开发“松结对编程”系列之十一:L型代码结构(团队篇之一)
  9. C语言学习笔记之初识
  10. urt-8转成GBK 之多种方法
  11. rtx3060ti参数配置
  12. java微信红包_Java模拟微信发红包(普通红包、拼手气红包)
  13. 数据数仓的三种建模方式
  14. 连接mongodb提示目标计算机拒绝,MongoDB 由于目标计算机积极拒绝,无法连接 2014-07-25T11:00:48.634+0...
  15. win10引导安卓x86_生命不息折腾不止 Win10竟与安卓有一腿
  16. mysql获取连续登陆大于等于3天的用户id
  17. c语言中的标准IO以及文件IO
  18. Bootstrap 引入 栅栏系统 文本 表格 类
  19. 给PPT设计初学者的一些建议
  20. 从零开始学五线谱_从零开始学乐理|第1课:不认识五线谱?花十分钟就够了...

热门文章

  1. 【乐理知识】第一章谱表
  2. 浅谈中国院落文化,打造中式家居风尚!
  3. 〖Python全栈白宝书-免费版⑲〗- 字符串的编码格式
  4. 搜索和遍历在图中有何区别和联系?
  5. VB如何生成EXE文件
  6. 一份诚恳的互联网找工作总结和感想(附:怎样花两年时间去面试一个人)
  7. Matlab的title如何实现换行显示?
  8. 12.27追求世俗意义上的成功与心灵快感的矛盾
  9. 浏览器操作常用快捷键
  10. Python3.4下载网页