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 * ...
随机推荐
- maven将依赖的jar包复制到指定位置
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
- Treap标准模板
这是Treap的模板程序,支持Left/Right Rotate,Find the maxnum/minnum,Find the predecessor/successor of a node,Add ...
- 正则--test exec search match replace
1:test 是正则对象的方法不是字符串的方法,使用例子:正则对象也就是那个设定好的模式对象 var str = "hello world!"; var result = /^he ...
- Python_Mix*OS模块,序列化模块种的json,pickle
os.path.basename(path)返回path最后的文件名,如何path以/或\结尾,那么就会返回空值,即os.path.split(path)的第一个元素 ret = os.path.ba ...
- [NOIP2013D2]
T1 Problem 洛谷 Solution 这是线性扫描题吧. 就从1 ~ n 循环,若比起面高,则 ans += h[i] - h[i - 1]. Code #include<cmath&g ...
- 读取properties配置文件,value值为中文时出现乱码
已确保idea工具默认设置都是UTF-8格式: 然后在配置类上,指定编码: @PropertySource(value = "classpath:short_message.prop ...
- dsp 28335 ConfigCpuTimer()详细介绍
我自己的理解:写的不一定对,还请多指教: 从网上看到的好多都是复制粘贴的一个版本,感觉不太对 图上的是系统时钟(SYSCLKOUT)=75MHz; ConfigCpuTimer(&CpuTim ...
- Asp .Net Core Spa (二) - 服务器渲染1
Server Side Rendering 服务器渲染是各 Spa 项目目前很热衷于解决的一个问题,毕竟针对SEO和首次加载优化 .Net Core SPA 服务器渲染 将分为 两篇: 第一篇 主要分 ...
- LeetCode 160 相交链表
题目: 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], li ...
- jquery.validate.js使用实例
一.常用方式: $('form').validate({ rules: {}, messages: { }, submitHandler: function () {}) ...