sql语句中文
㈠ 如何解决sql语句中含有中文字符无法查询
package oop.hu.ytu.;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import oop.hg.ytu.beans.LoginBean;
import oop.hg.ytu.utils.JdbcUtils;
/**
* 处理用户登录请求
* @author Administrator
*
*/
public class LoginDomain {
public LoginBean select(String tableName,String username){
Connection con = null;
PreparedStatement pt = null;
ResultSet rs = null;
LoginBean bean = new LoginBean();
try {
username = "\""+username+"\"";
con = JdbcUtils.getConnection();
String sql = "select name,password from "+tableName+" where name="+username+"";
pt = con.prepareStatement(sql);
// pt.setString(1, tableName);
// pt.setString(2, u);
rs = pt.executeQuery();
while(rs.next()){
bean.setUsername(rs.getString("name"));
bean.setPassword(rs.getString("password"));
}
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
JdbcUtils.free(rs, pt, con);
}
return bean;
}
}
username = "\""+username+"\"";这句话是进行字符串处理,加上双引号。
<pre name="code" class="java" style="background-color: rgb(255, 255, 255); ">String sql = "select name,password from "+tableName+" where name="+username+"";
这句话是重点,一定不能使用PreparedStatement提供的字符串处理方法,一定要直接自己拼接出字符串来运行,这样对于中文的处
㈡ sql语句中为什么不能出现中文
那你搜索一下你的版本是否支持。
如果不行,我也米办法
-----------------------
一般是不支持使用中文表名列名的,
如果你一定要使用,
你应该在你的配置文件中加入下面的一行
default-character-set = gb2312
㈢ sql语句中带有中文怎么办
这个中文如果在字符串内,只要被单引号引着就没问题
如果在单引号外面,程序就出错了
㈣ SQL语句中文插入不成功
A. 字符编码:
“使用命令行方式登陆到MySQL服务器, 建立一个数据库,数据库编码设为UTF-8。此时,如果直接在命令行窗口使用insert语句插入中文,就遇到类似 ERROR 1406 (22001): Data too long for column 'name' at row 1 错误。乍一看,是字段长度引起的问题,但是实际是字符编码的问题。可是尝试以下解决方法:
1、在Linux中,使用终端方式登陆MySQL服务器,运行以下命令:
set names utf8;
该命令将终端的字符编码设为了UTF-8。此后再插入数据库中的内容都会按照UTF-8的编码来处理。
注意:在Linux中,终端方式中直接插入中文内容,可能并不会出现1406错误,但是这时插入的数据
是按照系统的默认编码进行处理。因此对编码为UTF-8的数据库,在显示数据的地方可能会出现乱码。
2、在Windows下,命令行窗口不支持UTF-8编码,所以使用“set names utf8;”不会达到转化中文的
效果。但是这个问题还是可以解决的:
(1)使用默认编码建立数据库。这种情况下就可以直接输入中文了,但是相应的问题,就是会
失去UTF-8编码的灵活性。特别是不利于软件的国际化。
(2)放弃命令行窗口登录MySQL,使用图形化客户端。客户端工具可以MySQL的官方网站上找到。”
B. Mysql配置文件:
“在my.ini里找到sql- mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'把其中 的STRICT_TRANS_TABLES,去掉,或者把sql- mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注释掉,然 后重启mysql就ok了”
㈤ sql 查询语句查询中文名称
select * from table where [企业名称]='浙江'
㈥ sql表为中文的查询语句
和英文的基本一样.
除非你中文里面包含空格什么的, 就要额外处理了.
比如 Oracle 用双引号
SELECT * FROM "中文 表名"
SQL Server 用 []
SELECT * FROM [中文 表名]
MySQL用 ` ( 标准键盘 数字1 左边的那个符号)
SELECT * FROM `中文 表名`
㈦ SQL语句中文显示
在语句中,一般是用引号把中文字符区别开来的,表示一个字符串。
例如:
strSql="Insert Into users(username) values('小林')"
㈧ sql语句中有中文,符号等怎么处理
对于特殊字符
要用到转义符
name like '%\%%' escape '\'意思就是保留\后面的一个字符,无视\
就是name中包含%的记录
你给几个改完的字段的例子阿
比如说'你好(%><;'i9hh %()'你要改成怎样
‘你不好%*#@)%’这个又要改成怎么
㈨ sql 中文命名
可以用中文,但是最好还是用英文,因为中文的一些编码可能会导致异常。中文的半角全角这些对于最终的写查询可能会有所影响的。
如果你数据库定义的时候用的半角的中文,而你的查询语句用的是全角的中文,比如字段“姓名”,你如果用半角定义的字段名称,而用全角写的查询条件,就会告诉你找不到列;有时候出现这种情况你可能还莫名其妙,明明是一样的啊,怎么就说没有列呢,可能就出在这些地方的了。
㈩ sql语句有中文,乱码怎么解决
如果SQL Server 系统排序规则为"SQL_Latin1_General_CP1_CI_AS",那么数据库及数据库字段排序规则都默认为"SQL_Latin1_General_CP1_CI_AS",如果字段为varchar,插入中文,数据库显示为"?",且数据无法修复。解决办法如下:
1。 修改字段排序规则为"Chinese_PRC_CI_AS",varchar改nvarchar,SQL插入语句中,中文字符前加"N",可以插入中文字符。
2。 修改数据库排序规则为"Chinese_PRC_CI_AS",字段保持varchar,SQL语句不变,插入中文失败,查看字段属性后发现,字段排序规则实际上没有变化,还是默认为"SQL_Latin1_General_CP1_CI_AS",再修改字段排序规则,varchar不变,SQL不变,可以插入中文字符。
总结:
1。 修改系统排序规则没有试过。
2。 修改数据库排序规则不会把数据库中字段的排序规则改掉,但是为了显示中文,数据库排序规则必须改。
3。 仅仅修改字段排序规则,还不能完全解决问题。