word =new String(aa.getBytes("GBK"),"ISO8859_1");这一句不是以GBK读aa,然后把它转成ISO-8859-1再写进数据吗?但是ISO-8859-1不支持中文的.
解决方案 »
- 求 mysql 第三方插件
- 在设计一个小表存三条记录还是用已存在的某个大表存三条记录,如何选择
- 这条语句,为什么死活要 “ Using filesort”
- solaris下mysql的shell脚本
- mysql命令行怎么改变命令的结束符号
- 数据库交集的查询问题
- 创建一个表后如何为该表中的一个字段添加一个PRIMARY KEY主键
- c++连接mysql错误求救~~~~~~~~~~~~~~
- thread_cache_size和max_connections区别
- JDBC的驱动那里有下?(MySql的,当然最好还有其他的数据库的)谢谢各位高手!
- 我已经将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文件插入后的数据库
再不能删除记录了,不知为什么,请各位高手们指导小弟一下,我在此恭候大家的帮助.