Java语言实现对MySql数据库中数据的增删改查操作的代码
简单说操作的步骤:
1.连接数据库
2.将sql语句发送到数据库
3.执行sql语句
这里举个例子:
在一个数据库中有个students表,表中有学号(id),姓名(name),性别(sex),地址(address),电话(phone),专业(dept)。
这里把这个表写成一个学生信息类(info_student)
(请先确保看了例子说明,不然代码有的地方可能看不明白)
要实现操纵我们首先得连接数据库,因为每个操作都要进行连接操作,所以我们直接把连接的操作封装在一个类中,需要连接的时候直接调用可。
数据库连接类:
import java.sql.connection; import java.sql.drivermanager; public class db_helper { public static connection connect = null; static { try { class.forname("com.mysql.jdbc.driver"); // 加载mysql jdbc驱动程序 // 观察以下2个语句的差别, // connect = // drivermanager.getconnection("jdbc:mysql://localhost:3306/students", "root", ""); connect = drivermanager.getconnection( "jdbc:mysql://localhost:3306/students?useunicode=true&characterencoding=utf-8", "root", ""); system.out.println("success loading mysql driver!"); } catch (exception e) { system.out.print("error loading mysql driver!"); e.printstacktrace(); } } public static connection getconnection() { return connect; } }
数据库已经连接了,那么接下来就是要发送sql语句和执行语句。
发送语句用到了preparedstatement对象和connection对象的操作preparestatement()
执行语句用到preparedstatement对象的操作execute()
提示:以下是一些对象的说明,可以先看代码,遇到的时候再回来看。
************************
preparedstatement
表示预编译的 sql 语句的对象。
sql 语句被预编译并存储在 preparedstatement 对象中。然后可以使用此对象多次高效地执行该语句。
*************************
connection
与特定数据库的连接(会话)。在连接上下文中执行 sql 语句并返回结果。
connection 对象的数据库能够提供描述其表、所支持的 sql 语法、存储过程、此连接功能等等的信息。
**********************
以下代码是要实现在数据库中实现学生信息的增删改查操作。
一、增
public void add(info_student student) throws sqlexception{ // 与特定数据库的连接(会话)。 connection conn = (connection) db_helper.getconnection(); string sql = "insert into student(sno,sname,ssex,saddress,sphone,sdept) values(?,?,?,?,?,?)"; // 创建一个 preparedstatement 对象来将参数化的 sql 语句发送到数据库。 preparedstatement ptmt = (preparedstatement) conn.preparestatement(sql); /* * void setbigdecimal(int parameterindex,bigdecimal x)throws sqlexception * 将指定参数设置为给定 java string 值。在将此值发送给数据库时,驱动程序将它转换成一个 sql varchar * 或 longvarchar 值(取决于该参数相对于驱动程序在 varchar 值上的限制的大小)。 */ ptmt.setstring(1, student.getid()); ptmt.setstring(2, student.getname()); ptmt.setstring(3, student.getsex()); ptmt.setstring(4, student.getaddress()); ptmt.setstring(5, student.getphone()); ptmt.setstring(6, student.getdept()); // 在此 preparedstatement 对象中执行 sql 语句 ptmt.execute(); }
二、删
public void delete(string id) throws sqlexception{ connection conn = (connection) db_helper.getconnection(); string sql = "delete from student where sno=?"; preparedstatement ptmt = (preparedstatement) conn.preparestatement(sql); ptmt.setstring(1, id); ptmt.execute(); }
三、改
public void update(info_student student) throws sqlexception{ connection conn = (connection) db_helper.getconnection(); string sql = "update student set sname=?,ssex=?,saddress=?,sphone=?,sdept=? where sno=?"; preparedstatement ptmt = (preparedstatement) conn.preparestatement(sql); ptmt.setstring(1, student.getname()); ptmt.setstring(2, student.getsex()); ptmt.setstring(3, student.getaddress()); ptmt.setstring(4, student.getphone()); ptmt.setstring(5, student.getdept()); ptmt.setstring(6, student.getid()); ptmt.execute(); }
四、查
public info_student search(string id) throws sqlexception{ info_student student = null; connection conn = (connection) db_helper.getconnection(); string sql = "select * from student where sno=?"; preparedstatement ptmt = (preparedstatement) conn.preparestatement(sql); ptmt.setstring(1, id); /* * resultset executequery()throws sqlexception * 在此 preparedstatement 对象中执行 sql 查询,并返回该查询生成的 resultset 对象。 */ /* * public interface resultset extends wrapper * 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。 resultset 对象具有指向其当前数据行的光标。 * 最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 resultset 对象没有下一行时 * 返回 false,所以可以在 while 循环中使用它来迭代结果集。 * */ resultset rs = ptmt.executequery(); /* * boolean next()throws sqlexception * 将光标从当前位置向前移一行。 * resultset 光标最初位于第一行之前; * 第一次调用 next 方法使第一行成为当前行; * 第二次调用使第二行成为当前行,依此类推。 */ while(rs.next()){ student = new info_student(); student.setid(rs.getstring("sno")); student.setname(rs.getstring("sname")); student.setsex(rs.getstring("ssex")); student.setaddress(rs.getstring("saddress")); student.setphone(rs.getstring("sphone")); student.setdept(rs.getstring("sdept")); } return student; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Java语言实现对MySql数据库中数据的增删改查操作的代码
-
用java实现对MySql数据库中数据的读取、插入、修改和删除
-
用PHP向数据库中实现简单的增删改查(纯代码,待完善),php增删_PHP教程
-
php中操作memcached缓存进行增删改查数据的实现代码,phpmemcached_PHP教程
-
用PHP向数据库中实现简单的增删改查(纯代码,待完善),php增删
-
php中操作memcached缓存进行增删改查数据的实现代码,phpmemcached
-
php中操作memcached缓存进行增删改查数据的实现代码
-
php中操作memcached缓存进行增删改查数据的实现代码
-
在golang中操作mysql数据库的实现代码
-
自写的利用PDO对mysql数据库增删改查操作类