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


本文摘自PHP中文网,作者一个新手,侵删。

步骤:
1. 加载sql数据库驱动

1

Class.forName(“com.mysql.jdbc.Driver”);

2. 连接数据库

1

con = DriverManager.getConnection(url, username, pwd);

3.获得Statement

1

stmt = con.createStatement();

4.写入想要执行的sql语句

1

eg: String sql = “select * from student”;

5.操作数据库

为方面理解下面是本人操作的数据库内容:
这里写图片描述

这里写图片描述

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

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:
截图2

截图3:
截图3


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

以上就是jdbc连接操作mysql,直接操作和预处理方式的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

mysql 如何进行数据查询

myeclipse连接mysql数据库详细步骤

如何去除mysql表中的 r n

mysql黑框怎么改密码?mysql黑窗口怎么改密码?

数据库里的id是什么?

mysql 语法整理介绍

mysql正则匹配模糊法查询某个字段

yum命令如何安装mysql

关于mysql的基础知识详解

python操作mysql数据库的简单步骤分享

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...