日期:2014-05-17  浏览次数:20753 次

jsp字符存储的一点小问题。。
最近做个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打印下,看你传的值是不是有问题