用jdbc把中文数据插入mysql中 为什么就是插不进去呢 英文可以插进去的 怎么解决这问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 插不进去还是插进去乱码?打印出的sql语句直接在sql客户端执行试试?是不是拼成的sql就已经乱码?还有db字符集是否为utf8? 有中文的sql语句打印出来瞧瞧呢 把表的编码,改成utf-8就可以了 不是在mysql中插进去 在mysql中插是可以插进去的我是用jdbc连接数据库的 全英文的数据可以插进去 带中文的数据就直接跳到错误的页面了 不会啊 我表里的是 char(10) 不会两个中文都装不下把 把Sql贴出来看看吧。 要么你把sql直接到mysql里面去执行。看结果 char(10)改成varchar2(10)试试 insert into user (id ,name) values(1,'我们'); 在mysql中可以插进去的 这是我类里的sql: private static final String save="insert into user values(?,?,?,?,?,?,?,?)"; char(10) 是可以的 你看?号的参数值了么?没有乱码?实在不行,你先别用PreparedStatment,直接用Statment和 + 号去拼sql,再试试jdbc能执行不? 在mysql 中插入中文 没有乱码 jdbc没有问题的 我全英文的数据可以插进去的 有中文他就跳到错误的页面去了 这是代码 public void save(Project pro)throws Exception{ Connection conn=DBUtil.getConnection(); PreparedStatement pst=conn.prepareStatement(save); pst.setInt(1, pro.getId()); pst.setString(2, pro.getPsw()); pst.setDate(3, pro.getYear()); pst.setString(4, pro.getName()); pst.setString(5, pro.getXingbie()); pst.setString(6, pro.getDizhi()); pst.setString(7, pro.getPhoto()); pst.setString(8, pro.getXueli()); pst.executeUpdate(); DBUtil.close(conn);} 页面的代码<%@page pageEncoding="utf-8" contentType="text/html;charset=utf-8"%><html> <head></head> <body style="font-size:30px;" onload="load()"> <font size="1"></font><form action="/work2/project!add.action" method="post" >编号:<input id="id" type="text" name="pro.id"><br/>密码:<input id="psw" type="text" name="pro.psw"><br/>出生年月:<input id="year" type="text" name="pro.year"><br/>姓名:<input id="name" type="text" name="pro.name"><br/>性别:<input id="xingbie" type="text" name="pro.xingbie"><br/>地址:<input id="dizhi" type="text" name="pro.dizhi"><br/>图片:<input id="photo" type="text" name="pro.photo"><br/>学历:<input id="xueli" type="text" name="pro.xueli"><br/><input type="submit" value="添加" ></form><a href="/work2/list.action" >列表</a> </body></html>添加 public String add(){ try{proDao.save(pro); return "success"; }catch (Exception e){ return "error"; } } catch (Exception e){ e.printStackTrace(); return "error"; }看看具体是什么错 java.sql.SQLException: Incorrect string value: '\xE5\x91\xA8\xE5\x89\x91' for column 'name' at row 1 好像只有Oracle才有varchar2吧 问题找到了,你把值为'\xE5\x91\xA8\xE5\x89\x91'字符串插入到char(10)的字段中了,肯定超了吧,估计还是字符集的问题,你先把char(10)改成char(50),看jdbc能不能正常插入,只是插入一些怪异的字符罢了 对头,MySQL用varchar或者nvarchar也行 我该成char(50) 还是这个错误 是不是你的数据库的编码与你当前用的数据编码不一致呀,用 show variables like 'character%' 查看一下你的数据库编码是否一致 就 character_set_database ,character_set_system 是utf8的 其他都是latinn1 我的问题解决了 是编码的问题在创表的时候create table user ()后面加个CHARSET=utf8谢谢前面的各位了。 session问题 Struts2文件下载点击取消异常 struts传值问题 java.lang.NullPointerException万分火急!!!! 我要实现 一点一个连接 为什么有的java编写网站在我没装jvm的时候同样可以正常显示呢?? 求助!!!有没有办法解决网址中因为出现中文而打开错误的问题 有人用聚网的jsp免费空间吗?问个数据库乱码问题. Eclipse Juno如何配置才能运行servlet easyUI中设置了idField:'userid', 但翻页还是没有保留选中状态,求解,在线等 jsp制作简单计算器 请问项目中运行正常,为什么不能连接数据库
我是用jdbc连接数据库的 全英文的数据可以插进去 带中文的数据就直接跳到错误的页面了
不会啊 我表里的是 char(10) 不会两个中文都装不下把
改成varchar2(10)试试
insert into user (id ,name) values(1,'我们'); 在mysql中可以插进去的
这是我类里的sql: private static final String save="insert into user values(?,?,?,?,?,?,?,?)";
char(10) 是可以的
再试试jdbc能执行不?
在mysql 中插入中文 没有乱码
jdbc没有问题的 我全英文的数据可以插进去的
有中文他就跳到错误的页面去了 这是代码 public void save(Project pro)throws Exception{
Connection conn=DBUtil.getConnection();
PreparedStatement pst=conn.prepareStatement(save);
pst.setInt(1, pro.getId());
pst.setString(2, pro.getPsw());
pst.setDate(3, pro.getYear());
pst.setString(4, pro.getName());
pst.setString(5, pro.getXingbie());
pst.setString(6, pro.getDizhi());
pst.setString(7, pro.getPhoto());
pst.setString(8, pro.getXueli());
pst.executeUpdate();
DBUtil.close(conn);
}
页面的代码
<%@page pageEncoding="utf-8"
contentType="text/html;charset=utf-8"%>
<html>
<head></head>
<body style="font-size:30px;" onload="load()">
<font size="1"></font><form action="/work2/project!add.action"
method="post" >
编号:<input id="id" type="text" name="pro.id"><br/>密码:<input id="psw" type="text" name="pro.psw"><br/>
出生年月:<input id="year" type="text" name="pro.year"><br/>姓名:<input id="name" type="text" name="pro.name"><br/>
性别:<input id="xingbie" type="text" name="pro.xingbie"><br/>地址:<input id="dizhi" type="text" name="pro.dizhi"><br/>
图片:<input id="photo" type="text" name="pro.photo"><br/>学历:<input id="xueli" type="text" name="pro.xueli"><br/>
<input type="submit" value="添加" >
</form>
<a href="/work2/list.action" >列表</a>
</body>
</html>添加
public String add(){
try{proDao.save(pro);
return "success";
}catch (Exception e){
return "error";
}
}
e.printStackTrace();
return "error";
}看看具体是什么错
java.sql.SQLException: Incorrect string value: '\xE5\x91\xA8\xE5\x89\x91' for column 'name' at row 1
你把值为'\xE5\x91\xA8\xE5\x89\x91'字符串
插入到char(10)的字段中了,肯定超了吧,
估计还是字符集的问题,
你先把char(10)改成char(50),
看jdbc能不能正常插入,只是插入一些怪异的字符罢了
就 character_set_database ,character_set_system 是utf8的 其他都是latinn1
在创表的时候create table user ()后面加个CHARSET=utf8谢谢前面的各位了。