|- 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. css的三种样式

    1.行间样式 顾名思义就是直接写在div对里面的样式   2.内部样式 把样式写在一对<style></style>标签对中 这个标签对是放在html页面里面的   3.外联样 ...

  2. (有趣)chrome不同浏览器版本对display:flex和溢出隐藏显示省略符号的bug

    项目中碰到一个十分有趣的情形: 布局要求是这样:右边创建新订单是固定宽度80px,左侧是自适应宽度,溢出隐藏.如下图. 这里布局不用说肯定使用display:flex的.左侧flex:1;右侧widt ...

  3. Android开发2:事件处理及实现简单的对话框(Toast,AlertDialog,Snackbar,TextInputLayout的使用)

    前言 啦啦啦~又要和大家一起学习Android开发啦,博主心里好激动哒~ 在上篇博文中,我们通过线性布局和基础组件的使用,完成了一个简单的学生课外体育积分电子认证系统的界面,本篇博文,将和大家一起熟悉 ...

  4. Android 更新UI的几种方式

    1.Activity的 runOnUiThread textView = (TextView) findViewById( R.id.tv ); new Thread(new Runnable() { ...

  5. 深度技术GHOST WIN7系统32.64位j极速安装版 V2016年

    系统来自系统妈:http://www.xitongma.com 深度技术GHOST win7系统64位j极速安装版 V2016年3月 系统概述 深度技术ghost win7系统64位j极速安装版  版 ...

  6. 初识java之变量、数据类型和运算符(一)

    博友目标: 1.掌握变量的概念 2.引子----会使用常用数据类型 众所周知,每台电脑都有一个内存这么个必不可少的元素,那么到底内存到底是用来干什么的呢?其实啊,计算机内存相当于人类的大脑,计算机在处 ...

  7. 点击ViewGroup时其子控件也变成pressed状态的原因分析及解决办法

    这个问题,当初在分析touch事件处理的时候按理应该分析到的,可是由于我当时觉得这块代码和touch的主题不是那么紧密, 就这么忽略掉了,直到后来在这上面遇到了问题.其实这个现象做Android开发的 ...

  8. svn的使用(转载)

    这里只介绍使用CornerStone来使用SVN. CornerStone是Mac OS X系统下非常好用的一款svn工具,当然还有Versions也是可以用的,但是使用起来不如CornerStone ...

  9. netstat监控大量ESTABLISHED连接与Time_Wait连接问题

    问题描述: 在不考虑系统负载.CPU.内存等情况下,netstat监控大量ESTABLISHED连接与Time_Wait连接. # netstat -n | awk '/^tcp/ {++y[$NF] ...

  10. Spring实现AOP的4种方式

    了解AOP的相关术语:1.通知(Advice):通知定义了切面是什么以及何时使用.描述了切面要完成的工作和何时需要执行这个工作.2.连接点(Joinpoint):程序能够应用通知的一个“时机”,这些“ ...