|- Statement接口: 用于执行静态的sql语句

    |- int executeUpdate(String sql)  : 执行静态的更新sql语句(DDL,DML)

    |- ResultSet executeQuery(String sql)  :执行的静态的查询sql语句(DQL)

  |-PreparedStatement接口(Statement接口的子类):用于执行预编译sql语句

      |- int executeUpdate() : 执行预编译的更新sql语句(DDL,DML)

      |-ResultSet executeQuery()  : 执行预编译的查询sql语句(DQL)

  代码:(用DDL语句中的创建来举例,其他的DDL语句,除了发送的sql语句不一样之外,都一样)

  

 public class Statement_one {

     // 数据库的信息
// URL
private static String url = "jdbc:mysql://localhost:3306/day1029";
// 用户名和密码
private static String user = "root";
private static String password = "root"; // 执行DDL语句(创建表为例)
private static void DDL() {
// 为了在关闭连接,在这里创建对象
Connection conn = null;
Statement stsm = null; try {
// 创建驱动注册对象
Class.forName("com.mysql.jdbc.Driver"); // 获取连接的数据库对象
/* Connection */conn = DriverManager.getConnection(url, user,
password); // 创建Statement对象
/* Statement */stsm = conn.createStatement(); // 创建要执行的sql语句
String sql = "CREATE TABLE person(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(10),sex VARCHAR(5),age INT,psot VARCHAR(10),email VARCHAR(20),phone INT)"; // 使用Statement发送该DDL语句,返回的时该sql语句所影响的行数,int类
int result = stsm.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}
// 最后关闭连接(后开启的先关闭)
finally {
if (stsm != null) {
try {
stsm.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
}

  代码:用DML的插入数据举例

     private static void DML() {

         Connection conn = null;
Statement stsm = null; try {
// 创建驱动获取对象
Class.forName("com.mysql.jdbc.Driver"); // 获取要连接的数据库对象
conn = DriverManager.getConnection(url, user, password); // 创建Statement对象
stsm = conn.createStatement(); // 准备要执行的sql语言
String sql = "INSERT INTO person (NAME,sex,age) VALUES ('小红','女',20);"; // 执行语句
stsm.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally { if (stsm != null) {
try {
stsm.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}
} } }

  代价:执行DQL

 //DQL(查询数据)
private static void DQL() {
Connection conn = null;
Statement stsm = null; try{
//创建驱动获取对象
Class.forName("com.mysql.jdbc.Driver"); //创建要连接的数据库对象
conn = DriverManager.getConnection(url, user, password); //创建Statement对象
stsm = conn.createStatement(); //准备sql语言
String sql = "SELECT * FROM person;"; //执行sql语言
//返回的是ResultSet,表示数据库结果集的数据表
ResultSet rs = stsm.executeQuery(sql); //打印一行数据,例:打印第二行的数据 //一:移动光标到第二行,具体看API的ResultSet
rs.next();
rs.next();
//根据列名查询
int id = rs.getInt("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
//打印
System.out.println(id+","+name+","+sex); //二:打印所有数据,利用迭代。具体查看API的ResultSet
/* while(rs.next()){
//通过列名来查询,列名的英文字母不分大小写
int id = rs.getInt("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
System.out.println(id+","+name+","+sex); }*/ }

jdbc java数据库连接 3)Statement接口之执行DDL、DML、DQL的更多相关文章

  1. jdbc java数据库连接 3)Statement接口之执行DDL和DML语句的简化

    上一章的代码中,可以发现,jdbc执行DDL和DML有几个步骤都是一样的: 1)执行语句开始时,创建驱动注册对象.获取连接的数据库对象.创建Statement对象 // 创建驱动注册对象 Class. ...

  2. jdbc java数据库连接 2)jdbc接口核心的API

    JDBC接口核心的API java.sql.*   和  javax.sql.*(java2.0以后更新的扩展) |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接 ...

  3. jdbc java数据库连接 8)防止sql注入

    回顾下之前jdbc的开发步骤: 1:建项目,引入数据库驱动包 2:加载驱动 Class.forName(..); 3:获取连接对象 4:创建执行sql语句的stmt对象;  写sql 5:执行sql ...

  4. jdbc java数据库连接 5)CallableStatement 接口

    CallableStatement执行存储过程(也是预编译语言) 首先在sql中执行以下带有输入参数的代码: DELIMITER $ CREATE PROCEDURE pro_findById(IN ...

  5. jdbc java数据库连接 4)PreParedStatement接口 之 区别和例子

    Statement 和 PreparedStatement 的区别: 1)语句不同 PreparedStatement需要预编译以及需要参数 2)由于PreparedStatement有缓存区,所以效 ...

  6. jdbc:java数据库连接

    1.导jar包 四大参数: 1.加载驱动类:Class.forName("com.mysql.jdbc.Driver"); 2.url:jdbc:mysql://localhost ...

  7. jdbc java数据库连接 11)中大文本类型的处理

    1. Jdbc中大文本类型的处理 Oracle中大文本数据类型, Clob    长文本类型   (MySQL中不支持,使用的是text) Blob    二进制类型 MySQL数据库, Text   ...

  8. jdbc java数据库连接 10)批处理

    批处理 很多时候,需要批量执行sql语句! 需求:批量保存信息! 设计: AdminDao Public  void  save(List<Admin list){    // 目前用这种方式 ...

  9. jdbc java数据库连接 6)类路径读取——JdbcUtil的配置文件

    之前的代码中,以下代码很多时候并不是固定的: private static String url = "jdbc:mysql://localhost:3306/day1029?useUnic ...

