Oracle-JDBC常用接口,PreparedStatement的使用,PreparedStatement防止SQL注入,JdbcUtil工具类,修改Eclipse编辑器的工作空间编码
1.JDBC常用接口
PreparedStatement : 它是Statement接口的子接口,用来执行预编译的SQL语句,它是通过调用Connection对象的prepareStatement方法获取的
PreparedStatement prepareStatement(String sql)throws SQLException;
预编译的SQL:当调用Connection的prepareStatement方法就传入了sql语句,然后将SQL语句发送到服务器端进行编译,在未调用executeQuery()或executeUpdate()方法前就已经编译了。只编译一次,以后可以重复使用该sql,只需要改变sql中的参数就可以了
Statement对象是调用Connection的createStatement()方法获取的,在调用executeQuery()或executeUpdate()方法时才把SQL语句发送给服务器端进行编译,即每次执行SQL语句都要重新发送SQL,重新编译.
Connection对象的三个和事务相关的重要方法
1)setAutoCommit(boolean autoCommit) :设置事务的自动提交模式,默认事务是自动提交的,如果参数为false,表示关闭自动提交,由程序来控制事务何时提交。不调用该方法,事务都是自动提交的
2).commit(): 配合setAutoCommit(false)使用,当需要提交事务时,调用commit()手动提交事务
3).rollback():配合setAutoCommit(false)使用,当需要回滚事务时,调用rollback()手动回滚事务
2.PreparedStatement的使用
步骤如下:
1)创建PreparedStatement的实例
PreparedStatement实例要包含预编译的Sql语句,sql语句特点是为每个输入参数保留一个占位符?
String sql = "insert into dept values(?,?,?)"; PreparedStatement stmt = conn.prepareStatement(sql) ;
2)给SQL语句中的占位符?赋值
调用PreparedStatement对象的setXxx(int index, object value)来给?赋值.Xxx是输入参数的java类型,setXxx()的参数1是输入参数(?)的索引,从1开始,参数2是提供给输入参数的值
例如上面的sql中有3个输入参数(?),第1个?是部门号字段值,它的值是int类型,调用setInt(1, ‘开发部’ )
// 执行sql前要给每个?赋值 stmt.setInt(1, deptno); stmt.setString(2, dname); stmt.setString(3, loc);
3)调用executeQuery()或executeUpdate()执行Sql语句,不要再传入sql
int i = stmt.executeUpdate();
3.PreparedStatement防止SQL注入
SQL注入:在sql命令中注入非法的sql语句,从而实现恶意的登录等行为.例如下面的sql:
select * from t_user where username='xx' and userpassword='bb' or '1'='1'
上面注入了 or ‘1’='1’这样的非法sql,不管输入什么用户名和密码都能成功登录
使用PreparedStatement对象可以防止SQL注入
String sql = "select * from t_user where username=? and userpassword=?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, username); stmt.setString(2, userpwd); // System.out.println(sql); ResultSet rs = stmt.executeQuery(); if (rs.next()) { System.out.println("登录成功"); } else { System.out.println("登录失败"); }
4.JdbcUtil工具类
封装了3个方法
1)获取连接 2) 关闭资源 3)通用的增删改executeUpdate()
调用executeUpdate(),只能传入增删改的语句,不能传查询语句
5.修改Eclipse编辑器的工作空间编码
都统一,别人用UTF-8编码的项目导入到你的Eclipse后,就不会有中文乱码
- Eclipse修改工作空间默认编码
- eclipse如何在新的工作空间使用原来的配置(编码、视图、快捷键、插件设置等)
- eclipse使用之修改工作空间的字符集
- eclipse修改整个工作空间的编码
- 修改eclipse打开工作空间的默认编码
- Eclipse修改默认编码格式:工作空间,工程,文件,某类文件(如jar)
- 修改eclipse默认工作空间编码方式,修改工程编码方式,修改文件编码方式,修改某类文件默认编码方式。
- Oracle常用脚本-查看表空间使用情况
- 修改eclipse的默认工作空间
- Eclipse设置工作空间编码的问题
- Oracle 使用PreparedStatement防止SQL注入
- 修改eclipse默认的工作空间
- 使用Statement接口实现增,删,改操作(工作中不常用这个,而用PreparedStatement接口)
- StringEscapeUtils的常用使用,防止SQL注入及XSS注入
- eclipse修改默认工作空间
- eclipse如何修改默认工作空间
- eclipse修改默认工作空间
- eclipse使用教程系列五:调优,启动参数设置,字体,背景颜色,编码格式等常用设置大全
- eclipse修改默认工作空间及工作空间设置详解,打开Eclipse时workspace默认设定在c盘原因
- JDBC连接数据库以及常用接口(mysql与oracle)