上次我们已经谈到如何利用JDBC连接MySQL数据库,详见基于JDBC的mysql数据库连接。今天我们在此基础上讨论对MySQL数据库的增、删、改、查操作。
首先,在MySql数据库中新建一张表studenttable,就建在test数据库下。
建立studenttable的sql指令如下:

CREATE TABLE 'studenttable' (
   'UserName' char(12) NOT NULL COMMENT '用户名',
   'StudentID' int(12) NOT NULL,
   'ClassName' char(12) NOT NULL,
   'Score' float NOT NULL,
   PRIMARY KEY ('StudentID')
 )

可以看到,创建的基本表studenttable包含4条属性,分别是UserName、StudentID、ClassName和Score。这是一个最基本的学生成绩表。在这张表中预先添加如下数据,供后续操作使用:

mysql 最新修改记录 mysql数据库修改记录_sql


上述建立基本表的工作完成后,在正式编程对数据库操作前,需要先对上述基本表进行建模–用一个类来表示基本表的一些属性,在这里我用的是User类,包含4个属性:UserName、StudentID、ClassName和Score分别与基本表属性相对应。

User类建立如下:

package JDBC_test;

public class User {

	 private String UserName;//用户名
	 private String ClassName;//课程名
	 private float Score;//课程分数
	 private int StudentID;//学号

	public User(String userName, String className, float score, int studentID) {
		super();
		UserName = userName;
		ClassName = className;
		Score = score;
		StudentID = studentID;
	}

	public String getUserName() {
		return UserName;
	}

	public String getClassName() {
		return ClassName;
	}

	public float getScore() {
		return Score;
	}

	public int getStudentID() {
		return StudentID;
	}
	
	public void printf() {
		System.out.println("序号为"+this.StudentID+"的学生"+this.UserName+"的"+this.ClassName+"成绩是:"+this.Score);
	}
}

上述准备工作都完成后,就可已进行编程对基本表进行操作了。
1.数据增加的sql结构化语言如下:

INSERT INTO studenttable (UserName,StudentID,ClassName,Score)
          VALUES('user.getUserName()','user.getStudentID()','user.getClassName()','user.getScore()')

2.数据删除的sql结构化语言如下:

DELETE FROM studenttable WHERE UserName = 'username'

3.数据修改的sql结构化语言如下:

UPDATE studenttable SET Score = 30, ClassName = '英语1'         
      WHERE UserName = 'username'

4.数据查询的sql结构化语言如下:

SELECT * FROM studenttable WHERE UserName ='username'

利用上述sql结构化查询语句,将其内嵌到java程序中即可完成对数据库的操作。
具体代码实现如下所示:

