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是执行SQL语句的Java API。其实,JDBC本身是一个产品的商标名。相对与ODBC(Open Database Connectivity开放数据库连接),也可以把JDBC看作“Java Database Connectivity(Java数据库连接)”。它由一组用Java...
sql语句分页查询 自己总结下来的 希望能给大家一点帮助!
源代码 博文链接:https://he-wen.iteye.com/blog/757659
Jmeter中JDBC request多条SQL语句使用
动态拼接sql语句工具类,拼接where后面语句 配合原生jdbc仿动态sql注入 if (ObjectUtil.isNotEmpty(maxLat)&&ObjectUtil.isNotEmpty(minLat)){ sqlParamList.add(new SqlParam("lat",minLat, SqlOpEnum.GE)); ...
1、在应用中jdbc url最前面添加jdbc:log4;比如oracle的url就变成了jdbc:log4jdbc:oracle:thin:@...3、运行系统测试,到对应日志文件中查看SQL相关信息; zip文件里已经包括所有依赖包,除了数据库驱动。 祝大家顺利。
com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案
是一个有用户,商品分类,商品,订单和订单相信五个表的简单数据库SQL语句,这是在学习jdbc是专门用来练习使用的。
1.SQL语句四大类: (1)数据查询/操纵/定义/控制语言(DQL/DML/DDL/DCL) (2)增删改查CRUD 2.查询数据 利用Statement实例通过执行静态SELECT语句完成,也可以利用PreparedStatement实例通过执行SELECT语句...
打印完整带参数sql,不用自己去替换问号,后端省时省力。
P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...
JDBC+注册驱动+获取连接+定义sql语句+获取执行sql对象+执行sql
执行sql语句, 并将结果通过ArrayList返回。字段名统一大写 比如 select * FROM A 返回的List中包含了所有A表中的字段值,通过MAP来取,字段名统一大写。 只有两个方法,没有示例,请自行编写测试。主体结构肯定是...
关系数据库与SQL语句 SQL语法 JDBC核心API 使用JDBC执行SQL语句 分析数据库的两种方式 事务 JDBC中的事务控制
很详细的讲解如何在Myeclipse中用jdbc连接数据库
这是JDBC连接SQL Server2008示例代码,其中有一份是在“SQL Server Authentication”模式下的,即需要账号密码,另一份为在“Windows Authentication”模式下的,不需要账号密码
JDBC是用于执行SQL语句的一类Java API,通过JDBC使得我们可以直接使用Java编程来对关系数据库进行操作。通过封装,可以使开发人员使用纯Java API完成SQL的执行。
NULL 博文链接:https://yunzhongxia.iteye.com/blog/611591
JAVA的SQL帮助类,帮助使用jdbc快速使用SQL语句更新,删除,查询数据,只需要专注于SQL语句的执行,而不需要写数据库的连接与释放
sqlserver各版本驱动 DriverManager:负责...Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)