mysql设置jdbc连接_jdbc连接设置mysql,直接设置与预处理方式

软件安装:装机软件必备包

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。步骤:

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.操作数据库

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

1b134b6b8644d8c8914eabd7be5114fa.png

255fbaf33fc5058fdec42e4753cff915.png

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.divpareStatement(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:

b9a92665408c73d5c3deacab77073025.png

截图2:

66a72556f601c269adbb601d965dd6cb.png

截图3:

2124bb6161e8147dc5556b1b9b068b79.png

上面对数据库的操作可以举一反三,重点说下:预处理的好处:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值