本站首页    管理页面    写新日志    退出


«April 2026»
1234
567891011
12131415161718
19202122232425
2627282930


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:29
评论数量:19
留言数量:0
访问次数:119477
建立时间:2006年5月29日




[java与中文]数据库中取存数据
软件技术

krf301 发表于 2007/4/21 20:35:28

今天遇到一个乱码问题,不知是什么原因,我向数据库中插入一条记录后,再取出,若是中文,得到的就是乱码,请大伙帮帮忙...------------------package w113.conn;import java.sql.*;public class UseExecuteUpdate {public static void main(String[] args) {String url = "jdbc:mysql://localhost/sql_test";String userName = "root";String passWord = "w113";String sql = null;try{Class.forName("com.mysql.jdbc.Driver");}catch(Exception e){e.printStackTrace();}try{Connection conn = DriverManager.getConnection(url,userName,passWord);Statement stmt = conn.createStatement();sql = "insert into student values('17','张三','hubei','2054-07-30')";int affectedRowCount = stmt.executeUpdate(sql);System.out.println("受插入操作影响的数据行数为:" + affectedRowCount);sql = "select * from student where stu_id = '17'";ResultSet rs = stmt.executeQuery(sql);while(rs.next()){String id = rs.getString(1);String name = rs.getString(2);String address = rs.getString(3);System.out.println(id + "" + name + "" +address);}}catch(Exception e){e.printStackTrace();}}}---------------------我看到的结果:受插入操作影响的数据行数为:117??hubei     nationally(自由鸟) 于 2005-10-26 17:09:38 存储和取出的时候都用String.getByte("iso8859-1")转换 w1113(文) 于 2005-10-26 17:59:30 请大哥把存储和取出时的几行代码帮我实现一下,谢谢了.. lcwlyl(网络幽灵) 于 2005-10-26 18:25:58 应该是编码的问题,试试把取出来的中文转码。 overgame(我菜我存在) 于 2005-10-26 19:08:30 取代码的时候转换下就是public String getString(String str){return new String(str, "GB2312"); } pauliuyou(paul) 于 2005-10-27 10:59:03 存的时候用 s = new String(s.getBytes(),"ISO-8859-1");取的时候用 s = new String(s.getBytes("ISO-8859-1"); w1113(文) 于 2005-10-27 17:06:01 还是乱码啊,大哥能不能帮我把代码写具体一些? keiy 于 2005-10-27 17:13:43 试试我的:import java.sql.*;public class mysqltest {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubString url = "jdbc:mysql://192.168.0.222/";// 主机名和端口 String login = "test";// 登录名 String password = "test";// 密码 try { Class.forName("com.mysql.jdbc.Driver");Connection connection = DriverManager.getConnection(url,login,password); //得到数据库驱动程序版本 DatabaseMetaData conMD = connection.getMetaData(); System.out.println("Driver Name:\t" + conMD.getDriverName()); System.out.println("Driver Version:\t" + conMD.getDriverVersion()); //选择数据库 connection.setCatalog( "jtest"); //创建Statement Statement st = connection.createStatement();//插数据String sql2=new String("INSERT INTO test VALUES('测试',20)".getBytes("GBK"),"ISO8859_1"); st.executeUpdate(sql2); //执行查询 ResultSet rs = st.executeQuery("SELECT * FROM test"); //取得结果,输出到屏幕 String x;while (rs.next()){ for(int j=1; j<=rs.getMetaData().getColumnCount(); j++){x=new String((rs.getString(j)).getBytes("ISO8859_1"),"GBK"); System.out.print( x+"\t"); } System.out.println(); } //关闭对象 st.close(); connection.close(); } catch(Exception e) { System.out.println("SQL Error:"+e.getMessage());} }}


阅读全文(1537) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.032 second(s), page refreshed 144828718 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号