步骤:
1. 加载sql数据库驱动
Class.forName(“com.mysql.jdbc.Driver”);
2. 连接数据库
con = DriverManager.getConnection(url, username, pwd);
3.获得Statement
stmt = con.createStatement();
4.写入想要执行的sql语句
eg: String sql = “select * from student”;
5.操作数据库

为方面理解下面是本人操作的数据库内容:

package com.wql.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;/*** @author wql**/
public class jdbc {public static void main(String[] args) {/// 加载sql数据库驱动try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}Connection con = null;Statement stmt = null;ResultSet result = null;PreparedStatement pstm = null;// 预处理String url = "jdbc:mysql://localhost:3306/work"; // 数据库所在位置String username = "root"; // 数据库用户名String pwd = "123456"; // 数据库密码try {/// 连接数据库con = DriverManager.getConnection(url, username, pwd);/// 获得Statementstmt = con.createStatement();/// 写入想要执行的sql语句String sql = "select * from student";/// 获得sql语句执行后的集result = stmt.executeQuery(sql);// 在控制台打印出数据库内容System.out.println("学号" + " 姓名" + "    年    龄    " + "  性别");while (result.next()) {int id = result.getInt(1); // 这里对应数据库中表的第一个字段属性,接受内容的属性要根据数据库的属性String name = result.getString(2);String age = result.getString(3);String sex = result.getString(4);System.out.println(" " + id + "  " + name + " " + age + " " + sex);
/////////////////////下面有验证截图1 /////////////////////////}// 用Statement向表中插入数据String sql2 = "insert into student values(9,\"李丽\",\"1990-12-25\",\"女\")";          stmt.executeUpdate(sql2);// 更新数据
/////////////////////下面有验证截图2 ////////////////////////////// 上面用Statement操作数据库十分麻烦,在一些特定场合可以使用预处理方法来操作数据库String sql3 = "insert into student values(?,?,?,?)";/// 插入数据pstm = con.prepareStatement(sql3);pstm.setInt(1, 10); /// 前面的数字1代码表中的第1字段,后面的9是要插入表中第1个字段的内容pstm.setString(2, "流星雨");pstm.setString(3, "1998-02-03");pstm.setString(4, "男");pstm.executeUpdate();
/////////////////////下面有验证截图 /////////////////////////} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {if(con!=null){con.close();}if(stmt!=null){stmt.close();}if(result!=null){result.close();}if(pstm!=null){pstm.close();}}}
}

截图1:

截图2:

截图3:


上面对数据库的操作可以举一反三,重点说下:预处理的好处:
jdbc连接预处理可以预防SQL注入,提高安全性。因为SQL语句在程序运行前已经进行了预编译,在程序运行时第一次操作数据库之前,SQL语句已经被数据库分析,编译和优化,对应的执行计划也会缓存下来并允许数据库已参数化的形式进行查询,当运行时动态地把参数传给PreprareStatement时, 即使参数里有敏感字符如 or’1=1’也数据库会作为一个参数一个字段的属性值来处理而不会作为一个SQL指令, 如此,就起到了SQL注入的作用了!

转载于:https://www.cnblogs.com/wangqilong/p/8279790.html

jdbc连接操作mysql,直接操作和预处理方式相关推荐

  1. mysql 命令行访问_Mysql 命令行模式访问操作mysql数据库操作

    使用环境 在cmd模式下输入 mysql --version (查看mysql安装的版本). 完整的命令可以通过mysql --help来获取. 本测试使用的Mysql版本是mysql5, 本测试使用 ...

  2. jdbc连接Oracle/MySQL数据库进行批量导入操作,如何提高效率???

    使用JDBC连接Oracle数据库进行批量数据导入的时候,特别是大批量数据连续插入(百万级或以上),如何提高效率呢? 在JDBC编程接口中有两个方法特别值得注意: (1)void addBatch() ...

  3. java开发中jdbc连接数据 库的操作代码

