package appsm.util;import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;import javax.swing.JOptionPane;
import appsm.model.*;
public class JdbcAdapter {
    private static  String infoStr = null;
    private boolean validateID(String id,String tname,String idvalue){
        String sqlStr=null;
        sqlStr="select count(*) from "+tname+" where "+id+"='"+idvalue+"'";
    try{
        Connection con=CommonaJdbc.connection;
        PreparedStatement pstmt=con.prepareStatement(sqlStr);
        ResultSet rs=null;
rs=pstmt.executeQuery();
      
        if(rs.next()){
            if(rs.getInt(1)>0) return true;
            }
        }catch(java.sql.SQLException sql){
            sql.printStackTrace();
            return false;
            }
        return false;
    }
    /******************************以上是验证用户是否存在************************************/ 
    private boolean AdapterObject(String sqlState){
        boolean flag=false;
        try{
           Connection con=CommonaJdbc.connection;
           PreparedStatement pstmt=con.prepareStatement(sqlState);
            pstmt.execute();
            flag=true;
            if(infoStr!=null)JOptionPane.showMessageDialog(null,infoStr+"数据成功!!","系统提示您",JOptionPane.INFORMATION_MESSAGE);
            }catch(SQLException sql){
                flag=false;
                sql.printStackTrace();
                }
            return flag;
        }
    /*********************************以上是执行sql语句操作**********************/
    public boolean InsertSP(Obj_shangpin objshangpin){
        String sql=null;
        if(validateID("goodsID","tb_Shangpin",objshangpin.getgoodsID())){
            JOptionPane.showMessageDialog(null,"数据已存在!!","系统提示您",JOptionPane.INFORMATION_MESSAGE);   
        }
        else{
            sql="insert into  tb_Shangpin (goodsID,goodsName,goodsPrice,goodsDanwei,goodsNumber,goodsKucun,goodsSell) " +
             "values ('"+objshangpin.getgoodsID()
            +"','"+objshangpin.getgoodsName()
            +"','"+objshangpin.getgoodsPrice()
            +"','"+objshangpin.getgoodsDanwei()
            +"','"+objshangpin.getgoodsNumber()
            +"','"+objshangpin.getgoodsKucun()
            +"','"+objshangpin.getgoodsSell()
            +"')";
            infoStr="添加商品信息";
            }
        return AdapterObject(sql);
        }
这是我写的一段代码,用来添加商品的信息,objshangpin商品是实体类的对象,麻烦大峡们给好好看看,是那里错了,总是在红区出错!

解决方案 »

  1.   

    CommonaJdbc是连接数据库的类,已经编译,connection是CommonaJdbc中static型的连接变量
      

  2.   

    我调出来了 呵呵
    我在数据库里定义了一个商品表,字段类型有varchar型,有int型,还有float型 ,现在我在程序里的实体类都用的是String型,程序添加和删除都能实现,可是到了修改就实现不了,我想知道是不是类型不匹配的原因啊,请问是不是我在程序里定义的实体类的数据类型必须和数据库里字段类型一致啊 ???如果是那我的添加和删除怎么就能实现啊 ????
      

  3.   

    从你的简单描述来看,确有可能是类型匹配的问题,这首先要看你定义的实体类的类型,对于定义的实体类的类型需要和数据库的类型想对应,比如[color=#FF00FF]varchar对应String类型,int对应int类型等等,还有就是你操纵数据库修改的时候,如果你用JDBC写的话,肯定需要传值,而你传的值的类型就必须和你定义的实体类的类型相同[/color]