JDBC_PreparedStatement预编译对象

package com.lin.jdbc_04;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import com.lin.jdbc_01.JDBCUtils;


/*
 * 
 * java.sql.PerparedStatement extends java.sql.Statement接口
 * 	
 * 好处:
 * 	1)通过连接对象创建PerparedStatement对象就已经sql进行预编译,提高sql的执行效率
 *  2)有效的防止sql注入!
 * 
 * 预编译对象
 * 
 * JDBC
 * 1)注册驱动
 * 2)获取连接对象
 * 3)准备sql: 里面要使用占位符号?
 * 4)通过连接对象获取预编译对象并将sql发送到数据库进行预编译
 * 5)通过预编译对象设置sql中的参数
 * 6)
 * 执行查询
 * 	ResultSet executeQuery()  在perparedStatement对象中执行DQL语句
 * 
 * 执行更新int executeUpdate() 在perparedStatement对象中执行DML,DDL语句
 * 7)释放资源 
 * */
public class PreparedStatementDemo {

	public static void main(String[] args) {
		Connection conn = null;
		PreparedStatement stmt = null;
		try {
			// 注册驱动
			// 获取连接
			conn = JDBCUtils.getConnection();
			// 准备sql
			// 向mydb_01数据库中employee表中插入数据
			String sql = "insert into employee(name,address,dept_id)values(?,?,?)";
			// 通过连接对象创建预编译对象
			// PreparedStatement prepareStatement(String sql)
			// 将参数化的sql语句发送到数据库中进行预编译(编译一次),提供执行效率
			stmt = conn.prepareStatement(sql);
//			void setXXX(int paramentIndex,XXX value)
//			参数1:描述的当前?占位符第几个
//			参数2:当前占位符所在字段类型
			
//			设置参数
			stmt.setString(1,"ll");
			stmt.setString(2,"北京");
			stmt.setInt(3,2);
//			执行更新:sql
			int count=stmt.executeUpdate();
			if(count>0) {
				System.out.println("更新成功,影响了"+count+"行");
			}else {
				System.out.println("更新失败");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			JDBCUtils.close(stmt, conn);
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值