PreparedStatement插入values

public interface PreparedStatementextends Statement

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

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

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

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

 1 package com.ayang.jdbc;
 2
 3 import java.sql.*;
 4
 5
 6 import com.mysql.*;
 7
 8 public class TestPreparedStatement {
 9
10     /**
11      * @param args
12      */
13     public static void main(String[] args) {
14         if(args.length!=3){
15             //判断输入参数个数是否错误
16             System.out.println("Parameter Error! Please Input Again!");
17             System.exit(-1); //系统退出
18         }
19
20         int deptno = 0;  //声明变量。在头上呢?还是啥时候用啥时候声明呢?面试时,声明在头上。
21
22         try{
23             deptno = Integer.parseInt(args[0]);
24         }catch(NumberFormatException e){
25             System.out.println("参数类型错误,请输入数字");
26             System.exit(-1);
27
28         }
29         String dname = args[1];
30         String loc = args[2];
31
32         Connection conn = null;
33         PreparedStatement pstmt = null;
34
35         try{
36         //1、注册驱动
37         //new oracle.jdbc.driver.OracleDriver();
38         Class.forName("oracle.jdbc.driver.OracleDriver");
39         //2、建立连接
40         conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott", "root");
41         //3、创建语句
42         pstmt = conn.prepareStatement("insert into dept2 values(?,?,?)");
43         pstmt.setInt(1, deptno);
44         pstmt.setString(2, dname);
45         pstmt.setString(3, loc);
46         pstmt.executeUpdate();
47
48         }catch (ClassNotFoundException e) {
49             System.out.println("未正常加载jdbc驱动");
50             e.printStackTrace();
51         }catch(SQLException e){
52             e.printStackTrace();  //log for java
53
54         }finally{
55         //6、释放资源
56         try {
57             if(pstmt != null){
58                 pstmt.close();
59                 pstmt = null;
60             }if(conn != null){
61                 conn.close();
62                 conn = null;
63             }
64         } catch (SQLException e) {
65                 e.printStackTrace();
66         }
67
68
69         }
70
71
72
73     }
74
75 }
时间: 2024-10-31 09:58:16

PreparedStatement插入values的相关文章

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

1.使用#传递参数 #{}:被JDBC解析为PreparedStatement预编译语句,变量内容被当做一个整体变量,比如字符串,整形等. 2.使用$传递参数 ${}:纯粹是字符串替换,中间可以出现SQL语句,也会被正常执行的 使用场景:where id in(1,2,3,4) end 原文地址:https://www.cnblogs.com/zhuxiang1633/p/9961582.html

MySQL的简单操作方法:Statement、PreparedStatement

(1)连接mysql的工具类:DBUtil.java package com.xuliugen.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBUti

PreparedStatement 与 Statement 的区别

1. PreparedStatement 接口继承 Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象. 2.作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能.三种方法 execute. executeQuery 和 executeUpdate 已被更改以使之不再需要参数. 3.在JDBC应用中,大部分情况应该以PreparedStatement代替 

插入语句

insert into s--全插入 values( '001',null,'男',15,'演艺 ') insert into s(SNo,Sex,Age)--指定列插入 values ( '001','男',15) 另:mssql的更改字段顺序较为麻烦,暂在管理器里面手工拖动.以后学习修改顺序

【转载】JDBC操作步骤及数据库连接操作

转自:http://blog.csdn.net/joywy/article/details/7731305 一.JDBC操作步骤 1.加载数据库驱动程序:各个数据库都会提供JDBC的驱动程序开发包,直接把JDBC操作所需要的开发包(一般为*.jar或*.zip)直接配置到classpath路径即可. 2.连接数据库:根据各个数据库的不同连接的地址也不同,此连接地址将由数据库厂商提供,一般在使用JDBC连接数据库的时候都要求用户输入数据库连接的用户名和密码,用户在取得连接之后才可以对数据库进行查询

JDBC-数据连接池的使用

数据库连接池(connection pool) 在昨天的练习中每一次练习都需要与数据库建立连接,完成时断开连接,然而当处理的数据量特别的时候,就很耗费时间.降低效率,今天我们学习使用连接池,将连接放在连接池中,需要使用的时候从中取出,使用完毕放回池中并不是断开连接. 数据库连接池的基本思想就是为数据库连接建立一个"缓冲池".预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从"缓冲池"中取出一个,使用完毕之后再放回去. 数据库连接池在初始化时将创建一定数

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

首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(boolea

第十八章、使用集合

什么是集合类 Microsoft .NET Framework提供了几个类,它们集合元素,并允许应用程序以特殊方式访问这些元素.这些类正是集合类,它们在System.Collections.Generic命名空间中. List集合类 泛型List类是最简单的集合类.用法和数组差不多,可以使用标准数组语法(方括号和元素索引)来引用集合中的元素(但不能用这种语法在集合初始化之后添加新元素).List类比数组灵活,避免了数组以下限制. 1.为了改变数组大小,必须创建新数组,复制数组元素(如果新数组较小

入门篇:9.组件4:ContentProvider(内容提供者)

android 四大基本组件 的ContentProvider(内容提供者) 这个组件其实就是一个应用进行数据或数据库提供.共享其他应用获取数据的组件,其大致的结构图如下: 其中uri是一个重要的中间媒介. 联系到我们平时用的安卓程序,最常见的就是通讯录.在我们的安卓手机里,通讯录的设计其实是两个程序,其中有一个程序没有用户界面,单纯的存储着联系人信息,并且数据库结构复杂,这也是为了保证数据的安全.另外一个程序就是我们可以看见的通讯录程序.那么第一个程序就是一个ContentProvider,用