    2019独角兽企业重金招聘Python工程师标准>>> JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要 ...

  4. jdbc连接oracle查询数据库,JDBC连接Oracle数据库,并操作数据库,查询表

    JDBC连接Oracle数据库 protected void doPost(HttpServletRequest request, HttpServletResponse response) thro ...

  5. JDBC连接执行MySQL存储过程报空指针或权限错误

    最近使用root用户编写了几个存储过程,但是使用普通用户通过JDBC连接执行却报错: java.lang.NullPointerException...... 或 java.sql.SQLExcept ...

  6. mysql 导出shell_shell操作mysql,Shell操作MySQL并导出文本文件

    注:本文转载自网络 Shell是每一个UNIX系统都有的工具,他功能强大,有很多系统启动程序是用Shell来写的. 在这里,我们利用Shell程序来操作MySQL数据库. 约定: MySQL管理用户为 ...

  7. jdbc连接sqlserver,mysql,oracle

    class xxx{private static String port = "1433";private static String ip = "192.168.2.1 ...

  8. jdbc操作mysql延时操作_关于jdbc通过Statement和PrepareStatement进行数据库批处理操作,以提供程序效率...

    前言 关于程序执行延时过长,很大部分来源于数据建立连接延时及连接池上限等到可用连接演示,如果能减少与数据库建立连接的次数,无疑提高了系统的执行效率,关于这一点可以将相关的频繁的sql操作以批处理的方式 ...

  9. spring配置jdbc连接oracle,mysql,sqlserver

    2019独角兽企业重金招聘Python工程师标准>>> http://mvnrepository.com/ 这个网站可以查询所有maven库的最新版本 一.oracle maven库 ...

  10. JDBC连接执行mysql存储过程报权限错误:User does not have access to metadata required to determine stored procedure

    项目场景: mysql创建数据加工流程,使用dophinscheduler定时调度运行项目. 问题描述 运行报错:java.sql.SQLException:User does not have ac ...

最新文章

  1. 网站打不开 换服务器,【图】网站更换服务器打不开—深圳天下信息网
  2. C语言十六进制数转八进制(十进制作为中介)(附完整源码)
  3. java 三种将list转换为map的方法详解
  4. [转]MSXML版本历史
  5. 修改oracle rac sid,修改Oracle RAC的_asm_hbeatiowait的方法
  6. android壁纸居中,Android Launcher 如何实现壁纸居中
  7. JavaScript原生实现《贪吃蛇》
  8. VMware虚拟机中不识别移动硬盘
  9. Android测试——如何捕获Windows系统的屏幕输入
  10. [论文翻译] Active Learning by Feature Mixing
  11. c语言 strupr,C语言 strupr()用法及代码示例
  12. linux执行shell过程日志,Android之在linux终端执行shell脚本直接打印当前运行app的日志...
  13. Visual Studio 2017 vcvarsall.bat 环境配置对应关系
  14. mysql如何清空数据库表内容
  15. 线性链表--插入、删除、显示、销毁
  16. UE4_编辑器UMG关闭窗口不能立刻销毁UMG
  17. 外卖行业现状分析_2019年中国外卖行业市场现状与发展趋势分析
  18. 2021金融科技领域最具商业合作价值企业盘点
  19. wannier拟合能带总是拟合不上_中科大PRL:面内磁化的本征量子反常霍尔效应:搜索规则和材料预测...
  20. C# MVC 向页面传值方式

热门文章

  1. arm linux中添加开机启动
  2. linux 程序、动态库、静态库内部添加版本号和编译时间
  3. KVM基础功能——Cpu配置
  4. C# http post 地址
  5. Oracle RAC 添加删除节点
  6. 探索.NET中事件机制(续)——虚事件和事件重写问题,微软的Bug?!
  7. Mysql主主复制架构配置
  8. MOSS2007 webcast系列(二)
  9. python编写登录接口与三级菜单小程序
  10. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)...