zoukankan      html  css  js  c++  java
  • JDBC

    入门案例

    // 1.通过DriverManger注册驱动
    		DriverManager.registerDriver(new Driver());
    
    		// 2.通过DriverManager获取连接对象
    		Connection con = DriverManager.getConnection(
    				"jdbc:mysql://localhost:3306/databasename", "root", "abc");
    
    		// 3.通过Connection获取一个操作sql语句的对象Statement
    		Statement st = con.createStatement();
    
    		// 4.执行sql语句(select) 得到一个ResultSet
    		String sql = "select * from user";
    		ResultSet rs = st.executeQuery(sql);
    
    		// 5.操作结果集,得到数据
    		while (rs.next()) {
    			System.out.println("ID:" + rs.getInt("id") + "	USERNAME:"
    					+ rs.getString("username") + "	PASSWORD:"
    					+ rs.getString("password") + "	EMAIL:"
    					+ rs.getString("email"));
    		}
    		// 6.释放资源
    		rs.close();
    		st.close();
    		con.close();
    

      

    SQL注入问题

    如果我们在输入用户名与密码时,输入的信息如下:

    用户名tom' OR '1'='1

    密码:任意输入

    这时会发现,我们的程序正确运行了,并显示用户登陆成功及用户的详细信息。

    这就产生了SQL注入问题

    所谓SQL 注入是用户利用某些系统没有对输入数据进行充分的检查,从而进行恶意破坏的行为。

    对于SQL注入问题,我们可以使用PreparedStatement来替换Statement来解决这类问题。

    PreparedStatement介绍

    PreparedStatementjava.sql包下的一个接口。它是Statement的一个子接口

    表示预编译的 SQL 语句的对象。

    SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。

    获取PreparedStatement对象:

    • Connection中提供一个方法PreparedStatement prepareStatement(String sql) throws SQLException可以获取PreparedStatement对象。

    注意:

    参数sql,代表的是要预编译的sql语句,在语句中可以使用 “?”占位符来占位

    常用方法:

    • ResultSet executeQuery() throws SQLException

    用于执行select操作,注意无参数

    • int executeUpdate() throws SQLException

    用于执行update delete insert操作,注意无参数

    • 对预编译的sql语句中?占位符赋值操作

    n void setInt(int parameterIndex,int x) throws SQLException

    n void setString(int parameterIndex,String x) throws SQLException

    n void setObject(int parameterIndex,Object x) throws SQLException

    参数parameterIndex代表的是第几个?号,也就是参数的序号,从1开始计数

    后一个参数,是要赋的值

    以上只是介绍三个比较常用的方法,更多方法大家可以查询帮助文档。

  • 相关阅读:
    如何将baidu地图中的baidu logo 去掉
    漂亮的圆角文本框 CSS3实现
    jQuery数字加减插件
    腾迅股票数据接口 http/javascript
    JS复制内容到剪贴板(兼容FF/Chrome/Safari所有浏览器)
    关于编写性能高效的javascript事件的技术
    想做web开发 就学JavaScript
    git的简单理解及基础操作命令
    《CSS权威指南》基础复习+查漏补缺
    TypeScript Writing .d.ts files(编写声明文件)
  • 原文地址:https://www.cnblogs.com/MessiAndDream/p/6056085.html
Copyright © 2011-2022 走看看