public interface PreparedStatementextends Statement

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

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

注:用于设置 IN 参数值的设置方法(setShortsetString 等等)必须指定与输入参数的已定义 SQL 类型兼容的类型。例如,如果 IN 参数具有 SQL 类型 INTEGER,那么应该使用 setInt 方法。

如果需要任意参数类型转换,使用 setObject 方法时应该将目标 SQL 类型作为其参数。

 package com.ayang.jdbc;

 import java.sql.*;

 import com.mysql.*;

 public class TestPreparedStatement {

     /**
* @param args
*/
public static void main(String[] args) {
if(args.length!=3){
//判断输入参数个数是否错误
System.out.println("Parameter Error! Please Input Again!");
System.exit(-1); //系统退出
} int deptno = 0; //声明变量。在头上呢?还是啥时候用啥时候声明呢?面试时,声明在头上。 try{
deptno = Integer.parseInt(args[0]);
}catch(NumberFormatException e){
System.out.println("参数类型错误,请输入数字");
System.exit(-1); }
String dname = args[1];
String loc = args[2]; Connection conn = null;
PreparedStatement pstmt = null; try{
//1、注册驱动
//new oracle.jdbc.driver.OracleDriver();
Class.forName("oracle.jdbc.driver.OracleDriver");
//2、建立连接
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott", "root");
//3、创建语句
pstmt = conn.prepareStatement("insert into dept2 values(?,?,?)");
pstmt.setInt(1, deptno);
pstmt.setString(2, dname);
pstmt.setString(3, loc);
pstmt.executeUpdate(); }catch (ClassNotFoundException e) {
System.out.println("未正常加载jdbc驱动");
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace(); //log for java }finally{
//6、释放资源
try {
if(pstmt != null){
pstmt.close();
pstmt = null;
}if(conn != null){
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
} } } }

PreparedStatement插入values的更多相关文章

  1. mybatis动态参数(使用PreparedStatement插入#)和静态参数($)

    1.使用#传递参数 #{}:被JDBC解析为PreparedStatement预编译语句,变量内容被当做一个整体变量,比如字符串,整形等. 2.使用$传递参数 ${}:纯粹是字符串替换,中间可以出现S ...

  2. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. PreparedStatement 与 Statement 的区别

    1. PreparedStatement 接口继承 Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象. 2.作为 ...

  4. Eclipse中java向数据库中添加数据,更新数据,删除数据

    前面详细写过如何连接数据库的具体操作,下面介绍向数据库中添加数据. 注意事项:如果参考下面代码,需要 改包名,数据库名,数据库账号,密码,和数据表(数据表里面的信息) package com.ning ...

  5. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  6. jdbc_连接数据库

    1.例一: package com.vince.jdbc; import java.sql.Connection;import java.sql.DriverManager;import java.s ...

  7. MySQL JDBC事务处理、封装JDBC工具类

    MySQL数据库学习笔记(十)----JDBC事务处理.封装JDBC工具类 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit. ...

  8. statement preparestatement CallableStatement

    大家都知道Statement.PrepareStatement 和CallableStatement 对象,其实它们是interface,为什么JDBC2.0中要提供这三个对象呢?对于Statemen ...

  9. JdbcTemplate源码解析

    先写一个测试代码 package jdbc; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Arr ...

随机推荐

  1. opp小节

    本章总结 练习题 面向对象三大特性,各有什么用处,说说你的理解. 类的属性和对象的属性有什么区别? 面向过程编程与面向对象编程的区别与应用场景? 类和对象在内存中是如何保存的. 什么是绑定到对象的方法 ...

  2. IntelliJ IDEA 2017版 spring-boot使用Spring Data JPA搭建基础版的三层架构

    1.配置环境pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  3. C++标准模板库(STL)和容器

    1.什么是标准模板库(STL)? (1)C++标准模板库与C++标准库的关系 C++标准模板库其实属于C++标准库的一部分,C++标准模板库主要是定义了标准模板的定义与声明,而这些模板主要都是 类模板 ...

  4. Spring3.x错误----Bean named "txAdvice" must be of type[org.aopallibance.aop.Advice

    Spring3.x错误: 解决方法: aopalliance-1.0.jar 和 aopalliance-alpha1.jar之间的冲突.

  5. (线段树 点更新 区间求和)lightoj1112

    链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#problem/D (密码0817) Description Robin ...

  6. follow me

    IM InfoSphere Information Server for Data Integration Fundamentals Bootcamp 7月15日 5 北京 IM InfoSphere ...

  7. ORACLE报表触发器

    http://www.cnblogs.com/quanweiru/archive/2012/09/26/2704308.html 触发器一.报表触发器(report trigger)报表触发器主要用于 ...

  8. [Ubuntu]管理开机启动项的软件

    sudo apt-get install sysv-rc-conf

  9. DBCC--CHECKDB--结果收集

    --由宋沄剑提供 CREATE TABLE [dbo].[dbcc_history]( [Error] [int] NULL, [Level] [int] NULL, [State] [int] NU ...

  10. 射线与平面的相交检测(Ray-Plane intersection test)【转】

    射线的定义 在欧几里德几何中,射线的定义是:直线上一点和它一旁的部分.由此可知,射线有两个性质,一是只有一个端点,二是一端无限延伸. 射线的参数方程 其中p0是射线的起点, u是射线的方向向量,t & ...