JDBC中执行SQL语句的方式
一.执行DDL、DML语句
DDL、DML分别表示数据库定义语言、数据库操纵语言,操控这两种语言应该使用Statement对象的executeUpdate方法。
代码如下:
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");//加载驱动
//获得一个物理会话
Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
//得到一个Statement对象
Statement stat=conn.createStatement();
String DDL_sql="create table if not exists tab(tab_id varchar(10) primary key,tab_name varchar(20))";
String DML_sql="insert into tab values('T0002','狗王')";
System.out.println(stat.executeUpdate(DDL_sql));//输出执行DDL语句的返回值
System.out.println(stat.executeUpdate(DML_sql));//输出执行DML语句的返回值
}
结果如下:
对于DDL语句返回的是0,对于DML语句返回的是受影响的行数。
二.执行DQL语句
对于查询语句应该使用Statement对象的executeQuery方法代码如下:
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
Statement stat =conn.createStatement();
String DQL_sql="select * from tab";
ResultSet rs=stat.executeQuery(DQL_sql);
得到的是一个ResultSet的结果集。
三.使用PreparedStatement执行SQL语句
一个预处理的Statement对象。代码如下:
package StudyJDBC; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement; /**
* @ClassName PreparedStatementText
* @Author 真正的小明被占用了
* @Date 2018/10/21/021 11:15
* @Version 1.0
*/
public class PreparedStatementText { public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
//创建一个PreparedStatement对象
PreparedStatement perpare=conn.prepareStatement("insert into tab values (?,?)");//对象在创建之初就有了预编译
perpare.setString(1,"T00003");//设置第一个占位符的类型和值
perpare.setString(2,"李武");//设置第二个
perpare.executeUpdate();//执行的还是DML语句所以使用executeUpdate方法
}
}
四.查询结果管理集
package StudyJDBC; import java.sql.*;
import java.util.ArrayList; /**
* @ClassName ReasultSetText
* @Author 真正的小明被占用了
* @Date 2018/10/21/021 13:48
* @Version 1.0
*/
public class ReasultSetText { public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection conn= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
Statement stat=conn.createStatement();
//创建一个结果集接受查询结果
ResultSet rs=stat.executeQuery("select * from tab");
//现在rs结果集有三行三列,
rs.next();//第一行
System.out.println(rs.getString("tab_id"));
rs.absolute(2);//跳转到第二行
System.out.println(rs.getString("tab_id"));
rs.first();//直接回到第一行
System.out.println(rs.getString("tab_id"));
rs.close();
}
}
JDBC中执行SQL语句的方式的更多相关文章
- JDBC中执行sql语句的 增 , 删 , 改 , 查 的方法
executeQuery() : 执行 SELECT 语句,它几乎是使用最多的 SQL 语句 executeUpdate() : 执行 INSERT.UPDATE 或 DELETE 语句以及 S ...
- Java JDBC下执行SQL的不同方式、参数化预编译防御
相关学习资料 http://zh.wikipedia.org/wiki/Java数据库连接 http://lavasoft.blog.51cto.com/62575/20588 http://blog ...
- [转]在EntityFramework6中执行SQL语句
本文转自:http://www.cnblogs.com/wujingtao/p/5412329.html 在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有 ...
- 在EntityFramework6中执行SQL语句
在EntityFramework6中执行SQL语句 在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有操作.这一节我来介绍一下如何使用在EF6中执行SQL语 ...
- 在EF中执行SQL语句(转载)
在EF中执行SQL语句 你可能要问,我用EF不就为了避免写SQL吗?如果要写SQL我不如直接用ADO.NET得了.话虽然这么说没错,可有些时候使用EF操作数据还是有一些不方便,例如让你根据条件删除 ...
- 在EntityFramework6中执行SQL语句【转】
在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有操作.这一节我来介绍一下如何使用在EF6中执行SQL语句. 你可能要问,我用EF不就为了避免写SQL吗?如 ...
- nhibernate中执行SQL语句
在有些时候,可能需要直接执行SQL语句.存储过程等,但nhibernate并没有提供一种让我们执行SQL语句的方法,不过可以通过一些间接的方法来实现. 下面给出一个在nhibernate中执行SQL语 ...
- easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)
easyui datagrid 禁止选中行 没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...
- 在JDBC中实现SQL语句的模糊查询
在JDBC中实现SQL语句的模糊查询 在大多数情况下我们可以在JDBC中写入sql语句通过占位符的方式来直接查询,但是如果要进行模糊查询,需要转义字符才能够正常查询. sql语句: select * ...
随机推荐
- js 获取二级域名
js获取页面完整地址: window.location.href; var s =" https://ejym.baidu.com"; var h = s.s ...
- c++中各类型数据所占字节数(一)
转自: https://blog.csdn.net/hi_baymax/article/details/82415896 和机器字长及编译器有关系: 所以,int,long int,short int ...
- 箭头函数里this理解
先来看代码: var obj1={ id:4, fn:function(){ var f=() => { console.log(this); //object,f()定义在obj1对象中,th ...
- JQ菜单滑块
网站导航滑块效果: 复制以下代码保存到html文件中即可查看效果... <html> <head> <title>JQ菜单滑块</title> < ...
- 微信内嵌浏览器打开手机浏览器下载APP(APK)的方法
想必大家会经常碰到网页链接在微信内无法打开和微信内无法打开app下载页的情况.通常这种情况微信会给个提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1.网页链接被举报次数 ...
- BAT面试官告诉你如何回答你的职业规划
前言(Why) 在面试中不论是在一面二面三面这种技术面,还是在最后的hr面,经常会被人问及,"谈谈你的职业规划"这种问题,我们回答的很可能会给我们的面试表现加分,如果回答地不好,对 ...
- bzoj2748
题解: 简单dp 代码: #include<bits/stdc++.h> using namespace std; ; int n,x,m,a[N],f[N][N]; int main() ...
- MySQL索引的原理,B+树、聚集索引和二级索引的结构分析
索引是一种用于快速查询行的数据结构,就像一本书的目录就是一个索引,如果想在一本书中找到某个主题,一般会先找到对应页码.在mysql中,存储引擎用类似的方法使用索引,先在索引中找到对应值,然后根据匹配的 ...
- d3js可视化策略
d3js是数据驱动图形的思路.基本可以这么理解,有什么样的图形,后面基本就有类似结构的数据.大概思路步骤如下: 一.适配数据格式 这一步主要是为第二部服务,第一步的结果作为第二部的入参. 比如,画层级 ...
- 入门html第一次copy小米首页布局
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...