Mybatis +sql server 插人中文乱码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis +sql server 插人中文乱码相关的知识,希望对你有一定的参考价值。
要操作的字段为nvarchar, 数据库的字符集位cp1252. 使用sql脚本偛入中文时,需要在中文前加"N",否则未乱码"???",使用tomcat布署项目时,不需要额外的处理,能直接插入中文, 换成webphere时,插入中文为乱码“??”
程序和数据库换成统一的(utf-8或gbk)编码,这样才不会乱码! 参考技术A 这就是乱码,编码的问题,你把编码都换成UTF-8的编码看看追问不是本地数据库做测试,历史遗留下来的数据库,不能改字符集。
追答插入数据库乱码,绝对是编码的问题;我说的不是要你改数据库的字符集
追问项目使用的编码都是utf-8.
Mybatis Generator for SQL Server
Mybatis Generator for SQL Server
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorConfiguration> <!-- 制定mysql的驱动包的路径 千万别放中文路径下 --> <classPathEntry location="D:\Jr\sqljdbc4.jar" /> <!-- 配置数据源和生成的代码所存放的位置 --> <context id="context1"> <commentGenerator> <!-- 去除自动生成的注释 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <jdbcConnection driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver" connectionURL="jdbc:sqlserver://127.0.0.1:1433;databaseName=se; catalogName=se" userId="user" password="pass"> </jdbcConnection> <!-- 所生成的实体类的位置默认资源包src --> <javaModelGenerator targetPackage="com.se.model" targetProject="T" /> <!-- 所生成的sqlMap的影射文件的位置,默认资源包src --> <sqlMapGenerator targetPackage="com.se.mapper" targetProject="T" /> <!-- 生成mapxml对应的client,也就是dao --> <javaClientGenerator targetPackage="com.se.dao" targetProject="T" type="XMLMAPPER" /> <!--为哪些表生成代码 tableName:表名 schema:不用填写,其余属性是禁用例子查询的生成 --> <table tableName="Tbl" domainObjectName="Tbl" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" > </table> </context> </generatorConfiguration>
以上是关于Mybatis +sql server 插人中文乱码的主要内容,如果未能解决你的问题,请参考以下文章
mybatis 针对SQL Server 的 主键id生成策略
12.2 MyBatis动态SQL-多数据库支持与可拔插SQL脚本 -《SSM深入解析与项目实战》