首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

无任何异常或错误,却无法进行数据库插入操作,求救

2012-03-04 
无任何错误或异常,却无法进行数据库插入操作,求救packagefatieimportjava.io.*importjava.sql.*importj

无任何错误或异常,却无法进行数据库插入操作,求救
package   fatie;
import   java.io.*;
import   java.sql.*;
import   javax.servlet.*;
import   javax.servlet.http.*;
public   class   fatieServlet   extends   HttpServlet
{
//初始化变量
public   void   init(ServletConfig   config)   throws   ServletException
{
super.init(config);
}
//获取数据库连接
private   Connection   initConnection()
{
Connection   conn=null;
try
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
}
catch(ClassNotFoundException   e)
{
e.printStackTrace();
}
try
{
    conn=DriverManager.getConnection( "jdbc:odbc:forumData ", "sa ", "sa ");
}
catch(SQLException   e)
{
e.printStackTrace();
}
return   conn;
}
//释放数据库连接
private   void   freeConnection(Connection   conn)
{
try
{
conn.close();
}
catch(SQLException   e)
{
System.out.print( "释放数据库连接失败 "+e.toString());
}
}

//插入数据库操作
public   int   insertData(PreparedStatement   pstmt)
{
int   n=0;
try
{
n=pstmt.executeUpdate();
}
catch(SQLException   e)
{
e.toString();
}
return   n;
}
//获得主题ID
private   int   getTopicID()
{
String   sql= "select   *   from   sumTopic ";
ResultSet   rs=null;
Statement   stmt=null;
int   n=0;
try
{
    Connection   conn=this.initConnection();
    stmt=conn.createStatement();
    rs=stmt.executeQuery(sql);
if(rs.next())
{
n=rs.getInt(1);
}
}
catch(SQLException   e)
{
e.printStackTrace();
}
return   n;
}
//实现总贴数目的更新
    private   int   addOne(int   n)
    {
    int   k=0;
    String   sql= "update   sumTopic   set   sumTopic= ' "+n+ " '+1 ";
    try
    {
    Connection   conn=this.initConnection();
    PreparedStatement   pstmt=conn.prepareStatement(sql);
        k=pstmt.executeUpdate();
    }
    catch(SQLException   e)
    {
    e.toString();
    }
        return   k;
    }
//doPost方法实现
public   void   doPost(HttpServletRequest   req,HttpServletResponse   resp)throws   ServletException,IOException
{
int   n=0;
String   typeid=req.getParameter( "typeID ");
//int   i=Integer.parseInt(typeid);      
String   title=req.getParameter( "articleN ");
//String   Face=req.getParameter( "face ");
String   content=req.getParameter( "text ");
PrintWriter   out=resp.getWriter();
int   m=getTopicID();
String   s=String.valueOf(m+1);
Connection   conn=this.initConnection();
try{
    PreparedStatement   pstmt=conn.prepareStatement( "insert   into   article(TypeID,ID,Title,Content)value(?,?,?,?) ");


    pstmt.setString(1,typeid);
    pstmt.setInt(2,m);
    pstmt.setString(3,title);
    //pstmt.setString(4,Face);
    pstmt.setString(4,content);
    //pstmt.setString(4,Face);
    n=pstmt.executeUpdate();
    }
    catch(SQLException   e)
        {
        e.toString();
        }
if(n> 0)
    {
    out.println( "success ");
    addOne(m);
    }
    else
        {
    out.println( "false ");
    addOne(m);
        }
out.println(typeid);
out.println(title);
//out.println(Face);
out.println(content);
out.println(s);
}
}
}  

上面代码是一个servlet,从表单中获取数据并输出没有问题,但就是无法成功进行数据库插入操作(输出 "false "),也无任何错误或异常,请指点。。。

[解决办法]
注意一下你的SQL语句,和参数类型是否和你的数据库表结构定义的类型是一致的
[解决办法]
75分------------------------


catch(SQLException e)
{
e.toString();
}
改成这样就看到错误了;
catch(SQLException e)
{
e.printStackTrace();
}

[解决办法]
以上答案都不对,是你的INSERT语句错了应该是values你写的是value,我特地为你的帖子注册了个号,这个错误错的可太粗心了。
[解决办法]
楼主要细心啊,另外别把异常都给捕获了却不输出啊.
你实在不用e.printStackTrace();还用个System.out.println();啊

热点排行