广东十一选五开奖 > 计算机网络 > mybatis 使用jdbc.properties文件设置不起作用的解决方

原标题:mybatis 使用jdbc.properties文件设置不起作用的解决方

浏览次数:171 时间:2019-10-05

mybatis 使用jdbc.properties文件设置不起作用的解决方法,

这样写的时候起作用:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE configuration 
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration> 
 <typeAliases> 
  <typeAlias type="com.hc.entity.UserInfo" alias="UserInfo"/> 
 </typeAliases> 
 <environments default="development"> 
  <environment id="mysql"> 
   <transactionManager type="JDBC"/> 
   <dataSource type="POOLED"> 
    <property name="driver" value="com.mysql.jdbc.Driver"/> 
    <property name="url" value="jdbc:mysql://localhost:3306/db_mybatis"/> 
    <property name="username" value="hhc"/> 
    <property name="password" value="******"/> 
   </dataSource> 
  </environment> 
 </environments> 
 <mappers> 
  <mapper resource="com/hc/mapper/UserInfo.xml"/> 
 </mappers> 
</configuration> 

这样写不起作用:

jdbc.driverClass=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://localhost:3306/db_mybatis 
jdbc.username=hc 
jdbc.password=123456 

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE configuration 
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration> 
 <properties resource="jdbc.properties"/> 
 <typeAliases> 
  <typeAlias type="com.hc.entity.UserInfo" alias="UserInfo"/> 
 </typeAliases> 
 <environments default="development"> 
  <environment id="mysql"> 
   <transactionManager type="JDBC"></transactionManager> 
   <dataSource type="POOLED"> 
    <property name="driver" value="${jdbc.driverClass}"/> 
    <property name="url" value="${jdbc.url}"/> 
    <property name="username" value="${jdbc.username}"/> 
    <property name="password" value="${jdbc.password}"/> 
   </dataSource> 
  </environment> 
 </environments> 
 <mappers> 
  <mapper resource="com/hc/mapper/userinfo.xml"/> 
 </mappers> 
</configuration> 

解决方法:

    1.在jdbc.properties鼠标右键Properties(属性),把ISO-8859-1更改为UTF-8

    2.在整个项目鼠标右键,把ISO-8859-1更改为UTF-8   具体操作如下图

图片 1

总结

以上所述是小编给大家介绍的mybatis 使用jdbc.properties文件设置不起作用的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对帮客之家网站的支持!

使用jdbc.properties文件设置不起作用的解决方法, 这样写的时候起作用: xml version="1.0" encoding="UTF-8" !DOCTYPE configuration PUBLIC "-//mybatis....

1.建立资源文件

         在webapp下建立文件夹language,在其中再添加file,命名分别为language.properties,language_en.properties,language_zh_CN.properties。其中language.properties为默认资源文件。

         在其中添加内容,格式如下:

         language.properties

                   welcome=Welcome

         language_en.properties

                   welcome=Welcome

         language_zh_CN.properties

                   welcome=u6b22u8fce

         其中welcome为key,在jsp中调用使用的就是这个,汉语的需要使用unicode编码(在eclipse的properties文件中输入汉语会自动转换成unicode。u6b22u8fce-欢迎)

2.配置springMVC

         在demo-servlet.xml中添加如下

<mvc:interceptors>
        <!-- Changes the locale when a 'locale' request parameter is sent; e.g. /?locale=de -->
        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>
<!-- Saves a locale change using a session-->
<bean id="localeResolver"
    class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
<!-- 国际化文件 -->
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="/language/language" />
    <property name="defaultEncoding" value="UTF-8"/>
</bean>

         其中<property name="basename" value="/language/language" />value即为资源文件所在,不需要后缀名.properties。

3.调用国际化

3.1 在web中调用国际化

在jsp文件头添加

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>

在jsp HTML显示内容处将内容更改,如

<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true">
    Welcome
</a>

更改为

