最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

jdbc连接操作mysql,直接操作和预处理方式

来源:动视网 责编:小采 时间:2020-11-09 08:48:47
文档

jdbc连接操作mysql,直接操作和预处理方式

jdbc连接操作mysql,直接操作和预处理方式:步骤: 1. 加载sql数据库驱动 Class.forName(com.mysql.jdbc.Driver);2. 连接数据库 con = DriverManager.getConnection(url, username, pwd);3.获得Statement stmt = con.createStatement();4.写入想要执
推荐度:
导读jdbc连接操作mysql,直接操作和预处理方式:步骤: 1. 加载sql数据库驱动 Class.forName(com.mysql.jdbc.Driver);2. 连接数据库 con = DriverManager.getConnection(url, username, pwd);3.获得Statement stmt = con.createStatement();4.写入想要执
 步骤:
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 block
 e.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); /// 获得Statement
 stmt = 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 block
 e.printStackTrace();
 }
 }
}

截图1:

截图2:

截图3:


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

文档

jdbc连接操作mysql,直接操作和预处理方式

jdbc连接操作mysql,直接操作和预处理方式:步骤: 1. 加载sql数据库驱动 Class.forName(com.mysql.jdbc.Driver);2. 连接数据库 con = DriverManager.getConnection(url, username, pwd);3.获得Statement stmt = con.createStatement();4.写入想要执
推荐度:
标签: 连接 直接 方法
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top