word =new String(aa.getBytes("GBK"),"ISO8859_1");这一句不是以GBK读aa,然后把它转成ISO-8859-1再写进数据吗?但是ISO-8859-1不支持中文的.
解决方案 »
- 为什么mysqladmin processlist会出错?
- rar增量求助!
- 哪位提供下MYSQL的教学视频,资料啊
- 数据表中有timestamp,如何查询出表中所有时间间隔为1分钟的记录
- 修改引擎问题
- 无法用PHPMYADMIN的导入
- convert的使用问题?
- 建表错误:MySQL said: You have an error in your SQL syntax near '( agegrp smallint(5) DEFAULT '0' NOT NULL, sex char(20) DEFAULT
- Mysql连接异常
- SQL语句如何在最后增加一行合计
- 我已经将max_connection设到3000了,为什么看进程的总是中有98,不超过100?
- 怎样找出某数据库的所有用户名和密码
一是:aa不要再转换了,直接写入看看能不能成功.
二是:String word=new String(aa.getBytes("ISO-8859-1"),"GBK");再插入数据库.
三是:(我最常用的方法)
String temp = "insert into admin(admin_name,admin_password) values(?,'123')";
PreparedStatement pst = con.prepareStatement(temp);
pst.setBytes(1,aa.getBytes("GBK"));
pst.executeUpdate();
希望对你有所帮助.
<meta http-equiv="Content-Type" content="text/html; charset=gbk"> request.setCharacterEncoding("gbk");
再将mysql数据库和表格全设置为gbk连接时characterEncoding=gbk肯定一切ok
连接池配置如下:
JNDI Name: jdbc/admin
Data Source URL: jdbc:mysql://localhost:3306/admin? useUnicode=true&characterEncoding=GBK
JDBC Driver Class: com.mysql.jdbc.Driver
User Name: root
Password: *******
Max. Active Connections: 4
Max. Idle Connections: 2
Max. Wait for Connection: 5000
Validation Query: 数据库配置如下:
1.my.ini文件中的两个都设为
default-character-set=gbk
2.mysql中设定如下:
mysql> status
--------------
mysql Ver 14.12 Distrib 5.0.15, for Win32 (ia32)
Connection id: 8
Current database:
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.15-nt
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Uptime: 34 min 35 secThreads: 2 Questions: 72 Slow queries: 0 Opens: 0 Flush tables: 1 Open tabl
es: 0 Queries per second avg: 0.035
--------------mysql> show variables like 'character_set_%';
+--------------------------+----------------------------------------------------
-----+
| Variable_name | Value
|
+--------------------------+----------------------------------------------------
-----+
| character_set_client | gbk
|
| character_set_connection | gbk
|
| character_set_database | latin1
|
| character_set_results | gbk
|
| character_set_server | gbk
|
| character_set_system | utf8
|
| character_sets_dir | D:\Program Files\MySQL\MySQL Server 5.0\share\chars
ets/ |
+--------------------------+----------------------------------------------------
-----+
7 rows in set (0.02 sec)mysql> show variables like 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | gbk_chinese_ci |
| collation_database | latin1_swedish_ci |
| collation_server | gbk_chinese_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)我的代码如下:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=GBK">
<title>数据库测试</title>
<%
request.setCharacterEncoding("GBK");
out.print("我的测试开始"+"<br/>");
DataSource ds = null;
Connection con=null;
try{
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)ctx.lookup("jdbc/admin");
con=ds.getConnection();
Statement stmt = con.createStatement();
String aa="中国";
String word=null;
// word =new String(aa.getBytes("GBK"),"ISO8859_1");
//正确写入
word =new String(aa.getBytes("GBK"),"ISO8859_1");
String temp = "insert into admin(admin_name,admin_password) values('" + word + "','123')";
// stmt.execute(first);
// stmt.execute(second);
// PreparedStatement pst = con.prepareStatement(temp);
PreparedStatement pst = con.prepareStatement(temp);
pst.executeUpdate();
pst.close();
String strSql = "select * from admin";
ResultSet rs =stmt.executeQuery(strSql);
while(rs.next()){
out.print("中国~~~" + rs.getString(1) +"<br/>");
String qq=new String (rs.getString(1).getBytes("ISO8859_1"),"GBK");
out.println(qq+":");
}
rs.close();
stmt.close();
con.close();
out.print("我的测试结束");
}
catch(Exception ex){
out.print("出现例外,信息是:"+ex.getMessage());
out.println(ex.getLocalizedMessage());
ex.printStackTrace();
}
%>
</head>
<body>
</body>
</html>驱动都拷到相应目录下了,我的系统是xp2005
程序中实现了,中文字符的插入,但是读不出中文字符,而且经过jsp文件插入后的数据库
再不能删除记录了,不知为什么,请各位高手们指导小弟一下,我在此恭候大家的帮助.