iBatis的xml中sql语句含中文时出现乱码的问题
在ibatis项目中有时候会在xml的sql语句中加入中文查询条件,例如 select * from user where name = '小明' 这种形式,在运行项目时会出现乱码问题,解决办法如下:
最近在iBatis网站上看到解决办法了
是读xml的时候出了问题,需要在java文件读取ibatis配置xml 时,对Reader文件流设置编码
要求 ibatis 版本2.3
Resources.setCharset(Charset.forName("UTF-8"));
Reader reader = Resources.geResources.setCharset(Charset.forName("UTF-8"));
实例代码:
private static final DaoManager daoManager; private static final String resource = "com/myProject/database/dao.xml"; static { Properties props = new Properties(); props.put("driver", C.DB_DRIVER); props.put("url", C.DB_URL); props.put("username",C.DB_USERNAME); props.put("password",C.DB_PASSWORD); daoManager = newDaoManager(props); } private static DaoManager newDaoManager(Properties props) { try { com.ibatis.common.resources.Resources.setCharset(Charset.forName("utf-8")); Reader reader = Resources.getResourceAsReader(resource); return DaoManagerBuilder.buildDaoManager(reader, props); } catch (Exception e) { throw new RuntimeException("get new manager error: " + e, e); } }
相关推荐
- 日志输出时,确保日志框架(如Log4j、SLF4J等)的配置文件中指定了正确的字符集,避免在打印SQL语句时出现乱码。 7. **文件读写**: - 如果是从文件中读取或写入数据,确保文件的读写操作使用了与数据库相同的...
5. Ibatis的SQL映射文件中,如果直接写SQL,确保SQL语句中的字符串也使用UTF-8编码。 以上就是关于“Spring+Struts+Ibatis”框架整合以及中文乱码处理的基本知识点。通过这样的整合,我们可以构建出一个功能完备且...
3. **编写Mapper接口和XML文件**:为了执行数据库操作,需要定义Mapper接口并编写对应的XML文件,XML文件中包含了具体的SQL语句和结果映射规则。 ### 五、ibatis的使用示例 下面通过一个简单的示例来展示如何使用...
2. **SQL语句的编码**:在编写XML映射文件或者动态SQL时,如果直接在字符串中写入中文,且IDE或编辑器的编码与MyBatis运行环境的编码不一致,也可能导致乱码。 3. **结果集映射**:在处理查询结果时,如果实体类中...
- DAO类中的方法调用ibatis映射文件中定义的SQL语句来执行数据库操作。 综上所述,这个示例展示了如何使用Spring、Struts2和ibatis构建一个基本的Web应用程序,特别是实现了用户登录的功能。通过对这些配置文件的...
在Mapper XML文件中,定义SQL语句并与接口方法对应。 7. **创建Controller**:在Controller层,我们定义处理HTTP请求的方法,通过模型绑定接收请求参数,调用Service层的方法,然后返回视图或JSON响应。 8. **视图...
2. **iBatis的引入**:iBatis的集成主要涉及数据库操作的封装,通过XML配置文件或注解定义SQL语句,将业务逻辑与数据访问逻辑解耦。在Spring中配置SqlSessionFactoryBean,以创建SqlSessionFactory对象,然后通过该...
- **Mapper配置**:iBatis的XML映射文件定义了SQL语句及其结果映射。它们可以作为类路径下的资源,或者在Spring配置中引用。 4. **事务管理** - **Spring的声明式事务管理**:Spring支持声明式事务管理,允许在不...
对应的库文件通常不会直接出现在lib目录下,而是通过配置文件(如pom.xml或build.gradle)引用。 以上就是实现JavaWeb登录和注册功能时可能用到的一些关键知识点和对应的包。实际开发中,开发者还需要了解HTML、CSS...
* SQL语句方面 * 从实际问题中抽象出数据模型 * 某个数据库的自己的特点 * 事务的特性及事务其他知识 * 特殊字符的存储问题 七、关于框架 * Hibernate相对于iBATIS有什么优点 * Spring常用部分是什么 * Spring的...
- Hibernate中`hibernate.jdbc.fetch.size`和`hibernate.jdbc.batch_size`的作用:前者控制每次查询的结果集大小,后者用于批处理,设置SQL语句批量执行的大小。 5. **Spring的JdbcTemplate**:这是一个简化JDBC...
- 当项目文件中出现红色叹号时,通常意味着项目存在问题,如缺少必要的库文件(jar包)。解决方法是检查项目的依赖并重新导入缺失的库。 #### 14. Web项目结构 - `web.xml`文件与`lib`目录是Web项目中常见的组成部分...