package com.enhance.jdbc;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Properties;
/**
* SQL语句的分类
* select 语句
* DML:(Data Manipulation Language)数据操作语言:检索 select 和 更新insert update delete
* DDL:(Data Definition Language)数据定义语言: create alter drop truncate
* DCL:(Data Control Language)数据控制语言:grant revoke
* 事物控制语句:commit rollback savepoint
*
*
* executeQuery 执行 select语句 返回 resultSet
* executeUpdate 执行 DML: update delete insert 返回受影响的行数,DDL: create drop alter 返回0
* execute 执行所有的sql语句 返回 boolean ,true:表示返回 resultset结果集, false:表示返回受影响的行数
* @author Bin
*
*/
public class ExecuteDDL {
private String driver;
private String url;
private String user;
private String pass;
private Connection conn;
private Statement stmt;
public void initParam(String paramFile) throws Exception{
Properties prop=new Properties();
prop.load(new FileInputStream(paramFile));
driver=prop.getProperty("driver");
url=prop.getProperty("url");
user=prop.getProperty("user");
pass=prop.getProperty("pass");
}
public void createTable(String sql) throws Exception{
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pass);
stmt=conn.createStatement();
stmt.executeUpdate(sql);
} finally{
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
}
}
/**
* 采用 executeUpdate
* 执行 DML 数据操作语言 中的 更新 语句 即 insert update delete 返回受影响的行数
* 执行 DDL 数据定义语言 create alter drop truncate 返回 "0"
* @param sql
* @return
* @throws Exception
*/
public int executeDmlAndDdl(String sql)throws Exception{
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pass);
stmt=conn.createStatement();
return stmt.executeUpdate(sql);
} finally{
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
}
}
public static void main(String[] args) throws Exception {
ExecuteDDL ed=new ExecuteDDL();
//System.out.println(System.getProperty("user.dir"));
ed.initParam("src/mysql.ini");
/*ed.createTable("create table jdbc_test"
+ "( jdbc_id int auto_increment primary key,"
+ "jdbc_name varchar(255),"
+ "jdbc_desc text);");*/
//System.out.println(ed.executeDmlAndDdl("select host,user,password from user"));
ed.executeDmlAndDdl("create table img_table"
+ "(img_id int auto_increment primary key,"
+ "img_name varchar(255),"
+ "img_data mediumblob);");
System.out.println("---------建表成功-------");
}
}
分享到:
相关推荐
JDBC允许Java开发者通过编写Java代码来执行SQL语句,实现对数据库的操作,如查询、插入、更新和删除数据。 JDBC的主要优势在于其跨平台性和数据库无关性。与ODBC(Open Database Connectivity)不同,ODBC是一个...
在Java编程中,连接数据库并执行SQL语句是常见的任务,而`JDBC`(Java Database Connectivity)就是实现这一目标的接口和API。本篇将深入讲解如何在使用JDBC时,通过统一的方式设置SQL语句中的参数,提高代码的...
使用SQLJDBC或SQLJDBC4驱动,Java开发者可以使用JDBC API来创建数据库连接,执行SQL语句,处理结果集等。基本步骤如下: - 加载驱动:`Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");` - 建立...
在Java的JDBC编程中,`PreparedStatement`是一个非常重要的接口,它用于预编译SQL语句,提高了数据库操作的效率和安全性。当我们处理大量重复的SQL操作时,使用`PreparedStatement`可以避免SQL注入等问题,同时提升...
通过对JMeter中JDBC Request不同类型的SQL语句执行方式的介绍,我们可以看到,根据不同的测试需求选择合适的执行方式至关重要。Select Statement适用于简单的查询操作;Update Statement适用于单一的更新操作;...
当我们执行这个方法时,Log4jdbc 将打印出完整的 SQL 语句,包括参数 replacement: ``` DEBUG [main] JDBC - { conn:100, pstmt:102, sql:SELECT * FROM users WHERE name = ?, params:['John Doe'] } ``` 从上面的...
动态拼接sql语句工具类,拼接where后面语句 配合原生jdbc仿动态sql注入 if (ObjectUtil.isNotEmpty(maxLat)&&ObjectUtil.isNotEmpty(minLat)){ sqlParamList.add(new SqlParam("lat",minLat, SqlOpEnum.GE)); ...
2. PreparedStatement:用于执行预编译的SQL语句,支持参数绑定,提高性能并防止SQL注入。例如: ```java String sql = "select * from tb_record where sec=?"; PreparedStatement pstmt = con.prepareStatement...
在Java开发过程中,经常需要与数据库进行交互,尤其是在处理大量数据时,如何高效地执行SQL语句变得尤为重要。本文将详细介绍如何利用Java进行批量SQL执行,包括其背景、实现原理、代码示例及优化策略等。 #### 一...
JDBC是一种用于执行SQL语句的标准Java API,它可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了诸如查询执行和结果处理等功能。 ##### 1. 获取数据库连接 在提供的代码中,...
JDBC提供了一种标准化的方式来创建、执行SQL语句,并处理结果集。对于SQL Server 2005,我们需要使用微软提供的JDBC驱动——JDBC Driver for SQL Server(也称为MSSQL JDBC或Microsoft JDBC Driver)。 要连接到SQL...
1、在应用中jdbc url最前面添加jdbc:log4;比如oracle的url就变成了jdbc:log4jdbc:oracle:thin:@...3、运行系统测试,到对应日志文件中查看SQL相关信息; zip文件里已经包括所有依赖包,除了数据库驱动。 祝大家顺利。
"JDBC的动态SQL语句在浏览器_服务器模式中的应用.pdf" JDBC(Java Database Connectivity,Java数据库连接)是一种Java语言和数据库互联的接口,允许Java应用程序访问各种数据库管理系统。JDBC提供了一般的SQL...
另一种方法是使用原生SQL查询,这样可以直接控制SQL语句的生成,包括使用LIMIT和OFFSET关键字(对于MySQL等数据库)或ROW_NUMBER()函数(对于SQL Server)来实现分页。这同样可以绕过Hibernate的默认只进结果集行为...
本教程将详细解释JDBC中的关键步骤,包括注册驱动、获取连接、定义SQL语句、获取执行SQL的对象以及执行SQL。 **一、注册驱动** 在Java中,我们通常使用`Class.forName()`方法来注册数据库驱动。例如,如果我们要...
`java.sql.Statement`或其子接口`PreparedStatement`用于执行SQL语句。`Statement`适用于简单的非参数化查询,而`PreparedStatement`适用于参数化查询,能有效防止SQL注入攻击。 5. **处理结果集** 执行查询后,...
P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...
JDBC(Java Database Connectivity)是Java语言中用于与各种数据库进行交互的一套标准API,它允许Java应用程序通过编写Java代码来执行SQL语句,从而实现对数据库的操作。 在Java开发中,JDBC驱动是必不可少的部分,...
SQLJDBC驱动程序允许Java开发者使用标准的JDBC API来执行SQL语句、处理结果集、事务管理和数据库连接管理。这些驱动程序在Java应用服务器、Web应用,如JSP(JavaServer Pages)中特别有用,因为它们提供了跨平台的...
本文详细介绍了如何使用 JDBC 连接 SQL Server 数据库的方法,包括加载 JDBC 驱动、建立数据库连接、执行 SQL 语句(创建表、插入数据)以及查询数据。通过以上步骤,可以实现 Java 应用程序与 SQL Server 数据库的...