有如下两个点总结:
1,如果检索自定义对象,在数据库表中找不到匹配数据,将返回什么呢?
public UserInfo getUser4Login(Map<String, String> map){ UserInfo user = null; SqlMapClient sqlClient = CommonsDAO.getClient(); try { // TODO 调试确认,如果没有检索到数据,返回的是什么?非空代码有必要吗?强转出错不考虑,因为所有代码的返回类型是我来约束的 Object obj = sqlClient.queryForObject("selUser4Login", map); if(null != obj){ user = (UserInfo)obj; } } catch (SQLException e) { e.printStackTrace(); } return user; }
经过调试确认,将返回的是空。所以,务必进行非空判断,而不是直接强转,否则,可能出现空指针异常。
2,如果要让控制台显示iBatis的SQL日志,怎么配置呢?
以web项目开发为例,在src根目录下添加log4j.properties文件,其中包含如下内容:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n log4j.logger.com.ibatis=debug log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug log4j.logger.java.sql.Connection=debug log4j.logger.java.sql.Statement=debug log4j.logger.java.sql.PreparedStatement=debug,stdout
相关推荐
在iBATIS中,处理这种一对多关系的关键在于配置映射文件,确保数据能够正确关联并检索出来。 1. **iBATIS主子表查询配置**: 在iBATIS的映射文件(XML配置文件)中,我们需要定义两个Mapper:一个是主表的Mapper,...
通过使用简单的 XML 配置文件,iBATIS 可以将 JavaBeans 对象映射到 SQL 语句上,从而实现数据持久化。相比于其他对象关系映射工具,iBATIS 更加简单易用。 #### 安装与升级 iBATIS 的安装过程相对简单,文档中提供...
通过在配置文件中指定日志级别(如DEBUG、INFO、WARN、ERROR),可以控制不同严重程度的日志输出。 2. **iBatis日志实现**:iBatis自身没有内置的日志系统,而是依赖于SLF4J。因此,在使用iBatis时,需要在项目中...
在“vote_struts”中,数据库连接配置、实体类、DAO(数据访问对象)和Service层可能都会存在,它们协同工作,保证数据的正确存储和检索。 安全性是任何Web应用都必须关注的方面,Struts2提供了安全相关的拦截器,...
- **作用**:加快数据检索速度。 #### 业务场景篇 ##### Spring的概述 - **IOC容器**:管理对象生命周期和依赖关系。 - **AOP**:面向切面编程,分离关注点。 - **模块化**:提供多种模块,如Web、Data Access等...
- Hibernate、JDO、CocoBase、TopLink、iBatis等框架简化了数据存储和检索过程。 #### 13. **安全性** - 掌握类加载器的安全模型、代码签名、数字签名、加密学原理,以及JAAS、JCE、JSSE、JGSS等安全/认证API。 ...
- **流处理**:掌握输入输出流的使用,如FileInputStream、BufferedReader等。 - **网络编程**:理解TCP/IP协议,编写简单的客户端和服务端程序。 - **多线程**:学习并发控制机制,如synchronized关键字、volatile...