集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:400-111-8989  |   联系客服   |
当前位置:主页 > 培训课程 > Java >

[成都java培训机构哪家好]数据库删除数据以及编译预处理

发布者: 成都达内     浏览次数:     发布时间:2020-09-15 11:04:12

[成都java培训机构哪家好]数据库删除数据以及编译预处理,方法:(1)利用Statement实例执行静态DELETE语句完成;(2)利用PreparedStatement实例通过执行动态DELETE语句完成;(3)利用CallableStatement实例通...

  一、删除数据

  DELETE语句如下

  DELETE FROM <表名> WHERE <条件表达式>

  方法:(1)利用Statement实例执行静态DELETE语句完成;(2)利用PreparedStatement实例通过执行动态DELETE语句完成;(3)利用CallableStatement实例通过执行存储过程完成。

  第一种方式:

  String sql = "delete from tb_record where date<'2017-2-14'";

  statement.executeUpdate(sql);

  第二种方式:

  String sql = "delete from tb_record where date

  PreparedStatement prpdStmt = connection.preparedStatement(sql);

  prpdStmt.setString(1,'2017-2-14');//为日期型参数赋值

  prpdStmt.executeUpdate();

  注意点:当前未使用java.sql.Date,所以方法setString(int parameterIndex,String x),如果使用了java.sql.Date,那么使用方法setDate(int parameterIndex,java.sql.Date date)

  第三种方式:

  String sql = "{call pro_record_delete_by_date(?)}";

  CallableStatement cablStmt = conneciton.prepareCall(call);

  cablStmt.setString(1,"2017-2-14");

  cablStmt.executeUpdate();

  下面我们通过一个实例来演示代码

  package com.bjpowernode.java_learning;

  import java.sql.Connection;

  import java.sql.DriverManager;

  import java.sql.SQLException;

  import java.sql.Statement;

  public class D138_1_deleteSQL {

  private static final String URL = "jdbc:Access:///e:/xsgl.mdb";

  static {

  try {

  Class.forName("com.hxtt.sql.access.AccessDriver");

  }catch(ClassNotFoundException e) {

  e.printStackTrace();

  }

  }

  public static void main(String args) {

  try {

  Connection conn = DriverManager.getConnection(URL);

  Statement statement = conn.createStatement();

  String sql = "delete from tb_record where Salary<1000";

  statement.executeUpdate(sql);

  statement.close();

  conn.close();

  }catch(SQLException e) {

  e.printStackTrace();

  }

  }

  }

  下面通过PreparedStatement实例一次执行多条DELETE语句

  package com.bjpowernode.java_learning;

  import java.sql.Connection;

  import java.sql.DriverManager;

  import java.sql.PreparedStatement;

  import java.sql.SQLException;

  import java.sql.Statement;

  public class D138_2_PreparedStatementDelete {

  private static final String URL = "jdbc:Access:///e:/xsgl.mdb";

  static {

  try {

  Class.forName("com.hxtt.sql.access.AccessDriver");

  }catch(ClassNotFoundException e) {

  e.printStackTrace();

  }

  }

  public static void main(String args) {

  try {

  Connection conn = DriverManager.getConnection(URL);

  String[] names = {"部门经理","会计"};

  String sql = "delete from tb_record where duty=?";

  PreparedStatement prpdStmt = conn.prepareStatement(sql);

  prpdStmt.clearBatch();

  for(int i=0;i

  prpdStmt.setString(1,names[i]);

  prpdStmt.addBatch();

  }

  prpdStmt.executeBatch();

  prpdStmt.close();

  conn.close();

  }catch(SQLException e) {

  e.printStackTrace();

  }

  }

  }

  二、编译预处理

  PreparedStatement始于编译预处理有关的类,是Statement的一个子类,它与Statement类的一个重要区别是:用Statement定义的语句是一个功能明确而具体的语句,而用PraparedStatement类定义的SQL语句 中则包含一个或者多个?占位符,他们对应多个IN参数,带占位符的SQL语句可以被编译,而在后续执行过程中,这些占位符需要使用set方法设置为具体的IN参数值,再将这些语句发送到数据库获得执行。

  给出若干编译预处理语句实例说明PreparedStatement的用法

  (1)创建对象

  PraparedStatement pstmt = conn.prapareStatement("update tablel set=? where y=?");

  对象pstmt中包含了语句"update tablel set x=? where y=?",该语句被发送到DBMS进行编译预处理,为执行做准备

  (2)为每个IN参数设定参数值,即每个占位符?对应一个参数值。设定参数值是通过调用setXxx方法实现的,其中Xxx是与参数相对应的类型,加入上面例子中的参数类型为long,则用下面的代码为参数设定值。

  pstmt.setLong(1,123456789);

  pstmt.setLong(2,987654321);

  这里的1,2是与占位符从左到有的次序相对应的序号,他们不是从0开始计数。

  (3)执行语句

  Pstmt.executeUpdate();

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:400-111-8989

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:400-111-8989

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:400-111-8989

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:400-111-8989

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:400-111-8989

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:400-111-8989

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:400-111-8989

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56 蜀ICP备18021046号-3