JAVA通过JDBC链接数据库获取数据(三)PreparedStatement预编译SQL
2017-09-09 16:21
706 查看
JAVA通过JDBC链接数据库获取数据(三)PreparedStatement预编译SQL
一、PreparedStatement 作用
1、可以防止SQL注入:对JDBC而言,SQL注入攻击只对Statement有效,对PreparedStatement是无效的,这是因为PreparedStatement不允许在插入时改变查询的逻辑结构.
2、可以存储和读取大文本文件。
二、PreparedStatement 操作数据库使用实例
package com.sql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class PreparedStatementDemo {
Connection con = null;
// 在执行SQL语句前先执行 @Before 的代码
@Before
public void init() throws Exception{
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取链接
String url = ("jdbc:mysql://127.0.0.1:3306/long1?characterEncoding=UTF8");
con = DriverManager.getConnection(url,"root","123456");
System.out.println(con);
}
//获取到数据库的数据后,执行释放资源
@After
public void destory() throws SQLException{
con.close();
}
@Test
public void Preparedst() throws SQLException{
System.out.println("请输入账号和密码");
Scanner sc = new Scanner(System.in);
String name = sc.nextLine(); //输入账号
String pwd = sc.next(); //输入密码
//获取sql 输入的参数都用? 作为占位符
String sql = "insert into uses(u_name,pwd) values(?,?)";
//输出SQL语句,?号不会显示为具体的参数都是在PreparedStatement内部处理。不会给其他人看到。
System.out.println("sql 语句是:"+sql);
//获取预编译的statement
PreparedStatement pt = con.prepareStatement(sql);
//给每一个?替换成输入的参数
//第一个?替换成输入的账号 name变量
pt.setString(1, name);
//第二个?替换成输入的密码 pwd 变量
pt.setString(2, pwd);
//执行sql语句
pt.executeUpdate();
}
}
一、PreparedStatement 作用
1、可以防止SQL注入:对JDBC而言,SQL注入攻击只对Statement有效,对PreparedStatement是无效的,这是因为PreparedStatement不允许在插入时改变查询的逻辑结构.
2、可以存储和读取大文本文件。
二、PreparedStatement 操作数据库使用实例
package com.sql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class PreparedStatementDemo {
Connection con = null;
// 在执行SQL语句前先执行 @Before 的代码
@Before
public void init() throws Exception{
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取链接
String url = ("jdbc:mysql://127.0.0.1:3306/long1?characterEncoding=UTF8");
con = DriverManager.getConnection(url,"root","123456");
System.out.println(con);
}
//获取到数据库的数据后,执行释放资源
@After
public void destory() throws SQLException{
con.close();
}
@Test
public void Preparedst() throws SQLException{
System.out.println("请输入账号和密码");
Scanner sc = new Scanner(System.in);
String name = sc.nextLine(); //输入账号
String pwd = sc.next(); //输入密码
//获取sql 输入的参数都用? 作为占位符
String sql = "insert into uses(u_name,pwd) values(?,?)";
//输出SQL语句,?号不会显示为具体的参数都是在PreparedStatement内部处理。不会给其他人看到。
System.out.println("sql 语句是:"+sql);
//获取预编译的statement
PreparedStatement pt = con.prepareStatement(sql);
//给每一个?替换成输入的参数
//第一个?替换成输入的账号 name变量
pt.setString(1, name);
//第二个?替换成输入的密码 pwd 变量
pt.setString(2, pwd);
//执行sql语句
pt.executeUpdate();
}
}
相关文章推荐
- JAVA通过JDBC链接数据库获取数据(二)单元测试增删改查
- JAVA通过JDBC链接数据库获取数据(一)
- java JDBC 通过物理连接数据库和通过获取数据库连接池进行链接
- 通过 java 把excel xls中数据转为可直接插入数据库的sql文件
- (转) java 通过 jdbc 链接 ms sql server 中出现 "no suitable driver for ..."
- java JDBC 连接数据库查询数据与直接使用sql的疑问
- JAVA程序通过后台登陆网站,获取Session,然后再POST Http Request添加数据到数据库的实例
- java通过JDBC_获取数据库连接
- java通过jdbc链接数据库
- java通过JDBC获取MySQL的数据实现
- Java -- JDBC 学习--获取数据库链接
- 【JavaEE学习笔记】JDBC_01_Java链接数据库,封装数据,sql注入
- jdbc链接获取数据 java源代码
- 数据库存储过程中定义一个变量,通过sql语句在数据表中获取这个变量值的方法。
- java 链接数据库sql jdbc 基础操作 增删改查
- 是用JDBC从数据库中获取数据并以java对象返回
- 通过SQL语句获取MSSQL数据库的数据字典
- 通过JDBC获取数据库表元数据
- 【java基础:JDBC】通过读取配置文件进行数据库连接并读取数据的Demostration
- jdbc链接数据库,获取表名,字段名和数据