修改数据表记录也有3种方案。
一.使用Statement对象
实现修改数据表记录的SQL语句的语法是:
update表名 set 字段名1 = 字段值1,字段名2 = 字段值2,……where特定条件
例如:
update ksInfo set 姓名 = ‘张小卫’where 姓名 = ‘张大卫’
先创建一个SQL语句,然砶调用Statement对象的executeUpdate()方法。例如,
sql = “update ksInfo set 姓名 = ‘”+txtName.getText();
sql = sql + “,成绩=”+txtScore.getText();
sql = sql +”,地址=’”+txtAddr.getText();
sql= sql+”’,,简历=’”+txtResume.getText()+”’where 考号=”+txtNo.getText();
stmt.executeUpdate(sql);
二.使用ResultSet对象
先建立ResultSet对象,然后直接设定记录的字段值,修改数据表的记录。例如,
String sql = “select * from ksInfo where 姓名=’张大卫’”;//生成SQL语句
ResultSet rs = stmt.executeQuery(sql);//获取数据表结果集
if(rs.next()){
rs.updateString(2,’张小卫’);
try{rs.updateRow();}catch(Exception e){}
}
三.使用PrepareStatement对象
创建SQL语句时,暂时用参数?表示值,然后由SQL语句对象生成PrepareStatement对象,接着通过设定实际参数实现记录的更新。示意代码:
sql = “update ksInfo set 姓名=? where 姓名 = ‘张大卫’;
PrepareStatement pStmt = connect.prepareStatement(sql);
pStmt.setString(2,’张小卫’);//向名字字段填入数据
pStmt.executeUpdate();
总结:
一般过程:
(1) 调用Class.forName()方法加载驱动程序。
(2) 调用DriverManager对象的getConnection()方法,获得一个Connection对象。
(3) 创建一个Statement对象,准备一个SQL语句,这个SQL语句可以是Statement对象(立即执行的的语句)、PreparedStatement语句(预编译的语句)或CallableStatement对象(存储过程调用的语句)。
(4) 调用excuteQuery()等方法执行SQL语句,并将结果保存在ResultSet对象;或者调用executeUpdate()等方法执行SQL语句,不返回ResultSet对象的结果。
(5)对返回的ResultSet对象进行显示等相当的处理。
(6)释放资源。
1. 连接数据库
(1) 下载Mysql连接驱动
网址: http://dev.mysql.com/downloads/connector/j/ ,下载后放在F:\博士科研资料\数据库学习\mysql相关程序文件中,解压。
(2) 加载JDBC驱动
操作方法:在Eclipse中,选中相应的工程,点击Project-Properties中的Java Build Path,在Libraries中增加mysql-connector-java-5.1.21-bin.jar,点OK。
(3) 建一个简单的数据库如下:

import java.sql.*;
public class GetConnection {
public static void main(String[] args){
try{
//调用Class.forName()方法加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
System.out.println("成功加载MySQL驱动!");
}catch(ClassNotFoundException e1){
System.out.println("找不到MySQL驱动!");
e1.printStackTrace();
}
String url="jdbc:mysql://localhost:3306/mysql"; //JDBC的URL
//调用DriverManager对象的getConnection()方法,获得一个Connection对象
Connection conn;
try {
conn = DriverManager.getConnection(url, "root","");
//创建一个Statement对象
Statement stmt = conn.createStatement(); //创建Statement对象
System.out.print("成功连接到数据库!");
stmt.close();
conn.close();
} catch (SQLException e){
e.printStackTrace();
}
}
}2、修改和删除数据
//修改删除数据
import java.sql.*;
public class UpdateDeleteDemo {
public static void main(String[] args)throws Exception{
try{
//调用Class.forName()方法加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
System.out.println("成功加载MySQL驱动!");
String url="jdbc:mysql://localhost:3306/aniu"; //JDBC的URL
Connection conn;
conn = DriverManager.getConnection(url, "root","");
Statement stmt = conn.createStatement(); //创建Statement对象
System.out.println("成功连接到数据库!");
//查询数据的代码
String sql = "select * from stu"; //要执行的SQL
ResultSet rs = stmt.executeQuery(sql);//创建数据对象
System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄");
while (rs.next()){
System.out.print(rs.getInt(1) + "\t");
System.out.print(rs.getString(2) + "\t");
System.out.print(rs.getInt(3) + "\t");
System.out.println();
}
//修改数据的代码
String sql2 = "update stu set name=? where number=?";
PreparedStatement pst = conn.prepareStatement(sql2);
pst.setString(1,"8888");
pst.setInt(2,198);
pst.executeUpdate();
//删除数据的代码
String sql3 = "delete from stu where number=?";
pst = conn.prepareStatement(sql3);
pst.setInt(1,701);
pst.executeUpdate();
ResultSet rs2 = stmt.executeQuery(sql);//创建数据对象
System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄");
while (rs.next()){
System.out.print(rs2.getInt(1) + "\t");
System.out.print(rs2.getString(2) + "\t");
System.out.print(rs2.getInt(3) + "\t");
System.out.println();
}
rs.close();
stmt.close();
conn.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
