JDBC进阶之PreparedStatement执行SQL语句(MySQL)
PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。
- package com.serein.jdbc;
- import java.sql.*;
- public class preparedStatemetTest {
- public static void main(String[] args) {
- //检查命令行中是否够7个参数
- if(args.length != 7) {
- System.out.println("Parameter Error! Please Input Again!");
- System.exit(-1);
- }
- //程序获取运行栈里的7个参数值
- String name = args[0];
- int age = 0;
- try {
- age = Integer.parseInt(args[1]);
- } catch (NumberFormatException e) {
- System.out.println("Parameter Error! Age should be Number Format!");
- System.exit(-1);
- }
- String sex = args[2];
- String address = args[3];
- String depart = args[4];
- int worklen = 0;
- try {
- worklen = Integer.parseInt(args[5]);
- } catch (NumberFormatException e) {
- System.out.println("Parameter Error! Worklen should be Number Format!");
- System.exit(-1);
- }
- int wage = 0;
- try {
- wage = Integer.parseInt(args[6]);
- } catch (NumberFormatException e) {
- System.out.println("Parameter Error! Wage should be Number Format!");
- System.exit(-1);
- }
- //创建PreparedStatement对象
- PreparedStatement pstmt = null;
- //创建连接对象
- Connection conn = null;
- //连接数据库,并插入数据
- try {
- //加载MySQL驱动实例,提供了两种方法,是等价的
- Class.forName("com.mysql.jdbc.Driver");
- //new oracle.jdbc.driver.OracleDriver();
- //建立连接
- conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myuser", "root", "root");
- //使用PreparedStatement对象里来构建并执行SQL语句,7个问号代表7个字段预先要保留的值
- pstmt = conn.prepareStatement("INSERT INTO staff(name, age, sex,address, depart, worklen,wage) VALUES (?, ?, ?, ?, ?, ?, ?)");
- //通过PreparedStatement对象里的set方法去设置插入的具体数值
- pstmt.setString(1, name);
- pstmt.setInt(2, age);
- pstmt.setString(3, sex);
- pstmt.setString(4,address );
- pstmt.setString(5, depart);
- pstmt.setInt(6, worklen);
- pstmt.setInt(7, wage);
- pstmt.executeUpdate();
- //插入成功提示
- System.out.print("成功插入一条数据记录!");
- //捕获驱动加载失败异常
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- //捕获SQL语句执行失败异常
- } catch (SQLException e) {
- e.printStackTrace();
- //恢复变量初始值
- } finally {
- try {
- if(pstmt != null) {
- pstmt.close();
- pstmt = null;
- }
- if(conn != null) {
- conn.close();
- conn = null;
- }
- //捕获SQL异常
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
编写好代码之后,要进行带参数运行程序,方法如下:

25
M
Guangzhou
Engine
3
5000
查看Console控制台,"成功插入一条数据记录!":

查看MySQL数据库,进行确认:

成功完成!
转自:http://blog.csdn.net/cxwen78/article/details/6868941
JDBC进阶之PreparedStatement执行SQL语句(MySQL)的更多相关文章
- 使用预处理PreparedStatement执行Sql语句
/** * 使用预处理的方式执行Sql * @param sql Sql语句 * @param obj 变量值数组 * @return 查询结果 * @throws SQLException */ p ...
- 使用PreparedStatement执行SQL语句时占位符(?)的用法
1.Student数据库表 ID name gender 2.Java代码 public static void main(String[] args) { int _id=1; Str ...
- 用jdbc连接数据库并简单执行SQL语句
一:版本一.这种存在一个问题就是每执行一次操作都会创建一次Connection链接和且释放一次链接 1:创建pojo对象(OR映射,一个pojo类对应一张数据库表) package com.yin ...
- JDBC中执行SQL语句的方式
一.执行DDL.DML语句 DDL.DML分别表示数据库定义语言.数据库操纵语言,操控这两种语言应该使用Statement对象的executeUpdate方法. 代码如下: public static ...
- 不登录到MySQL执行SQL语句
mysql -e 不登录到MySQL执行SQL语句 mysql -u root -p -e "SHOW DATABASES"
- 三种执行SQL语句的的JAVA代码
问题描述: 连接数据库,执行SQL语句是必不可少的,下面给出了三种执行不通SQL语句的方法. 1.简单的Statement执行SQL语句.有SQL注入,一般不使用. public static voi ...
- [疯狂Java]JDBC:PreparedStatement预编译执行SQL语句
1. SQL语句的执行过程——Statement直接执行的弊病: 1) SQL语句和编程语言一样,仅仅就会普通的文本字符串,首先数据库引擎无法识别这种文本字符串,而底层的CPU更不理解这些文本字符串( ...
- JDBC连接MYSQL,批量执行SQL语句或在执行一个SQL语句之前执行一个SQL语句
conn = MysqlJdbcUtils.getConnection(); Statement ps=conn.createStatement(); ps.addBatch("trunca ...
- 10.1(java学习笔记)JDBC基本操作(连接,执行SQL语句,获取结果集)
一.JDBC JDBC的全称是java database connection java数据库连接. 在java中需要对数据库进行一系列的操作,这时就需要使用JDBC. sun公司制定了关于数据库操作 ...
随机推荐
- C语言:输入一个多位的数字,12345,求各位相加1+2+3+4+5=15
题目: 输入一个多位的数字,12345,求各位相加1+2+3+4+5=15(10分)题目内容: 输入一个多位的数字,1求各数位相加. 例如输入12345,则计算1+2+3+4+5=15 输入格式: 一 ...
- 30分钟LINQ教程的学习笔记
原文章 : http://www.cnblogs.com/liulun/archive/2013/02/26/2909985.html 一.11个与LINQ有关的语言特性: [隐式类型.匿名类型.对象 ...
- Bad connection to FS. command aborted. exception: Call to chaoren/192.168.80.100:9000 failed on connection exception: java.net.ConnectException: Connection refused
Bad connection to FS. command aborted. exception: Call to chaoren/192.168.80.100:9000 failed on conn ...
- Ionic Js三:下拉刷新
在加载新数据的时候,我们需要实现下拉刷新效果,代码如下: HTML 代码 <body ng-app="starter" ng-controller="actions ...
- 1009 Product of Polynomials (25)(25 point(s))
problem This time, you are supposed to find A*B where A and B are two polynomials. Input Specificati ...
- python opencv3 检测人
git:https://github.com/linyi0604/Computer-Vision # coding:utf-8 import cv2 # 检测i方框 包含o方框 def is_insi ...
- 神经网络与BP神经网络
一.神经元 神经元模型是一个包含输入,输出与计算功能的模型.(多个输入对应一个输出) 一个神经网络的训练算法就是让权重(通常用w表示)的值调整到最佳,以使得整个网络的预测效果最好. 事实上,在神经网络 ...
- 【BZOJ 2986】 莫比乌斯函数+容斥原理
2986: Non-Squarefree Numbers Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 337 Solved: 156 Descri ...
- luoguP4492 [HAOI2018]苹果树 组合计数 + dp
首先,每个二叉树对应着唯一的中序遍历,并且每个二叉树的概率是相同的 这十分的有用 考虑\(dp\)求解 令\(f_i\)表示\(i\)个节点的子树,根的深度为\(1\)时,所有点的期望深度之和(乘\( ...
- 王彪-20162321-Java程序设计与数据结构2nd-第十周学习总结
学习目标 讨论有向图和无向图 定义带权图并讨论它们的应用 定义图的广度优先遍历和深度优先遍历 定义最小生成树 讨论图的实现策略 书中图的基本定义 图是由结点及结点间的连接组成的,结点称为顶点,结点间的 ...