JDBC中的元数据——2.参数元数据
package metadata;
import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import util.SQLUtil;
/**
* 参数元数据:
*
* @author mzy
*
*/
public class Demo02 {
public static void main(String[] args) throws Exception {
// easyUse();
// insert();
// update();
}
private static void update() {
SQLUtil.update("update student set name=?, gender=? where id=?", new Object[]{"Lily", "男", 3});
}
private static void insert() {
SQLUtil.update("insert into student(id, name, gender, score, birth) values (?, ?, ?, ?, ?)",
new Object[]{3, "lucy", "女", 90, "2018-05-04"});
}
private static void easyUse() throws Exception {
DataSource ds = new ComboPooledDataSource();
Connection conn = ds.getConnection();
String sql = "insert into student(id, name, gender, score, birth) values(?, ?, ?, ?, ?)";
// 预编译sql
PreparedStatement stmt = conn.prepareStatement(sql);
// 参数赋值
/*
stmt.setInt(1, 1);
stmt.setString(2, "mzy");
stmt.setString(3, "男");
stmt.setDouble(4, 99);
stmt.setString(5, "2017-05-04");
int i = stmt.executeUpdate();
System.out.println(i+"行受到影响!");
*/
// 知道预编译的sql有几个参数
// 得到参数元数据
ParameterMetaData metaData = stmt.getParameterMetaData();
// 得到sql中有几个参数
int count = metaData.getParameterCount();
System.out.println(count);
Object[] values = new Object[]{2, "stu", "女", 100, "2018-05-04"};
// 有了参数元数据之后,就可以换一种方式进行赋值了
for(int i=0; i<count; i++) {
stmt.setObject(i+1, values[i]);
}
stmt.executeUpdate();
System.out.println("插入成功!");
}
}
其中部分已经封装到了SQLUtil中,请点击
JDBC中的元数据——2.参数元数据的更多相关文章
- OpenJDK源码研究笔记(十二):JDBC中的元数据,数据库元数据(DatabaseMetaData),参数元数据(ParameterMetaData),结果集元数据(ResultSetMetaDa
元数据最本质.最抽象的定义为:data about data (关于数据的数据).它是一种广泛存在的现象,在许多领域有其具体的定义和应用. JDBC中的元数据,有数据库元数据(DatabaseMeta ...
- JDBC中的元数据
在我编写JDBC代码的时候:出现很多的重复的代码,有没有什么办法让我们能够编写出更加通用的JDBC代码呢?使用元数据,元数据能够让我们编写出更加通用的JDBC代码.什么是元数据呢?(三种元数据)1)连 ...
- JDBC中的元数据——3.结果集元数据
package metadata; import java.sql.Connection; import java.sql.ParameterMetaData; import java.sql.Pre ...
- JNDI和在tomcat中配置DBCP连接池 元数据的使用 DBUtils框架的使用 多表操作
1 JNDI和在tomcat中配置DBCP连接池 JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.namin ...
- WPF中如何选择合适的元数据标记?(英文)
原文:WPF中如何选择合适的元数据标记?(英文) FrameworkPropertyMetadataOptions Enumeration:Specifies the types of framewo ...
- JDBC中常用的接口
JDBC常用的接口DriverManager 驱动管理器获得数据库链接 Connection 数据库链接接口 Statement 语句接口,用来静态操作SQL语句 PreparedStatement ...
- JDBC中常用对象介绍
JDBC中的主要类(接口) 在JDBC中常用的类有: 1.DriverManager 2.Connection 3.Statement 4.ResultSet 1.DriverManager 其实我们 ...
- [转]JDBC中日期时间的处理技巧
Java中用类java.util.Date对日期/时间做了封装,此类提供了对年.月.日.时.分.秒.毫秒以及时区的控制方法,同时也提供一些工具方法,比如日期/时间的比较,前后判断等. java.uti ...
- 使用JDBC中的出现的乱码和查询无结果问题
使用JDBC中的问题 连接的后出现查询结果是乱码. 1.可能是代码的编码与数据库的编码不同 有可以将二者都设置为UTF-8 2.如果比较懒得话可以只设代码为UTF-8 mysql 连接url中us ...
随机推荐
- HTML5-CSS(二)
一. CSS 文本样式 1.font-size p { font-size: 50px;}解释:设置文本的大小. xx-small.x-small.small.medium.large.x-larg ...
- 前端开发入门到进阶第三集【Jsonp】
/* $.ajax({ type : "get", url : "${loginInfo.SSO_BASE_URL }/user/token/" + token ...
- python + mysql 实现查询表数据
实例如下: import pymysqldef select_form(): # 打开数据库连接 db = pymysql.connect("localhost", "r ...
- springmvc学习指南 之---第25篇 Spring Bean有三种配置方式
writed by不要张艳涛, 从tomcat转到了springmvc 现在开始有点不知道该看什么书了,看完了springmvc 学习指南之后 又查了一些书,好多都是内容相近,在找书的过程之中,发现s ...
- Intouch/ifix关于语音报警的一种设置思路
工控项目最近升级改造,需要使用Intouch/ifix提供一个语音报警功能.这个不像先前提供的单一的声音报警,业主方要求能详细的提供某某水泵或者是某某设备故障报警,这就要求我们这边对语音解析或者基础控 ...
- 什么是软件的CLI安装
Websoft9 在进行开源软件的集成与自动化安装研究过程中发现有些软件有CLI安装模式,例如Gitlab CLI版本.Ghost CLI.PHP CLI等,CLI安装是什么意思? CLI(Comma ...
- ListPopupWindow和Popupwindow的阴影相关问题demo总结
Popupwindow: 优点:可以通过setBackgroundDrawable()来重新设置阴影. 缺点:当AnchorView是可移动的,比如移动到屏幕的左右边界.左下角.右下角时,Popupw ...
- Java方法——递归
递归(栈) package method; public class Demon04 { //递归思想 public static void main(String[] ar ...
- 分时函数 & 节流函数
分时函数 & 节流函数 1.函数节流 JavaScript 中的函数大多数情况下都是由用户主动调用触发的,除非是函数本身的实现不合 理,否则我们一般不会遇到跟性能相关的问题.但在一些少数情况下 ...
- OpenCV 之 特征匹配
OpenCV 中有两种特征匹配方法:暴力匹配 (Brute force matching) 和 最近邻匹配 (Nearest Neighbors matching) 它们都继承自 Descriptor ...