<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true">
    <spring:message code="welcome"/>
</a>

<input type="text" value="welcome" />

更改为

<input type="text" value='<spring:message code="welcome"/>' />

3.2 在javascript中调用国际化

在jsp文件头中添加

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>

$.messager.alert('info');

更改为

$.messager.alert('<spring:message code="message.info"/>');

注意:1.<spring>标签不可以这样写"<spring:message code="message.info"/>"这样会出错。

    2.在_en文件中key的值不可以使用或'符号。

3.3 在java中调用国际化

在controller中使用

if(!model.containsAttribute("contentModel")){

    RequestContext requestContext = new RequestContext(request);

    String welcome = requestContext.getMessage("welcome");

}

其中request为HttpServletRequest,model为Model。

4 解决乱码

4.1 中文输入乱码

         完成了上面的步骤之后,会发现XCenter界面中输入汉语,点击确定,往数据库中写入汉语时,写入的是乱码。

解决办法如下:

         在applicationContext.xml中的

<property name="url" value="${jdbc.url}"/>

更改为 

<property name="url" value="${jdbc.url}?useUnicode=true&amp;characterEncoding=UTF-8"/>

    注意:不要在jdbc.properties中的jdbc.url=jdbc:mysql://localhost:3306/demo之后添加?useUnicode=true&characterEncoding=UTF-8,这样是不正确的。

4.2 部分界面显示中文乱码

         接下来发现在大部分界面因为添加了这句

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

可以正常显示中文了,但是XCenter部分界面中文显示为???,经过检查发现是因为在controller中返回值为String,而且标记为@ResponseBody,查资料发现是因为Spring MVC中@ResponseBody默认编码是ISO-8859-1(其他的都是UTF-8,谁知道为什么同一个框架中这里要用另外一种编码)。

         解决办法:

         在

@RequestMapping(value = "welcome", method = RequestMethod.POST)

中添加produces = "application/json; charset=utf-8"

变成

@RequestMapping(value = "welcome", method = RequestMethod.POST, produces = "application/json; charset=utf-8")

         然后会发现在部分的tree中中文仍然显示为乱码,发现是因为返回值转换成JSON格式的原因。

         解决办法:

         tree的返回值格式化将

JSON.toJSONStringWithDateFormat(rs.getDefaultModel(), "yyyy-MM-dd HH:mm:ss");

  更改为

JSON.toJSONString(rs.getDefaultModel());

5 中英文切换

5.1 资源文件的中英文切换

         这个比较简单,使用如下代码就行

<a href="?locale=en" onclick="changeLanguage('en')">English</a>
<a href="?locale=zh" onclick="changeLanguage('zh_CN')">简体中文</a>

5.2 easyui框架的中英文切换

         easyui中有些框架(如datagrid)有些内容是框架自带的,需要在<head>中加入

<script type="text/javascript" src="js/locale/easyui-lang-zh_CN.js"></script>

那如何切换中英文呢

首先不要在<head>中添加上面这句,然后在主界面<head>中加入如下js语句

<script type="text/javascript">

    var language=window.navigator.language;
    var userLanguage="${sessionScope['org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE']}";

    if(null != userLanguage&&userLanguage!=""){//not login
        language = userLanguage;
    }

    $(function(){
        var src = 'js/locale' + '/easyui-lang-'+language.replace("-","_")+'.js';// when login in China the language=zh-CN     
        $.getScript(src);
    });

</script>

这是使用jquery加载js文件。

 

接下来将项目中需要替换的内容全部用步骤3中的方法替换就行了,这样国际化就完成了。

在 webapp下建立文件夹 language,在其中再添加 file,命名分别为 language.properties, language_en.properties, language_zh_CN.properties。其...

本文由广东十一选五开奖发布于计算机网络,转载请注明出处:mybatis 使用jdbc.properties文件设置不起作用的解决方

关键词:

上一篇:Java 读取配置文件的五种方式

下一篇:没有了