在数据集中插入、删除、修改数据

1插入数据
mport java.sql.*;

public class InsertRow
{
	  public static void main(String[] args)
    {
    	  Connection conn=null;
        Statement state=null;
        try
        {
        	  Class.forName("org.apache.derby.jdbc.ClientDriver");
            conn=DriverManager.getConnection("jdbc:derby://localhost:1527/NetworkDB;create=true");    //用的是jdk自带的数据库需derby驱动
            state=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  //必须要ResultSet.CONCUR_UPDATABLE
            ResultSet rs=state.executeQuery("select id, name from foo");
            rs.moveToInsertRow();   //将指针移至可以插入记录的地方
            rs.updateInt(1,2);      //修改当前记录指定的第一个字段的值
            rs.updateString(2,"Mao Zedong");   //
            rs.insertRow();          //将当前记录插入数据库
            System.out.println("成功插入记录!");
        }
        catch(Exception e)
        {
        	  e.printStackTrace();
        }  
        finally
        {
        	  try
            {
            	  if(state!=null) 
            	      state.close();
                if(conn!=null) 
                    conn.close();
            }
            catch(Exception e1)
            {
            }   
        }
    }   
}


2 、删除数据
需要absolute()根据传入的行号来定位记录,使改记录成为当前记录

deleteRow():向数据库中删除当前的记录
import java.sql.*;

public class DeleteRow
{
	  public static void main(String[] args)
    {
    	  Connection conn=null;
        Statement state=null;
        try
        {
        	  Class.forName("org.apache.derby.jdbc.ClientDriver");
            conn=DriverManager.getConnection("jdbc:derby://localhost:1527/NetworkDB;create=true");
            state=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            ResultSet rs=state.executeQuery("select id, name from foo");
            rs.absolute(2);
            rs.deleteRow();
            System.out.println("成功删除记录!");
        }
        catch(Exception e)
        {
        	  e.printStackTrace();
        }  
        finally
        {
        	  try
            {
            	  if(state!=null) 
            	      state.close();
                if(conn!=null) 
                    conn.close();
            }
            catch(Exception e1)
            {
            }   
        }
    }   
}


3、修改数据
import java.sql.*;

public class UpdateRow
{
	  public static void main(String[] args)
    {
    	  Connection conn=null;
        Statement state=null;
        try
        {
        	  Class.forName("org.apache.derby.jdbc.ClientDriver");
            conn=DriverManager.getConnection("jdbc:derby://localhost:1527/NetworkDB;create=true");
            state=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            ResultSet rs=state.executeQuery("select id, name from foo");
            rs.absolute(2);
            rs.updateString(2,"Zhou Enlai");
            rs.updateRow();
            System.out.println("成功修改记录!");
        }
        catch(Exception e)
        {
        	  e.printStackTrace();
        }  
        finally
        {
        	  try
            {
            	  if(state!=null) 
            	      state.close();
                if(conn!=null) 
                    conn.close();
            }
            catch(Exception e1)
            {
            }   
        }
    }   
}


4对于实际应用中要删除和修改的记录号往往是不可知的,可以借助DataExpress提供的DataSet记起子类的数据集,(注:DataExpress是borland基于jdbc开发的一套数据库组件,是事先把数据装载到了应用程序的内存中,所以可以实现基于二次查询条件来定位记录)

你可能感兴趣的:(java,apache,sql,jdbc,Derby)