随机推荐

  1. Python中三目计算符的正确用法及短路逻辑

    今天在看别人代码时看到这样一种写法, 感觉是个挺容易踩到的坑, 搞清楚后写出来备忘. 短路逻辑 Python中进行逻辑运算的时候, 默认采用的是一种叫做短路逻辑的运算规则. 名字是很形象的, 下面直接 ...

  2. Maven学习随笔二——Maven初始配置

    到现在为止,我对maven的理解是,跟svn差不多,帮我们管理项目的工具,到底是不是这样,拭目以待!! 弱弱解释,svn是什么? 简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每 ...

  3. 2015年最佳的12个 CSS 开发工具推荐

    CSS所能做的就是改变网页的布局.排版和调整字间距等,但编写 CSS 并不是一项容易的任务,当你接触新的 CSS3 属性及其各自的浏览器前缀的时候,你会发现很伤脑经.值得庆幸的是一些优秀的开发人员提供 ...

  4. AngularJS Directive 隔离 Scope 数据交互

    什么是隔离 Scope AngularJS 的 directive 默认能共享父 scope 中定义的属性,例如在模版中直接使用父 scope 中的对象和属性.通常使用这种直接共享的方式可以实现一些简 ...

  5. JQuery 实现两列等高并自适应高度

    想要使用 JQuery 实现两列等高并自适应高度,其实也很简单,原理就是取得左右两边的高度,然后判断这个值,把大的值赋给小的就行了.看代码: $(document).ready(function() ...

  6. 今天再给大家带点html5前端开发的干货模板“text/tpl”怎么用 script template怎么用

    text/tpl 顾名思义就是模板,其实和C++模板函数类似的作用,就是利用他生成一个HMTL内容,然后append或者替换html里面 有什么好处,假如后端返回来的数据都是一样的,但是需要生成不同的 ...

  7. Docker dockerfile创建Eclipse镜像初试

    抽空初步阅读了Docker技术入门与实战 [Kindle电子书] http://www.cnblogs.com/2018/p/4600116.html 现在想首先在开发环境下引入统一的环境,由于开发中 ...

  8. iOS之2016面试题三

    1.OC内存管理机制 1).当你使用new,alloc和copy方法创建一个对象时,该对象的保留计数器值为 1.当你不再使用该对象时,你要负责向该对象发送一条release或autorelease消息 ...

  9. JAVA模板方法设计模式(从现实生活角度理解代码原理)

    概述: 定义一个功能的框架(骨架),一部分功能是确定的,一部分功能是不确定的,先把确定的部分实现,把不确定的部分延迟到子类中实现. 实现该模式的关键步骤: 第一步:抽象类,实现模板方法,定义功能(确定 ...

  10. 如何保证Service在后台不被kill

    如何保证Service在后台不被kill 相信很多Android开发者在面试过程中会经常被问到“如何保证Service在后台不被kill”这个问题,总结了下一些大神给的答案. 引用知乎Android ...