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 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。...
jdbc中preparedStatement比Statement的好处
PreparedStatement是Java JDBC中用于执行预编译SQL语句的接口,它是Statement的子接口。预编译的SQL语句可以提高数据库操作的性能和安全性。在数据库系统中,预编译意味着SQL语句在首次执行前已经过编译,形成一个...
Java面试题34.jdbc中preparedStatement比Statement的好处.mp4
### JDBC基础教程之PreparedStatement知识点详解 #### 一、概述 `PreparedStatement`是Java数据库连接(JDBC)API中的一种重要接口,它继承自`Statement`接口,并在其基础上进行了扩展和优化。`PreparedStatement`...
尚硅谷著名教师佟刚老师基于面对对象编程思想,对preparedStatement类一系列操作的案例。
在Java的JDBC编程中,`PreparedStatement`是一个非常重要的接口,它用于预编译SQL语句,提高了数据库操作的效率和安全性。当我们处理大量重复的SQL操作时,使用`PreparedStatement`可以避免SQL注入等问题,同时提升...
在Java的数据库编程中,`JDBC PreparedStatement`和连接池中的`PreparedStatement Cache`是两个非常重要的概念,它们对于提升应用程序的性能和效率有着显著的作用。本文将深入探讨这两个主题,并结合Oracle数据库的...
在Java数据库连接(JDBC)中,增删改查(CRUD)操作是与数据库交互的基础,事务处理、批处理和预编译SQL语句则是提高效率和保证数据一致性的关键技术。以下是对这些概念的详细说明: 1. **JDBC增删改查(CRUD)**:...
jdbc2.0版 PreparedStatement接口的用法
SQLJDBC和SQLJDBC4是Microsoft为Java应用程序提供的用于连接SQL Server数据库的驱动程序。这两个版本都是JDBC(Java Database Connectivity)驱动,允许Java开发者在应用程序中与SQL Server进行交互。下面将详细介绍...
JDBC 内容之宋红康版本 JDBC 是 Java 访问数据库的基石,定义了用来访问数据库的标准 Java 类库(java.sql,javax.sql),使用这些类库可以以一种标准的方法、方便地访问数据库资源。JDBC 为访问不同的数据库提供了...
- 创建Statement或PreparedStatement对象:根据需求选择,Statement用于一般SQL语句,PreparedStatement用于预编译的SQL语句。 - 执行SQL:调用Statement或PreparedStatement的`executeQuery()`或`executeUpdate()...
客户端可能会使用JDBC API建立与服务器的连接,创建Statement或PreparedStatement对象,然后执行SQL语句。这些语句可以是SELECT、INSERT、UPDATE或DELETE,用于获取、添加、修改或删除数据库中的数据。 `Server....
3. **创建Statement/PreparedStatement**: 通过`Connection`对象创建`Statement`或`PreparedStatement`,用于执行SQL查询。 4. **执行查询**: 执行SQL语句,并获取`ResultSet`。 5. **处理结果**: 遍历`ResultSet`,...
9. **性能优化**:JDBC提供了多种优化技巧,如关闭不再需要的资源(如结果集、Statement和连接),使用连接池来重用连接,以及合理使用`PreparedStatement`避免SQL注入。 10. **JDBC API的扩展**:随着技术的发展,...
通过上述内容,我们了解了JDBC的运作机制,掌握了使用Statement和PreparedStatement的关键点,以及如何进行事务管理和结果集处理。这些知识对于开发和维护数据库驱动的Java应用程序具有重要的参考价值。
和`com.mysql.jdbc.PreparedStatement`:分别实现了JDBC的Statement和PreparedStatement接口,针对MySQL进行了优化。 4. `com.mysql.jdbc.ResultSet`:实现了JDBC的`java.sql.ResultSet`接口,对MySQL查询结果进行...
**Java数据库连接(JDBC)教程** JDBC(Java Database Connectivity)是Java平台中的一个标准API,用于在Java应用程序和各种类型的数据库之间建立连接。它允许开发者执行SQL语句,处理结果集,以及进行事务管理。...
Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬...