解决springmvc+mybatis+mysql中文乱码问题【转】

这篇文章主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下

近日使用ajax请求springmvc后台查询mysql数据库,页面显示中文出现乱码

最初在mybatis配置如下

<select id="queryContentById" resultType = "java.lang.String" parameterType="String" >

    select text from News where id=#{o}

</select>

其中表News的text字段为blob类型

如此查出的text值在控制台中一直显示乱码。

之后google查找相关resultType=blob相关内容无果,遂将其改为resultType = "java.util.Map" ,且

?

1

2

byte[] b = (byte[]) map.get("text");

String s = new String(b,"utf-8");

打印出s,此时中文正常显示,但页面显示依旧乱码。

因此处为ajax请求,遂检查响应头信息,查出如下

?

1

Content-Typetext/html;charset=ISO-8859-1

 

由于数据库中统一为编码为utf-8,故修改响应头信息

@RequestMapping(value = "/queryContentById", method = RequestMethod.GET,produces = "text/plain;charset=UTF-8")

public @ResponseBody String queryContentById(@RequestParam("id") String id) throws SQLException, UnsupportedEncodingException {

  Map map = (Map) ndrService.queryContentById(id);

  byte[] b = (byte[]) map.get("text");

  String s = new String(b,"utf-8");

  return s;

}

我们再来看下另外一个示例的问题

1、SpringMVC的Controller得到的是乱码:
(1)在web.xml加上字符集过滤器:

 

复制代码代码如下:

 <!-- Spring字符集过滤器 --> <filter>  <filter-name>SpringEncodingFilter</filter-name>  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  <init-param>   <param-name>encoding</param-name>   <param-value>UTF-8</param-value>  </init-param>  <init-param>   <param-name>forceEncoding</param-name>   <param-value>true</param-value>  </init-param> </filter> <filter-mapping>  <filter-name>SpringEncodingFilter</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>

 

(2)在JSP等页面上修改:charset=UTF-8"和pageEncoding="UTF-8"

2、Controller读取到的是正确的中文,但是保存到数据库后变成“??”

(1)修改数据库连接jdbc_url=jdbc:mysql://localhost:3306/mybatistest?useUnicode=yes&characterEncoding=UTF8("&":在xml文件中表示"&")

(2)修改数据库的字符集为utf-8:打开mysql根目录下my.ini(mysql5.6为my-default.ini,要把它copy一份命名为my.ini),在下面具体位置添加(或修改):

 

复制代码代码如下:

[mysqld]character-set-server=utf8 [client]default-character-set = utf8[mysql]default-character-set = utf8

 

这样设置在我这边就没什么问题了。

综述:

