package PreparedStatement_sql注入;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner; import org.junit.After;
import org.junit.Before;
import org.junit.Test; public class PreparedStatement_sql {
// 用?作为占位符号 /**
* 保存图片mysql中用longblob
* @throws Exception
*/
@Test
public void saveImg() throws Exception{
String sql = "insert into stud values(66,?,?)";
PreparedStatement pst = con.prepareStatement(sql);
//声明图片的信息
File file = new File("./img/a.jpg");
InputStream in = new FileInputStream(file);
//设置参数到pst中
pst.setString(1, "ss");
pst.setBinaryStream(2,in);
//执行
pst.executeUpdate();
} /**
* 防止sql注入
*
* @throws Exception
*/
@Test
public void regWithPre() throws Exception { Scanner sc = new Scanner(System.in);
System.err.println("输入id ,name");
String id = sc.nextLine();
String name = sc.nextLine();
String sql = "insert into stud values(?,?)";
// preparedstatement pst 接收sql
// 执行sql语句再设置参数
PreparedStatement pst = con.prepareStatement(sql);
// 编译好后设置参数
// 设置值要从1开始
pst.setString(1, id);
pst.setString(2, name);
pst.executeUpdate(); } /**
* 判断数据库里是否有值
*
* @throws Exception
*/
@Test
public void loginPst() throws Exception {
Scanner sc = new Scanner(System.in);
String nm = sc.nextLine();
String id = sc.nextLine();
String sql = "select * from stud where id=? and name=?";
PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, id);
pst.setString(2, nm);
System.err.println(sql);
ResultSet rs = pst.executeQuery();// 判断是否有值
if (rs.next()) {
System.err.println("你登录成功,你好欢迎你..");
} else {
System.err.println("你登录不成功。。。");
}
} @Before
// 执行Test前执行
public void getCon() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/abc?useUnicode=true&characterEncoding=utf8";
con = DriverManager.getConnection(url, "root", "1234");
// con.close();
// System.err.println(con); } @After
// 执行Test后执行
public void closeConn() throws Exception {
if (con != null || !con.isClosed()) { con.close();
} } private Connection con; }

JDBC_mysql---防sql注入,存储图片的更多相关文章

  1. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  2. C#语言Winform防SQl注入做用户登录的例子

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  3. PHP防SQL注入不要再用addslashes和mysql_real_escape_string

    PHP防SQL注入不要再用addslashes和mysql_real_escape_string了,有需要的朋友可以参考下. 博主热衷各种互联网技术,常啰嗦,时常伴有强迫症,常更新,觉得文章对你有帮助 ...

  4. mysql之数据库连接的方法封装及防sql注入

    一.定义数据库和表 create database animal; CREATE TABLE `pet` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name ...

  5. nginx服务器防sql注入/溢出攻击/spam及禁User-agents

    本文章给大家介绍一个nginx服务器防sql注入/溢出攻击/spam及禁User-agents实例代码,有需要了解的朋友可进入参考. 在配置文件添加如下字段即可  代码如下 复制代码 server { ...

  6. C#防SQL注入代码的实现方法

    对于网站的安全性,是每个网站开发者和运营者最关心的问题.网站一旦出现漏洞,那势必将造成很大的损失.为了提高网站的安全性,首先网站要防注入,最重要的是服务器的安全设施要做到位. 下面说下网站防注入的几点 ...

  7. php防sql注入、xss

    php自带的几个防止sql注入的函数http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0318/12234.html addslashe ...

  8. SQL 2008存储图片和读取图片

    用SQL Server存储文字数据非常easy实现,假设用SQL Server存储图片呢?大家有没有实现思路呢?如今我用一个Demo来为大家提供一种在SQL Server中存储图片的思路. 场景:在s ...

  9. Sqlparameter防SQL注入

    一.SQL注入的原因 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对 ...

  10. 防SQL注入:生成参数化的通用分页查询语句

    原文:防SQL注入:生成参数化的通用分页查询语句 前些时间看了玉开兄的“如此高效通用的分页存储过程是带有sql注入漏洞的”这篇文章,才突然想起某个项目也是使用了累似的通用分页存储过程.使用这种通用的存 ...

随机推荐

  1. 8.0 BOM对象

    主要的掌握的知识结构图 1 Window 2 控制窗口.框架.弹出窗口 3 利用location对象中的页面信息 4 使用 navigator 对象了解浏览器 1.1 BOM的核心对象是window, ...

  2. Oracle - 使用序列+触发器实现主键自增长

    Oracle中的自增,不如Sql server那般方便. --.创建序列 CREATE SEQUENCE "TABLE_NAME"."SQ_NAME" MINV ...

  3. C#设置程序自启动

    public static void SetAutoRun(string fileName, bool isAutoRun)        {            RegistryKey reg = ...

  4. Winform开发之窗体传值

    Winform的窗体之间的数据传递是开发的必备技术,下面介绍几种典型的传值方法 1.构造函数传值,但这种方法是单向的(推荐) 上代码,先传值 private void button2_Click(ob ...

  5. oracle用户权限的问题

    一.创建用户 create user username identified by password --username 创建的用户的名称 --password 创建的用户的密码 二.赋权限 gra ...

  6. struts1:(Struts)ActionForm类及表单数据验证

    在Struts的中央控制器中写了Struts的控制器角色,在这篇介绍下Struts的视图!Struts的视图组件:Struts框架中的视图组件主要包括:JSP页面.ActionForm类.Struts ...

  7. uva 12100 Printer Queue

    The only printer in the computer science students' union is experiencing an extremely heavy workload ...

  8. php error_log 详解

    定义和用法 error_log() 函数向服务器错误记录.文件或远程目标发送一个错误. 成功,返回 true,否则返回 false. error_log(error,type,destination, ...

  9. 启动PL/SQL Developer 报字符编码不一致错误,Database character set

    错误内容: Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different. Character ...

  10. c#POST请求和接收post请求

    c# post请求发送数据 /// <summary> /// POST请求 /// </summary> /// <param name="url" ...