最近做个jsp小项目,发现提交表单的时候返回值是完整的,但存入数据库中文字符没法保存全部。。
提交后显示的结果是这样的:
恭喜,你已经成功订阅!
您订阅的名字为: 案发生的方法
您订阅的手机号码为:案发生的方法
您订阅的地址为:案发生的方法
您订阅的邮箱为:sssssssssss
您订阅的种类为:120
但数据库存入却是这样的:
案发生的
案发生的
案发生的
sssssssssss
120
也就是中文保存不完全
这是提交的代码
- Java code
public int insert(User user){ int count = 0; Connection conn = null; PreparedStatement ps = null; //根据user对象的属性生成sql语句 String sql = "insert into user(tel,username,addr,mail,type,num,yf) values('"+user.getTel()+"','"+user.getUsername()+"','"+user.getAddr()+"','"+user.getMail()+"','"+user.getType()+"','"+user.getNum()+"','"+user.getYf()+"')"; try { conn = getConnection(); ps = conn.prepareStatement(sql); count = ps.executeUpdate(); } catch (SQLException e) { System.out.println("Sql异常2"); } finally{ if(ps!=null){ try { ps.close(); } catch (SQLException e) { System.out.println("关闭ps时异常"); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { System.out.println("关闭conn时异常"); } } } return count; }
提交后的页面也只是简单的获取
- Java code
恭喜,你已经成功订阅!<br> 您订阅的名字为: <% out.println(request.getParameter("username"));%><br> 您订阅的手机号码为:<%out.println(request.getParameter("tel")); %><br> 您订阅的地址为:<% out.println(request.getParameter("addr"));%><br> 您订阅的邮箱为:<% out.println(request.getParameter("mail"));%><br> 您订阅的种类为:<% out.println(request.getParameter("type"));%><br><br>
为什么中文字符串保存不完全呢?求指导。。。。
------解决方案--------------------------------------------------------
你数据库设定的数据存储为多少位的,如果数据太长的话,就保存不上!
------解决方案--------------------------------------------------------
把这个sql打印下,看你传的值是不是有问题