通常中文乱码问题都是由于字符编码设置不对导致的,我这里无论是数据库还是java文件、jsp文件,都统一成UTF-8。最后问题解决了。

  1. 1. 使用阿里巴巴Druid连接池(高效、功能强大、可扩展性好的数据库连接池、监控数据库访问性能、支持Common-Logging、Log4j和JdkLog,监控数据库访问)
  1.  

    2. 提供高并发JMS消息处理机制
    3. 所有功能模块化、所有模块服务化、所有服务原子化的方式,提供可拓展的服务模型,使程序稳定运行,永不宕机
    4. 提供Wink Rest、Webservice服务,故可作为独立服务平台部署

    框架整合:

    Springmvc + Mybatis + Shiro(权限) + REST(服务) + WebService(服务) + JMS(消息) + Lucene(搜搜引擎) + Quartz(定时调度) + Bootstrap Html5(支持PC、IOS、Android)

    框架简介:

     

    项目Maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化、服务化、原子化的方案,将功能模块进行拆分,可以公用到所有的项目中。架构采用分布式部署架构,所有模块进行拆分,使项目做到绝对解耦,稳定压倒一切~~

     

    持续集成:

    1. 我的待办工作流服务(提供Webservice服务)

    2. 我的待办工作流集成JMS消息服务(支持高并发,可支持成千上万系统集成)

    3. 我的任务提供Rest服务,完成日常的工作管理,通过定时调度平台,动态生成我的任务、循环周期任务、定时邮催提醒完成任务等

    4. 文件上传、多线程下载服务化、发送邮件、短信服务化、部门信息服务化、产品信息服务化、信息发布服务化、我的订阅服务化、我的任务服务化、公共链接、我的收藏服务化等

    系统模块:

     1.  用户管理:

          用户信息管理(添加、删除、修改、用户授权、用户栏目管理、查询等)

          用户组管理(添加、删除、修改、用户组栏目授权,栏目授权、查询、用户组人员添加查询等)

          用户角色管理(添加、删除、修改、用户角色授权、用户角色栏目信息查询设置等)
     2.  文章管理:

          栏目管理:查询无限极栏目树、创建无限极栏目树分类(导航栏目、图片列表栏目、文章列表栏目、文章内容栏目等)、删除、修改栏目信息。

          文章管理:创建、删除、修改文章,多维度文章查询,包括已发布、未发布、所有文章等。文章富文本编辑器、文章多文件上传、文章状态控制等。
    3.  系统设置:

           数据字典管理:支持中、英文信息,支持无限级别分类配置,动态控制是否可用等。

           部门信息管理:支持中、英文无限级别部门信息增加,删除,修改操作,部门列表、树心查询等。

           日志管理:系统日志列表查询、在线查看、在线下载等

           路线管理:集成百度地图API,提供线路查询管理功能

           Druid Monitor(监控):集成阿里巴巴连接池,提供在线连接池监控程序,包括:数据源、SQL监控、URL监控、Session监控、Spring监控等

           网站信息管理:通过系统配置文件进行网站内容操作,包括邮件服务器配置、公司基本信息配置等。

     4.  集成REST服务,可以用作独立服务平台(提供大量实例及测试平台,包括:文件上传下载、邮件短信发送、部门、产品、公共连接、我的收藏、我的任务、信息发布等)

     5.  集成Quartz调度,可以用作定时调度平台(动态配置调度类、调度时间,使程序自动执行某些业务)

     6.  Lucene搜索引擎,可以将文件资料索引化,支持文件内容搜索、关键字搜索、高亮关键字等,使信息在毫秒内提取查询出来

     7.  用户设置功能:包括修改用户信息,修改密码、发送消息,修改个人图片,查看角色、查看用户组,管理员修改角色、用户、用户组等。

     8.  集成Webservice平台,包括jaxws服务、CXF框架,配置双加密的权限认证。使服务集成更加安全。

     9.  Bootstrap html5提供了两套前台开环境,包括CMS和电子商务网站,使您的开发更加的简洁。

    技术点:

    1.  Springmvc + Mybatis集成、SpringSecurity权限控制、Spring AOP事务处理。

    2.   Wink Rest服务、Webservice服务:jaxws、CXF等

    3.  IO 流上传下载文件,多线程操作

    4.  发送邮件,配置邮件服务器,发基于html、纯文本格式的邮件

    5.  MD5加密 (登陆密码校验加密等),用户统一Session、Cookie管理,统一验证码校验等。

    6.  数据库连接池统一配置 

    7.  Quartz定时调度任务集成(直接通过配置即可)

    8.  Httpclient破解验证码,登陆联通充值平台

    9.  汉字、英文拆分、可以用作文档关键字搜索等。

    10.  Base64图片处理,支持PC,Android,IOS

    11.  Service Socket 、Client Socket 通信技术(已经做过GPRS数据获取,并用到了项目中)

    12.  提供大量工具类,可以直接使用

    13.  Maven项目构建,您可以直接做架构,可以提升自己的学习能力,使您成为真正的架构师。

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

  2. Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客
     

     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客
     

     Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客
     

    Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

     Springmvc+mybatis+shiro框架整合 高并发 大数据 bootstrap ehcache 企业级应用 - zookeeperkafka - zookeeperkafka的博客

