用java更改access数据库里面的数据

本文介绍了一种使用JSP连接Access数据库的方法,并详细记录了解决无法更新数据库记录问题的过程。通过对比前后两种实现方式的代码差异,揭示了正确关闭资源的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从上个学期开始,就打算学习用jsp来连接数据库了,想在页面上提交的数据加入到数据库中,并且可以修改数据库。

 

但是后来,数据库连接上了,数据查询了,就是没有数据更改,哎,郁闷啊,自己一个人试了很久,就是不行。

 

终于忍不住,求助了一个同学,才解决了!心情好,第一篇文章就写这个了,呵呵

 

下面是两段代码


import java.sql.*;
import java.io.*;
public class DBUtil
{
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:test";   //数据源,test,驱动是access 数据库驱动
Connection conn = null; //Connection对象代表与数据库的连接。
ResultSet rs = null;

public DBUtil()
{
try
{
Class.forName(sDBDriver);  
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("testJDBC(): " + e.getMessage());
}
}

public ResultSet executeQuery(String testJDBC)
{
rs = null;
try
{
conn = DriverManager.getConnection(sConnStr); //DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。
Statement stmt = conn.createStatement(); // Statement 对象用于将 SQL 语句发送到数据库中。
rs = stmt.executeQuery(testJDBC); //testJDBC,这是什么?见上面的参数
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery: " + ex.getMessage());
}
return rs; 
}

public boolean exesql(String sqlstr)  //执行无返回的sql语句
{
  try
   {
     conn = DriverManager.getConnection(sConnStr);
     Statement stmt = conn.createStatement();
    stmt.executeUpdate(sqlstr);   //执行给定的 SQL 语句,该语句可能返回多个结果。
    System.out.println("OK!");   //如果执行了上面的语句,就打印OK!
       return true;
   }
   catch(Exception e)
   {    
    System.out.println(e.toString());
    return false;
   }

}


public static void main(String[] args) throws SQLException ,IOException
{
    DBUtil dbu=new DBUtil();
 
    String str_name;
    String str_gender;
   
   //---------------------------------------------------------   这部分对数据库进行查询,有结果的,数据库连接上了。
    ResultSet rs = dbu.executeQuery("select * from testinfo"); 
    while(rs.next())
    {
        str_name = rs.getString("name"); 
        str_gender= rs.getString("gender");
        System.out.println("从数据库中取出数据:::");
        System.out.println("name is:"+str_name);
        System.out.println("gender is:"+str_gender);
    } 
  //---------------------------------------------------------------- 
   
  
    //-----------------------------------------------------下面的语句执行了,但是表里面没有改动啊 !
     String genderone="female";
     String newname="jack";
     String ssql="update testinfo set gender='"+genderone+"' where name='"+newname+"'";  //没结果
     dbu.exesql(ssql);   //函数体里面都OK!了,可是数据库里面的数据没有变动,是为什么呢?
    //-----------------------------------------------------
   
  

}

}

 

 

下面是修改了后的代码,可以通过了,哎,就是两句话而已

 


import java.sql.*;
import java.io.*;
public class DBUtil
{
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:test";   //数据源,test,驱动是access 数据库驱动
Connection conn = null; //Connection对象代表与数据库的连接。
ResultSet rs = null;

public DBUtil()
{
try
{
Class.forName(sDBDriver);  
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("testJDBC(): " + e.getMessage());
}
}

public ResultSet executeQuery(String testJDBC)
{
rs = null;
try
{
conn = DriverManager.getConnection(sConnStr); //DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。
Statement stmt = conn.createStatement(); // Statement 对象用于将 SQL 语句发送到数据库中。
rs = stmt.executeQuery(testJDBC); //testJDBC,这是什么?见上面的参数
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery: " + ex.getMessage());
}
return rs; 
}

public boolean exesql(String sqlstr)  //执行无返回的sql语句
{
  try
   {
     conn = DriverManager.getConnection(sConnStr);
     Statement stmt = conn.createStatement();
    stmt.executeUpdate(sqlstr);   //执行给定的 SQL 语句,该语句可能返回多个结果。
    System.out.println("OK!");   //如果执行了上面的语句,就打印OK!
    stmt.close();
   conn.close();

    return true;
   }
   catch(Exception e)
   {    
    System.out.println(e.toString());
    return false;
   }

}


public static void main(String[] args) throws SQLException ,IOException
{
    DBUtil dbu=new DBUtil();
 
    String str_name;
    String str_gender;
   
   //---------------------------------------------------------   这部分对数据库进行查询,有结果的,数据库连接上了。
    ResultSet rs = dbu.executeQuery("select * from testinfo"); 
    while(rs.next())
    {
        str_name = rs.getString("name"); 
        str_gender= rs.getString("gender");
        System.out.println("从数据库中取出数据:::");
        System.out.println("name is:"+str_name);
        System.out.println("gender is:"+str_gender);
    } 
  //---------------------------------------------------------------- 
   
  
    //-----------------------------------------------------下面的语句执行了,但是表里面没有改动啊 !
     String genderone="female";
     String newname="jack";
     String ssql="update testinfo set gender='"+genderone+"' where name='"+newname+"'";  //没结果
     dbu.exesql(ssql);   //函数体里面都OK!了,可是数据库里面的数据没有变动,是为什么呢?
    //-----------------------------------------------------
   
  

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值