zoukankan      html  css  js  c++  java
  • PreparedStatementUpdateTest.java

    package com.atguigu3.preparedstatement.crud;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.Date;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Properties;
    
    import org.junit.Test;
    
    import com.atguigu1.connection.ConnectionTest;
    import com.atguigu3.util.JDBCUtils;
    
    /*
     * 使用PreparedStatement来替换Statement,实现对数据表的增删改操作
     * 
     * 增删改;查
     * 
     * 
     */
    public class PreparedStatementUpdateTest {
    	
    	@Test
    	public void testCommonUpdate(){
    //		String sql = "delete from customers where id = ?";
    //		update(sql,3);
    		
    		String sql = "update `order` set order_name = ? where order_id = ?";
    		update(sql,"DD","2");
    		
    	}
    	
    	//通用的增删改操作
    	public void update(String sql,Object ...args){//sql中占位符的个数与可变形参的长度相同!
    		Connection conn = null;
    		PreparedStatement ps = null;
    		try {
    			//1.获取数据库的连接
    			conn = JDBCUtils.getConnection();
    			//2.预编译sql语句,返回PreparedStatement的实例
    			ps = conn.prepareStatement(sql);
    			//3.填充占位符
    			for(int i = 0;i < args.length;i++){
    				ps.setObject(i + 1, args[i]);//小心参数声明错误!!
    			}
    			//4.执行
    			ps.execute();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}finally{
    			//5.资源的关闭
    			JDBCUtils.closeResource(conn, ps);
    			
    		}
    		
    		
    	}
    	
    	//修改customers表的一条记录
    	@Test
    	public void testUpdate(){
    		Connection conn = null;
    		PreparedStatement ps = null;
    		try {
    			//1.获取数据库的连接
    			conn = JDBCUtils.getConnection();
    			//2.预编译sql语句,返回PreparedStatement的实例
    			String sql = "update customers set name = ? where id = ?";
    			ps = conn.prepareStatement(sql);
    			//3.填充占位符
    			ps.setObject(1,"莫扎特");
    			ps.setObject(2, 18);
    			//4.执行
    			ps.execute();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}finally{
    			//5.资源的关闭
    			JDBCUtils.closeResource(conn, ps);
    			
    		}
    	}
    	
    
    	// 向customers表中添加一条记录
    	@Test
    	public void testInsert() {
    		Connection conn = null;
    		PreparedStatement ps = null;
    		try {
    			// 1.读取配置文件中的4个基本信息
    			InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
    
    			Properties pros = new Properties();
    			pros.load(is);
    
    			String user = pros.getProperty("user");
    			String password = pros.getProperty("password");
    			String url = pros.getProperty("url");
    			String driverClass = pros.getProperty("driverClass");
    
    			// 2.加载驱动
    			Class.forName(driverClass);
    
    			// 3.获取连接
    			conn = DriverManager.getConnection(url, user, password);
    			
    //		System.out.println(conn);
    			
    			//4.预编译sql语句,返回PreparedStatement的实例
    			String sql = "insert into customers(name,email,birth)values(?,?,?)";//?:占位符
    			ps = conn.prepareStatement(sql);
    			//5.填充占位符
    			ps.setString(1, "哪吒");
    			ps.setString(2, "nezha@gmail.com");
    			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    			java.util.Date date = sdf.parse("1000-01-01");
    			ps.setDate(3, new Date(date.getTime()));
    			
    			//6.执行操作
    			ps.execute();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}finally{
    			//7.资源的关闭
    			try {
    				if(ps != null)
    					ps.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			try {
    				if(conn != null)
    					conn.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			
    		}
    		
    	}
    
    }
    
    
  • 相关阅读:
    Python面向对象——内置对象的功能扩展
    学术日记#学术道德与人文素养
    Python面向对象——基本继承
    SqlServer——字符串处理函数
    SqlServer——索引
    生活小问题(1)
    win7-VS2010-IIS网站的发布问题
    PhoneGap+Cordova+SenchaTouch-01-环境搭建
    sql server数字转字符串出现科学计数法
    SQLServer 重启服务后,自增1的标识列一次增长了1000(转自博问)
  • 原文地址:https://www.cnblogs.com/fenxiangyuan/p/14695218.html
Copyright © 2011-2022 走看看