转载于:https://my.oschina.net/qiuwenshuo3/blog/780203

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Java中连接Kepserver OPC UA加密,首先需要确保你的Java项目中已经导入了支持OPC UA的相关库文件。然后,可以按照以下步骤进行连接: 1. 创建一个OPC UA TCP连接的URL地址,地址格式为:opc.tcp://{服务器IP}:{端口号}。在这个URL中,需要将服务器的IP地址和端口号替换为实际的Kepserver服务器地址和端口号。 2. 使用创建的URL地址创建一个OPC UA的连接对象,使用`new UaTcpClient(url)`方法来创建,其中`url`为上一步创建的URL地址。 3. 在连接对象上调用`setSecurityPolicy`方法来设置安全策略,常用的策略有`SecurityPolicy.SuchAsBasic128Rsa15`和`SecurityPolicy.SuchAsBasic256`。根据实际情况选择合适的安全策略。 4. 设置用户凭证,如果Kepserver服务器设置了用户名和密码,可以通过调用连接对象的`setUserIdentity`方法来设置用户凭证,示例代码如下: ```java UsernameProviderImpl usernameProvider = new UsernameProviderImpl(username, password); client.setUserIdentityProvider(usernameProvider); ``` 其中`UsernameProviderImpl`是自定义的类,实现了`UserIdentityProvider`接口,用于提供用户名和密码。 5. 连接Kepserver服务器,调用连接对象的`connect`方法来建立连接,示例代码如下: ```java client.connect().get(); ``` 其中`get`方法是为了等待连接结果,如果连接成功,则会返回`CompletableFuture`对象,可以通过调用`get`方法来判断连接是否成功。 至此,你已经成功使用Java连接到了Kepserver OPC UA加密服务器。接下来,你可以使用OPC UA客户端API来读取、写入和订阅服务器上的数据了。 请注意,以上步骤仅为示例,实际使用时可能需要根据具体情况进行适当调整。 ### 回答2: Java可以通过使用OPC-UA库来连接Kepserver OPC-UA加密。首先,需要在项目中添加OPC-UA库的依赖。然后,在Java代码中创建一个OPC-UA连接对象,配置连接参数,并使用正确的地址和端口连接Kepserver OPC-UA服务器。 连接Kepserver OPC-UA服务器时,需要注意以下几点: 1. 确保Kepserver OPC-UA服务器已启用加密功能,并配置了正确的安全策略。 2. 在Java代码中,需要使用正确的加密算法和密钥长度来配置安全策略。 3. 客户端和服务器之间的证书验证也是关键。需要正确配置服务器的证书,并在Java代码中导入和配置客户端的证书,以便双方能够互相验证身份。 4. 在Java代码中,使用正确的用户名和密码进行身份验证,以及授权访问服务器的操作。 完成上述步骤后,您可以使用Java代码来读取和写入Kepserver OPC-UA服务器上的变量和标签。通过从服务器读取加密配置息,并在Java代码中正确设置加密参数,您可以确保通过加密通连接Kepserver OPC-UA服务器,保护数据的安全性和机密性。 ### 回答3: Java 连接 KepServer OPC UA 加密的步骤如下。 1. 首先,需要使用 Java 的 OPC UA SDK 来创建一个 OPC UA 客户端。你可以选择一些开源的 SDK,比如 Eclipse Milo 或者 Prosys OPC UA Java SDK。 2. 在 Java 代码中,你需要导入相应的 SDK,以及其他必要的类库和依赖项。 3. 配置客户端连接参数,包括 KepServer 的 IP 地址、端口号和加密设置。通常情况下,KepServer 在默认情况下是不启用加密的,所以你需要先在 KepServer 的配置文件中启用加密功能。启用加密功能后,你需要提供相应的证书和密钥,以及声明要使用的加密算法。 4. 在 Java 代码中,使用 OPC UA SDK 提供的 API 创建一个 OPC UA 客户端对象,并使用配置好的连接参数初始化该对象。 5. 连接KepServer使用客户端对象的连接方法进行连接。在连接过程中,客户端会将之前配置的加密息发送给 KepServer,以便建立一个安全的加密连接。 6. 连接成功后,你可以使用客户端对象的方法来读取和写入 KepServer 上的 OPC UA 变量值。你可以使用节点 ID 或者节点名称来指定要读取和写入的变量。 7. 当你完成所有的操作后,使用客户端对象的断开连接方法来断开连接。 总结:要在Java代码中连接KepServer的加密的OPC UA服务,首先需要使用相应的SDK创建一个OPC UA客户端对象,并设置连接参数以启用加密功能。然后使用该客户端对象连接KepServer,并使用其提供的方法进行数据读取和写入等操作。最后,在完成所有操作后断开连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值