有關在servlet中往數據庫寫數據的問題
我在servlet中往數據庫插入數據,表字段為字符型,當我錄入數字時,保存正常,當我錄入字母或漢字時,IE地址欄中會出現servlet網址(http://192.168.0.29/bbs/SaveAreaServlet),頁面一片空白,數據庫中未存入數據,很是迷茫,懇請大家解惑
代碼如下:
//獲取名稱、簡介
String areaName=request.getParameter( "areaName ");
String areaIntr=request.getParameter( "areaIntr ");
//創建數據庫連接對象
DBConnManager connManager=new DBConnManager() ;
Connection conn=connManager.getConnection();
Statement stmt=null;
ResultSet rs=null;
int r=0;
try
{
//sql語句
String sql= "insert into area(name,intr) values( "+areaName+ ", "+areaIntr+ ") ";
//創建數據記錄集對象
stmt=conn.createStatement();
//
r=stmt.executeUpdate(sql);
if(r!=1)
{
request.getSession(true).setAttribute( "error ", "添加論壇區失敗 ");
response.sendRedirect( "error.jsp ");
}
else
{
response.sendRedirect( "area.jsp ");
}
}catch(
SQLException sqlExc)
{
sqlExc.printStackTrace();
}catch(Exception e)
{
e.printStackTrace();
}finally
{
//關閉連接,釋放數據庫資源
try
{
if(rs!=null)
{
rs.close();
}
if(stmt!=null)
{
stmt.close();
}
connManager.releaseConnection(conn);
}catch(SQLException sqlExc)
{
sqlExc.printStackTrace();
}
}
------解决方案--------------------正确的应该是
String sql= "insert into area(name,intr) values( ' "+areaName+ " ', ' "+areaIntr+ " ') ";
------解决方案--------------------sql语句这样写吧,String sql= "insert into area(name,intr) values( ' " + areaName+ " ', ' "+areaIntr+ " ') ";
------解决方案--------------------1.SQL语句有问题
2,在String areaName=request.getParameter( "areaName ")之前加上request.setCharacterEncoding( "utf-8 ");此处的字符集应该跟页面所使用的字符集相同,如果页面使用的是gb2312则此处应该也是gb2312