|- 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. jqgrid学习笔记(转载)

    jqgrid中文帮助文档网址:http://blog.mn886.net/jqGrid/ jqgrid:用来做什么? jqgrid是web端前台表格控件,用它可以轻松将数据格式化显示,前后台用过aja ...

  2. nginx concat模块配置 页面返回400 bad request

    在1.4.x版本的nginx没有发现这个问题,但是在1.5.x版本就遇到了这个问题 由于Nginx在新版本中,使用了标准的 MIME-Type:application/javascript.而在ngi ...

  3. Tomcat问题,不能正确访问http://localhost:8080/

    最近在学Struts2框架部分的内容,但是eclipse中配置tomcat遇到了很大的问题,当辛辛苦苦的配置完了之后,竟让连小猫的首页都不能访问,http://localhost:8080/输入了之后 ...

  4. http cancelled状态与ajax 超时

    在最近一周,我们的前端在测试某些批量超过的某个步骤时,发现请求好像发出来,但是后台状态没有变化,说是最近才出现的问题,以前一直都是正常的,两天连续出现两次之后,来找笔者,首先检查了下中间件的日志,发现 ...

  5. jquery.datatables中文使用说明

    http://www.cnblogs.com/taizhouxiaoba/archive/2009/03/17/1414426.html 本文共四部分:官网 | 基本使用|遇到的问题|属性表 一:官方 ...

  6. 在网页布局中合理使用inline formating context(IFC)

    引子:给大家出一个小小的考题,如何使用css来实现类似下面的在指定区域内,内容自适应的垂直居中.

  7. iOS 开源项目

    在 Github 上 Star 太多了,有时候很难找到自己想要的开源库,所以在此记录下来.便于自己开发使用,也顺便分享给大家. 动画 awesome-ios-animation收集了iOS平台下比较主 ...

  8. SharePoint 2013 状态机工作流之日常报销示例

    简单介绍下状态机工作流,状态机工作流提供了一系列的状态.工作流从初始状态开始,到终止状态结束.两个状态之间定义行为进行过渡.通常情况下,状态机工作流对事件作出反应,事件的发生将会使状态发生改变. 1. ...

  9. Android+PHP+MYSQL把数据库中的数据显示在Android界面上

    俗话说,好记性不如烂笔头.今天终于体会其中的道理了.昨天写好的代码不知道为何找不到了.所以今天我一定得抽出一点时间把我的代码保存起来,以防我的代码再没有了. 还是先上图片. 这个界面是用ListVie ...

  10. javascript 实现des解密加密

    //Paul Tero, July 2001 //http://www.tero.co.uk/des/ // //Optimised for performance with large blocks ...