数据更新操作

在SQL语句之中数据的更新操作一共分为三种:增加(INSERT)、修改(UPDATE)、删除(DELETE)。Statement最大的特点是可以直接执行一个标准的SQL语句。

范例:实现数据的增加处理
增加SQL语法:INSERT INTO 表名称 (字段,字段,…) VALUES(值,值,…);

INSERT INTO news(nid,title,read,price,content,pubdate) VALUES (news_seq.nextval,'MLDN-News',10,9.9,'这个春天很美丽,有雾霾,有沙尘暴,有大雨,有大风,还下大雪',TO_DATE('1988-04-05','yyyy-mm-dd'));
package cn.mldn.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JDBCDemo {
	private static final String DATABASE_DRIVER = "oracle.jdbc.driver.OracleDriver";
	private static final String DATABASE_URL = "jdbc:oracle:thin:@localhost:1521:mldn";
	private static final String DATABASE_USER = "scott";
	private static final String DATABASE_PASSWORD = "tiger";
	public static void main(String[] args) throws Exception{
		String sql = "INSERT INTO news(nid,title,read,price,content,pubdate) VALUES "
		+ " (news_seq.nextval,'MLDN-News',10,9.9, "
		+ " '这个春天很美丽,有雾霾,有沙尘暴,有大雨,有大风,还下大雪',"
		+ " TO_DATE('1988-04-05','yyyy-mm-dd'))";
		Connection conn = null;  //每一个Connection接口对象描述的就是一个用户连接
		Class.forName(DATABASE_DRIVER); //向容器之中加载数据库驱动程序
		conn = DriverManager.getConnection(DATABASE_URL, DATABASE_USER, DATABASE_PASSWORD);
		Statement stmt = conn.createStatement(); // 创建数据库的操作对象
		int count = stmt.executeUpdate(sql); // 返回影响的行数
		System.out.println("更新操作影响的数据行数:" + count);
		conn.close();  //数据库的连接资源有限一定要关闭
	}
}

对于SQL语句而言,由于一般都比较长,所以一定要考虑换行编写,一旦换行了,强烈建议在每个字符串的前后多追加一个空格(避免你们的错误带来的麻烦)。

范例:更新操作,在进行更新操作的时候一般都是做条件性的更新;
更新的SQL语法:UPDATE 表名称 SET 字段=值,… WHERE 更新条件;

UPDATE news SET title='MLDN重大新闻',content='据说四月的最低温度为1度',read=99998 WHERE nid=5;
package cn.mldn.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JDBCDemo {
	private static final String DATABASE_DRIVER = "oracle.jdbc.driver.OracleDriver";
	private static final String DATABASE_URL = "jdbc:oracle:thin:@localhost:1521:mldn";
	private static final String DATABASE_USER = "scott";
	private static final String DATABASE_PASSWORD = "tiger";
	public static void main(String[] args) throws Exception{
		String sql = "UPDATE news SET title='MLDN重大新闻', "
		+ " content='据说四月的最低温度为1度',read=99998 WHERE nid=5";
		Connection conn = null;  //每一个Connection接口对象描述的就是一个用户连接
		Class.forName(DATABASE_DRIVER); //向容器之中加载数据库驱动程序
		conn = DriverManager.getConnection(DATABASE_URL, DATABASE_USER, DATABASE_PASSWORD);
		Statement stmt = conn.createStatement(); // 创建数据库的操作对象
		int count = stmt.executeUpdate(sql); // 返回影响的行数
		System.out.println("更新操作影响的数据行数:" + count);
		conn.close();  //数据库的连接资源有限一定要关闭
	}
}

范例:数据删除
删除语法:DELETE FROM 表名称 WHERE 删除条件(s);

DELETE FROM news WHERE nid IN (11,13,15,17,19) ;
package cn.mldn.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JDBCDemo {
	private static final String DATABASE_DRIVER = "oracle.jdbc.driver.OracleDriver";
	private static final String DATABASE_URL = "jdbc:oracle:thin:@localhost:1521:mldn";
	private static final String DATABASE_USER = "scott";
	private static final String DATABASE_PASSWORD = "tiger";
	public static void main(String[] args) throws Exception{
		String sql = "DELETE FROM news WHERE nid IN (11,13,15,17,19)";
		Connection conn = null;  //每一个Connection接口对象描述的就是一个用户连接
		Class.forName(DATABASE_DRIVER); //向容器之中加载数据库驱动程序
		conn = DriverManager.getConnection(DATABASE_URL, DATABASE_USER, DATABASE_PASSWORD);
		Statement stmt = conn.createStatement(); // 创建数据库的操作对象
		int count = stmt.executeUpdate(sql); // 返回影响的行数
		System.out.println("更新操作影响的数据行数:" + count);
		conn.close();  //数据库的连接资源有限一定要关闭
	}
}

数据修改里面只需要考虑到不同的SQL语句即可,这也是Statement接口的最大特点(直接执行SQL语句)。