package JDBC_test;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class Operate_DB {
	
	/**
	 * 查询功能(按名字查找)
	 * @param con
	 * @param username
	 * @throws Exception
	 */
	public void ReadData(Connection con, String username)throws Exception {
		User user = null;
		boolean flag = true;
		Statement stmt = con.createStatement();
		String sql = "SELECT * FROM studenttable WHERE UserName ='"+username+"'";
		ResultSet rst = stmt.executeQuery(sql);
		
		while(rst.next()) {
			flag = false;
			user = new User(rst.getString("UserName"), rst.getString("ClassName"),
					rst.getFloat("Score"),rst.getInt("StudentID"));
			user.printf();
		}
		if(flag) 
			System.out.println("此表中不存在名称为"+username+"的记录!");
		stmt.close();
		rst.close();
	}
	
	/**
	 * 查询功能(按学号查找)
	 * @param con
	 * @param studentid
	 * @throws Exception
	 */
	public void ReadData(Connection con, int studentid)throws Exception {
		User user = null;
		boolean flag = true;
		Statement stmt = con.createStatement();
		String sql = "SELECT * FROM studenttable WHERE StudentID ='"+studentid+"'";
		ResultSet rst = stmt.executeQuery(sql);
		while(rst.next()) {
			flag = false;
			user = new User(rst.getString("UserName"), rst.getString("ClassName"),
					rst.getFloat("Score"),rst.getInt("StudentID"));
			user.printf();
		}
		if(flag) 
			System.out.println("此表中不存在学号为"+studentid+"的记录!");
		stmt.close();
		rst.close();
	}
	
	/**
	 * 添加功能
	 * @param con
	 * @param user
	 * @throws Exception
	 */
	public void InertData(Connection con, User user)throws Exception {
		Statement stmt = con.createStatement();
		String sql = "INSERT INTO studenttable (UserName,StudentID,ClassName,Score)"
				+ "VALUES('"+user.getUserName()+"','"+user.getStudentID()+"','"+user.getClassName()+"','"
				+user.getScore()+"')";
		stmt.executeUpdate(sql);
		System.out.println("新增的一条记录为:");
		user.printf();
		stmt.close();
	}
	
	/**
	 * 删除功能(按名称删除)
	 * @param con
	 * @param user
	 */
	public void DeleteData(Connection con, String username)throws Exception {
		Statement stmt = con.createStatement();
		String sql = "DELETE FROM studenttable WHERE UserName = '"+username+"'";
		
		int cout = stmt.executeUpdate(sql);
		if(cout == 0)
			System.out.println("此表中不存在名称为"+username+"的记录!删除失败!");
		stmt.close();
	}
	
	/**
	 * 删除功能(按学号删除)
	 * @param con
	 * @param studentid
	 * @throws Exception
	 */
	public void DeleteData(Connection con,int studentid)throws Exception {
		Statement stmt = con.createStatement();
		String sql = "DELETE FROM studenttable WHERE StudentID = '"+studentid+"'";
		
		int cout = stmt.executeUpdate(sql);
		if(cout == 0)
			System.out.println("此表中不存在学号为"+studentid+"的记录!删除失败!");
		else
			System.out.println("删除成功!");
		stmt.close();
		
	}
	
	/**
	 * 修改功能(按学号修改)
	 * @param con
	 * @param studentid
	 * @throws Exception
	 */
	public void UpdateData(Connection con,int studentid)throws Exception {
		Statement stmt = con.createStatement();
		String sql = "UPDATE studenttable SET Score = 100, ClassName = '英语' "
				+ "WHERE StudentID = '"+studentid+"'";
		int cout = stmt.executeUpdate(sql);
		if(cout == 0)
			System.out.println("此表中不存在学号为"+studentid+"的记录!修改失败!");
		else
			System.out.println("修改成功!");
		stmt.close();
	}
	
	/**
	 * 修改功能(按名称修改)
	 * @param con
	 * @param studentid
	 * @throws Exception
	 */
	public void UpdateData(Connection con,String username)throws Exception {
		Statement stmt = con.createStatement();
		String sql = "UPDATE studenttable SET Score = 30, ClassName = '英语1' "
				+ "WHERE UserName = '"+username+"'";
		int cout = stmt.executeUpdate(sql);
		if(cout == 0)
			System.out.println("此表中不存在名称为"+username+"的记录!修改失败!");
		else
			System.out.println("修改成功!");
		stmt.close();
	}
	
	public static void main(String[] args)throws Exception {
		DbUtil dbutil = new DbUtil();
		Connection con = dbutil.getcon();//获取数据库连接
		Operate_DB test = new Operate_DB();
		System.out.println("数据库操作--数据增加");
		test.InertData(con, new User("brooke", "爱情心理学", 99, 10));
		System.out.println("数据库操作--数据删除");
		test.DeleteData(con, 10);
		System.out.println("数据库操作--数据修改");
		test.UpdateData(con, "小华");
		System.out.println("数据库操作--数据查询");
		test.ReadData(con, "小华");
	}
}

上述代码运行结果如下:

mysql 最新修改记录 mysql数据库修改记录_User_02


对于数据库的操作还有更加深入的,欢迎大家给小编推荐新的数据库使用技巧,也欢迎大家对程序提出疑问或者建议。