数据库是UTF-8
servlet也是一直出错req.setCharacterEncoding("UTF-8");
String name = req.getParameter("name");

String sex = req.getParameter("sex");
String age = req.getParameter("age");
String marriage= req.getParameter("marriage");
String native_place= req.getParameter("native_place");
String nationality= req.getParameter("nationality");
String profession= req.getParameter("profession");
String telephone= req.getParameter("telephone");
String admission_date = req.getParameter("admission_date");

String office= req.getParameter("office");
String bed_number= req.getParameter("bed_number");
String medical_insurance= req.getParameter("medical_insurance"); String describe= req.getParameter("describe");
String history= req.getParameter("history");


String test = req.getParameter("test");
String doctor = req.getParameter("doctor");

String date = req.getParameter("date");
String level = req.getParameter("level");

String degree = req.getParameter("degree");
int rows = 0;
try {
java.sql.Statement stat=null;
stat = dbcon.createStatement ( );

String sql="INSERT   INTO  benben(name,sex,age,marriage,native_place,nationality,profession,telephone,admission_date,office,bed_number,medical_insurance,describe,history,test,doctor,date,level,degree) values('"+name+"','"+sex+"','"+age+"','"+marriage+"','"+native_place+"','"+nationality+"','"+profession+"','"+telephone+"','"+admission_date+"',' "+office+"','"+bed_number+"','"+medical_insurance+"','"+describe+"','"+history+"','"+test+"','"+doctor+"','"+date+"','"+level+"','"+degree+"')";



System.out.println(name+sex+age+marriage+native_place+nationality+profession+telephone+admission_date+office+bed_number+medical_insurance+history+test+doctor+date+level+degree);

System.out.println(sql);
rows = stat.executeUpdate(sql);
Connection established地方男飞已婚湖南省常德市醴陵县北山乡飞飞飞飞飞飞飞飞飞飞飞1级轻微未看好
INSERT   INTO  benben(name,sex,age,marriage,native_place,nationality,profession,telephone,admission_date,office,bed_number,medical_insurance,describe,history,test,doctor,date,level,degree) values('地方','男','飞','已婚','湖南省常德市醴陵县北山乡','飞','飞','飞','飞',' 飞','飞','飞','飞','飞','飞','飞','飞','1级轻微','未看好')
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'describe,history,test,doctor,date,level,degree) values('??°?–?','?”·','é??','?·?' at line 1
Error Insert

解决方案 »

  1.   

    有乱码。你给servlet加个过滤器,对中文乱码先进行处理了,这样从表单传道后台的中文就不会是乱码。
      

  2.   

    常德市没有醴陵县...而且你打印的sql语句里面好像并没有describe,history..什么的,是没显示完全吗?直接把打印的sql拷到mysql中执行试试
      

  3.   

    对String类型中文转码String describe = new String(req.getParameter("describe").getBytes("ISO8859_1"),"UTF-8"));其他几个错误的类似
      

  4.   

    先把你打印出来的SQL在你的数据库中跑一遍,看能不能成功。
    还是就是换一下英文试试。