`
zds420
  • 浏览: 202748 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

JDBC之PreparedStatement

    博客分类:
  • JDBC
 
阅读更多
package com.saas.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.util.Calendar;
import java.sql.ResultSet;
/**
 * 此类主要使用面向对象的思想,
 *  使用PreparedStatment语句执行,删除,修改,查询等操作
 *  此PreparedStatment 语句和Statment语句有什么区别
 *  PreparedStatment是预编译语句,Statment是语句的子类为PreparedStatment,CallableStatment;
 * @author Administrator
 *
 */

public class TestPrepareDemo01 {
	

	public static String _URL="jdbc:mysql://127.0.0.1:3306/shopping_thpad_com?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true";
	
	public static String _LOGIN_NAME="root";
	
	public static String _LOGIN_PASSWORD="123456";
	
	private static Connection connect = null;
	
	private PreparedStatement pstmt=null;
	
	private ResultSet rs = null;
	
	public static Connection getConnection() {
		try{
			Class.forName("com.mysql.jdbc.Driver");
		}
		catch(ClassNotFoundException e) {
			e.printStackTrace();
		}
		
		
		try {
			connect = DriverManager.getConnection(_URL, _LOGIN_NAME, _LOGIN_PASSWORD);	
		}
		catch(SQLException e) {
			e.printStackTrace();
		}
		return connect;
		
	}
	
	public void execInsert() {
		connect = getConnection();
		//添加
		String insert_sql ="insert into item_spec(item_spec_id,name,remarks) values(?,?,?)";
		try {
			Calendar cal =	Calendar.getInstance();
		 	pstmt= connect.prepareStatement(insert_sql);
		 	pstmt.setString(1,String.valueOf(cal.getTimeInMillis()));
		 	pstmt.setString(2, "test");
		 	pstmt.setString(3, "test333333333");
		 	pstmt.executeUpdate();
		}
		catch(SQLException e) {
			e.printStackTrace();
		}
		finally {
			// 抛出异常则关闭所有链接
			this.doClose();
		}
	}
	
	public void execStatement() {
		connect = getConnection();
		
		String result_sql = "select * from item_spec ";//where item_spec_id=?
		
		try {
			pstmt = connect.prepareStatement(result_sql);
			//pstmt.setString(1, "1319729859937");
			rs = pstmt.executeQuery();
			
			while(rs.next()) {
				System.out.println(rs.getString("item_spec_id")+"-----------"+rs.getString("name")+"---------------"+rs.getString("remarks"));
			}
		}
		catch(SQLException e) {
			e.printStackTrace();
		}
		finally {
			 this.doClose();
		}
	}
	
	public void execUpdate() {
		connect = getConnection();
		
		String update_sql ="update item_spec set name=?,remarks=? where item_spec_id=?";
		
		try {
			PreparedStatement pstmt = connect.prepareStatement(update_sql);
			pstmt.setString(1, "zhudansheng");
			pstmt.setString(2, "remarks ssstaskdflasdjfjasdfkljasdaskfjaafkjas手放开垃圾生大幅就 ");
			pstmt.setString(3, "1319125327157");
			int i_flag=pstmt.executeUpdate();
			System.out.println("更新为:"+i_flag);
		}
		catch(SQLException e) {
			e.printStackTrace();
		}
		finally{
			this.doClose();
		}
	}
	
	public void execDelete() {
		connect = getConnection();
		String delete_sql ="delete from item_spec where item_spec_id=?";
		try {
			PreparedStatement pstmt = connect.prepareStatement(delete_sql); 
			pstmt.setString(1, "1319122161343");
			int i_flag=pstmt.executeUpdate();
			System.out.println("删除为:"+i_flag);
		}
		catch(SQLException e) {
			e.printStackTrace();
		}
		finally{
			this.doClose();
		}
	}
	
	public void doClose() {
		try {
			if(null!=rs) {
				rs.close();
				rs=null;
			}
			if(null!=pstmt) {
				pstmt.close();
				pstmt=null;
			}
			if(null!=connect) {
				connect.close();
				connect=null;
			}
				
		}
		catch(SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[]args) {
		TestPrepareDemo01 test = new TestPrepareDemo01();
		test.getConnection();
		test.execInsert();
		test.execStatement();
		test.execUpdate();
		test.execDelete();
		test.doClose();
	}
}
 
分享到:
评论

相关推荐

    JDBC中PreparedStatement接口提供的execute、executeQuery和executeUpdate之间的区别及用法

    JDBC 中 PreparedStatement 接口提供的 execute、executeQuery 和 executeUpdate 之间的区别及用法 JDBC 中的 PreparedStatement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。...

    34.jdbc中preparedStatement比Statement的好处.avi

    jdbc中preparedStatement比Statement的好处

    JDBC之PreparedStatement类中预编译的综合应用解析

    PreparedStatement是Java JDBC中用于执行预编译SQL语句的接口,它是Statement的子接口。预编译的SQL语句可以提高数据库操作的性能和安全性。在数据库系统中,预编译意味着SQL语句在首次执行前已经过编译,形成一个...

    Java面试题34.jdbc中preparedStatement比Statement的好处.mp4

    Java面试题34.jdbc中preparedStatement比Statement的好处.mp4

    JDBC基础教程之PreparedStatement.doc

    ### JDBC基础教程之PreparedStatement知识点详解 #### 一、概述 `PreparedStatement`是Java数据库连接(JDBC)API中的一种重要接口,它继承自`Statement`接口,并在其基础上进行了扩展和优化。`PreparedStatement`...

    7. 尚硅谷_佟刚_JDBC_PreparedStatement.wmv

    尚硅谷著名教师佟刚老师基于面对对象编程思想,对preparedStatement类一系列操作的案例。

    如何获得PreparedStatement最终执行的sql语句

    在Java的JDBC编程中,`PreparedStatement`是一个非常重要的接口,它用于预编译SQL语句,提高了数据库操作的效率和安全性。当我们处理大量重复的SQL操作时,使用`PreparedStatement`可以避免SQL注入等问题,同时提升...

    【性能】JDBC PreparedStatement和连接池PreparedStatement Cache学习记录

    在Java的数据库编程中,`JDBC PreparedStatement`和连接池中的`PreparedStatement Cache`是两个非常重要的概念,它们对于提升应用程序的性能和效率有着显著的作用。本文将深入探讨这两个主题,并结合Oracle数据库的...

    jdbc 增删改查事物处理, 批处理,以及预编译示例代码

    在Java数据库连接(JDBC)中,增删改查(CRUD)操作是与数据库交互的基础,事务处理、批处理和预编译SQL语句则是提高效率和保证数据一致性的关键技术。以下是对这些概念的详细说明: 1. **JDBC增删改查(CRUD)**:...

    PreparedStatement

    jdbc2.0版 PreparedStatement接口的用法

    sqljdbc和sqljdbc4 sqlserver最新驱动

    SQLJDBC和SQLJDBC4是Microsoft为Java应用程序提供的用于连接SQL Server数据库的驱动程序。这两个版本都是JDBC(Java Database Connectivity)驱动,允许Java开发者在应用程序中与SQL Server进行交互。下面将详细介绍...

    第10章 JDBC-课后习题1

    - 创建Statement或PreparedStatement对象:根据需求选择,Statement用于一般SQL语句,PreparedStatement用于预编译的SQL语句。 - 执行SQL:调用Statement或PreparedStatement的`executeQuery()`或`executeUpdate()...

    JDBC内容之宋红康版本

    JDBC 内容之宋红康版本 JDBC 是 Java 访问数据库的基石,定义了用来访问数据库的标准 Java 类库(java.sql,javax.sql),使用这些类库可以以一种标准的方法、方便地访问数据库资源。JDBC 为访问不同的数据库提供了...

    jdbc.zip_java jdbc_java+jdbc_jdbc_jdbc Java_zip

    客户端可能会使用JDBC API建立与服务器的连接,创建Statement或PreparedStatement对象,然后执行SQL语句。这些语句可以是SELECT、INSERT、UPDATE或DELETE,用于获取、添加、修改或删除数据库中的数据。 `Server....

    jdbc jdbc jdbc

    9. **性能优化**:JDBC提供了多种优化技巧,如关闭不再需要的资源(如结果集、Statement和连接),使用连接池来重用连接,以及合理使用`PreparedStatement`避免SQL注入。 10. **JDBC API的扩展**:随着技术的发展,...

    sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar三个包

    3. **创建Statement/PreparedStatement**: 通过`Connection`对象创建`Statement`或`PreparedStatement`,用于执行SQL查询。 4. **执行查询**: 执行SQL语句,并获取`ResultSet`。 5. **处理结果**: 遍历`ResultSet`,...

    jdbc 总结 有参考价值

    通过上述内容,我们了解了JDBC的运作机制,掌握了使用Statement和PreparedStatement的关键点,以及如何进行事务管理和结果集处理。这些知识对于开发和维护数据库驱动的Java应用程序具有重要的参考价值。

    Mysql JDBC源码 官网版

    和`com.mysql.jdbc.PreparedStatement`:分别实现了JDBC的Statement和PreparedStatement接口,针对MySQL进行了优化。 4. `com.mysql.jdbc.ResultSet`:实现了JDBC的`java.sql.ResultSet`接口,对MySQL查询结果进行...

    jdbc教程_jdbc教程

    **Java数据库连接(JDBC)教程** JDBC(Java Database Connectivity)是Java平台中的一个标准API,用于在Java应用程序和各种类型的数据库之间建立连接。它允许开发者执行SQL语句,处理结果集,以及进行事务管理。...

    Java之JDBC连接MySQL数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement)

    Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬...

Global site tag (gtag.js) - Google Analytics