注:这次的博客是接着上次的写的续写,如有不懂,请读者观看上篇博客
参照上一篇博客链接CSDN,连接好数据库后,先定义一个statement型变量,例如statement sql;
,接着,再定义一个String类变量,存放操纵数据库的语句。例如,删除一个数:String s1="delete from st where sno='123'";接着创造一个对象sql=con.createstatement();用来调用s1。sql.excuteUpdate(s1);这里的s1也可以直接写进excuteUpdate(),即可以写成sql.excuteUpdate(String s1="delete from st where sno='123'");
增,删,改的语句都是sql.excuteUpdate("数据库操作语句");查的语句是sql.excuteQuery("查询语句")
上一篇博客的代码基本不变,就在第三个try语句中加入增删改查代码做了测试
首先,介绍一下ResultSet
在SQL中,ResultSet是一个Java对象,它维护了一个指向数据库结果集的指针。ResultSet对象通过执行SQL查询从数据库中检索数据,并将其存储在内存中,以便Java应用程序可以使用它。ResultSet对象提供了一种访问和处理结果集数据的方法,包括检索和更新数据。以下是一个简单的Java代码示例,演示如何使用ResultSet对象从数据库中检索数据:
// 创建一个Statement对象
Statement st = conn.createStatement();
// 执行SQL查询,并将结果存储在ResultSet对象中
ResultSet rs = st.executeQuery("SELECT * FROM mytable");
// 遍历ResultSet对象,并处理结果集数据
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
double price = rs.getDouble("price");
// 处理结果集数据
}
```
在上面的代码中,我们首先创建了一个Statement对象,然后使用它执行SQL查询,并将结果存储在ResultSet对象中。接下来,我们使用while循环遍历ResultSet对象,并使用rs.getInt()、rs.getString()和rs.getDouble()等方法检索结果集数据。最后,我们可以在循环中处理结果集数据。
查询语句代码如下:(其中 ResultSet rs;在上一篇博客中已出现了)
rs=sql.executeQuery("SELECT * FROM st"); //查询数据库w中的st表
while(rs.next()) {
String number=rs.getString(1);
String name=rs.getString(2);
int sage=rs.getInt(3);
System.out.printf("%s\t",number);
System.out.printf("%s\t",name);
System.out.printf("%d\t",sage);
System.out.println(" ");
}
1.向st表中增加年龄为21,学号为“124”名字叫李四的同学(增)
String S1="insert into st values ('李四','124',21)";
sql.executeUpdate(S1);
运行结果如下:
数据库表中变化如下:
2.再从st表中删除李四(删)
String S2="delete from st where sno='124'";//删
sql.executeUpdate(S2);
运行结果如下:
数据库中变化如下:
3.再将张三的名字改为李四
String S3="update st set sname='李四' where sno='123'";
sql.executeUpdate(S3);
运行结果如下:
数据库中变化如下:
附录:(参照)数据库的基本增删改查语句
增:insert into 表名 values(按照创造表时的属性顺序插入值),有不想插的非主属性可以用null代替。
删:delete from 表名 where(限制条件)
改:update 表名 set 列名(属性名)=值 where(限制条件)
查:select 属性 from 表名 where(限制条件)
select* from 表名-----查询表中全部元组
下面是我的源文件
import java.sql.*;
public class Example11_1 {
public static void main(String args[]) {
Connection con=null;
Statement sql;
ResultSet rs;
try{
System.out.println("驱动成功");
Class.forName("org.mariadb.jdbc.Driver"); //加载JDBC_MySQL驱动
}
catch(Exception e){System.out.println("驱动失败");}
String uri = "jdbc:mariadb://localhost:3306/w";//数据库w
String user ="root";
String password ="123456";
try{ System.out.println("连接成功");
con = DriverManager.getConnection(uri,user,password);
//连接代码
}
catch(SQLException e){System.out.println("连接失败"); }
try {
/* String S1="insert into st values ('李四','124',21)";
String S2="delete from st where sno='124'";//删*/
String S3="update st set sname='李四' where sno='123'";//改*/
sql=con.createStatement();
/* sql.executeUpdate(S1);
sql.executeUpdate(S2);*/
sql.executeUpdate(S3);
rs=sql.executeQuery("SELECT * FROM st"); //查询数据库w中的st表
while(rs.next()) {
String number=rs.getString(1);
String name=rs.getString(2);
int sage=rs.getInt(3);
System.out.printf("%s\t",number);
System.out.printf("%s\t",name);
System.out.printf("%d\t",sage);
System.out.println(" ");
}
con.close();
}
catch(SQLException e) {
System.out.println(e);
}
}
}