Java 表数据的基本操作(增删改查)

概要:

本实例介绍在Java中使用静态SQL语句操作数据库,包括添加、更新、删除和查询等基本操作。

| |目录

技术要点

表数据的基本操作(增删改查)的技术要点如下:

  • Statement类用于执行静态SQL语句并返回它所生成结果的对象。值得注意的是,一个Statement对象只能打开一个ResultSet对象。

  • Statement类的execute(String sql)方法执行给定的SQL语句,它的返回值类型为boolean,表示如果第一个结果为ResultSet对象,则返回true;如果其为更新计数或者不存在任何结果,则返回false。

  • Statement类的executeQuery(String sql)方法用于执行查询SQL语句,返回查询的结果集,一个ResultSet对象。

  • ResultSet的next()方法的作用是将指针从当前位置向下移动一行。它的返回值类型为boolean,表示如果新的当前行不为null,则返回true;否则返回false。此方法常用于while语句中作为判断是否存在数据的依据。

  • ResultSet的getString(String columnName)方法的作用是以字符串的形式返回ResultSet对象的当前行中指定列名的值。

  • Statement类的executeUpdate(String sql)方法用于执行更新SQL语句,包括插入、修改和删除语句,返回一个int值,表示更新的行的计数。

代码实现

package net.xsoftlab.baike;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Statement;
public class Table_Data {
	private static Connection conect;
	private static Statement st;
	public static void main(String[] args) {
		insert();
		query();
		update();
		query();
		delete();
		query();
	}
	public static void insert() {// 插入
		conect = getConnection();// 获取连接
		try {
			String sql = "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)"
					+ " VALUES ('lucy', 27, 'w', 'china','Personnel','3','2000')";// 插入数据的sql语句
			st = (Statement) conect.createStatement();// 创建Statement对象
			int count = st.executeUpdate(sql);// 返回插入数据的个数
			System.out.println("向staff表中插入 " + count + " 条数据");
		} catch (SQLException e) {
			System.out.println("插入数据失败" + e.getMessage());
		}
	}
	public static void update() {// 更新
		conect = getConnection();// 获取连接
		try {
			String sql = "update staff set wage='2500' where name = 'lucy'";// 更新数据的sql语句
			st = (Statement) conect.createStatement();// 创建Statement对象
			int count = st.executeUpdate(sql);// 返回更新数据的个数
			System.out.println("staff表中更新 " + count + " 条数据");
		} catch (SQLException e) {
			System.out.println("更新数据失败");
		}
	}
	public static void query() {// 查询
		conect = getConnection();// 获取连接
		try {
			String sql = "select * from staff";// 查询数据的sql语句
			st = (Statement) conect.createStatement();// 创建Statement对象
			ResultSet rs = st.executeQuery(sql);// 返回查询数据的结果集
			while (rs.next()) {// 判断是否还有下一个数据
				// 根据字段名获取相应的值
				String name = rs.getString("name");
				int age = rs.getInt("age");
				String sex = rs.getString("sex");
				String address = rs.getString("address");
				String depart = rs.getString("depart");
				String worklen = rs.getString("worklen");
				String wage = rs.getString("wage");
				System.out.println(name + " " + age + " " + sex + " " + address
						+ " " + depart + " " + worklen + " " + wage);
			}
			System.out.println("
");
		} catch (SQLException e) {
			System.out.println("查询数据失败");
		}
	}
	public static void delete() {// 删除
		conect = getConnection();// 获取连接
		try {
			String sql = "delete from staff  where name = 'lucy'";// 删除数据的sql语句
			st = (Statement) conect.createStatement();// 创建Statement对象
			int count = st.executeUpdate(sql);// 返回更新数据的个数
			System.out.println("staff表中删除 " + count + " 条数据");
		} catch (SQLException e) {
			System.out.println("删除数据失败");
		}
	}
	public static Connection getConnection() {
		Connection con = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动
			con = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/myuser", "root", "123456");// 创建数据连接
		} catch (Exception e) {
			System.out.println("数据库连接失败");
		}
		return con;
	}
}

程序解读

  1. query方法演示数据库的查询,创建数据库连接Connection和待执行的SQL语句,通过Statement的executeQuery方法执行SQL语句,返回一个ResultSet对象。再调用ResultSet的next()方法,根据字段名将数据取出,并打印在控制台上。在遍历ResultSet时,必须保证与之相关的Statement和Connection对象是活的,即没有被关闭,否则,就不能读取ResultSet中的数据。

    注意

    一个Statement对象同时只能有一个结果集在活动,即使没有调用ResultSet的close方法,只要打开了第二个结果集,就隐含着对上一个结果集的关闭。所以,如果想要同时对多个结果集进行操作,就要创建多个Statement对象,如果不需要同时对多个结果集进行操作,可以使用一个Statement对象,顺序地打开结果集。

  2. insert()方法演示数据库的插入,创建数据库连接Connection和待执行的SQL语句,根据Connection创建Statement对象,再调用Statement的executeUpdate方法执行SQL语句,返回此次被插入的行数。关闭连接。

  3. update()方法演示数据库的更新,创建数据库连接Connection和待执行的SQL语句,根据Connection创建Statement对象,再调用Statement的executeUpdate方法执行SQL语句,返回此次被更新的行数。关闭连接。

  4. delete()方法演示数据库的删除,创建数据库连接Connection和待执行的SQL语句,根据Connection创建Statement对象,再调用Statement的executeUpdate方法执行SQL语句,返回此次被删除的行数。关闭连接。

  5. getConnection()方法封装了数据库的连接方式。如果在程序中需要使用数据库,直接调用此方法即可,方便使用。


评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
  • 全部评论(0)
资料加载中...
已关注 , 取消