zoukankan      html  css  js  c++  java
  • 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中,请点击

  • 相关阅读:
    Spring事务管理
    ssh三大框架整合
    SVN服务器安装教程
    springaop配置
    SVN学习笔记
    spring整合jdbc
    ubuntu 虚拟XP chm文件用不了
    Acegi的标签库authzauthorize
    android http 连接通信
    UltraISO(软碟通)制作安装Ubuntu
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053462.html
Copyright © 2011-2022 走看看