1.今天在搭建 struts2.3.4 + spring 3.1.3+ibatis2.* 的时候,使用spring注入 mysql数据库,按照ibatis配置之后,在 配置到的时候,一直出现No SqlMapClient specified 这个错误,详细如下
java.lang.IllegalArgumentException: No SqlMapClient specified
at org.springframework.util.Assert.notNull(Assert.java:112)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:157)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:268)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:262)
at com.om.dao.common.AbstractDaoImpl.selectCount(AbstractDaoImpl.java:11)
at com.om.dao.DaoTestImpl.getCount(DaoTestImpl.java:9)
我的 java 代码 是:
package com.om.dao.common;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
public class AbstractDaoImpl extends SqlMapClientDaoSupport implements AbstarctDao {
//获得一个公共的模板
private SqlMapClientTemplate sqlMapClientTemplate = this.getSqlMapClientTemplate();
@Override
public int selectCount(String sql) {
Object obj = sqlMapClientTemplate.queryForObject(sql);
if(null != obj){
return Integer.valueOf(obj.toString());
}else{
return 0;
}
}
}
然后我修改java代码之后就可以了,不会再出现错误:
package com.om.dao.common;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
public class AbstractDaoImpl extends SqlMapClientDaoSupport implements AbstarctDao {
// private SqlMapClientTemplate sqlMapClientTemplate = this.getSqlMapClientTemplate();
@Override
public int selectCount(String sql) {
// 注意修改的是这里 ,直接让 获得模板的方法在这里使用 ,
Object obj = this.getSqlMapClientTemplate().queryForObject(sql);
if(null != obj){
return Integer.valueOf(obj.toString());
}else{
return 0;
}
到现在也没弄明白 这个为什么第一种方式不行? 待解答 ,查看资料 继续
...................
分享到:
相关推荐
通过调用`SqlMapClient.startTransaction()`开启事务,`SqlMapClient.commitTransaction()`提交事务,或者`SqlMapClient.rollbackTransaction()`回滚事务。 6. **异常处理**: 在初始化SqlMapClient或执行数据库...
`SqlMapClient`对象是iBatis的核心接口,它提供了对数据库进行CRUD(Create、Read、Update、Delete)操作的能力,并且支持事务管理。由于`SqlMapClient`是线程安全的,因此在实际应用中,通常会将其作为单例模式来...
SqlMapClient sqlMapClient = sqlMapClientTemplate.getSqlMapClient(); try { // 开始事务 sqlMapClient.startTransaction(); // 开始批处理 sqlMapClient.startBatch(); for (Reply reply : replyList) {...
private static SqlMapClient sqlMapClient = null; static { try { Reader reader = com.ibatis.common.resources.Resources.getResourceAsReader("com/itcast/SqlMapConfig.xml"); sqlMapClient = ...
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <value>classpath:SqlMapConfig.xml <property name="dataSource" ref="dataSource"></property> ...
SqlMapClient可以通过SqlMapClientBuilder类来构建,这个类提供了加载XML配置文件并初始化SqlMapClient的方法。 Ibatis的配置文件中,你可以定义SQL语句的映射,这些映射位于独立的XML文件中,通常命名为xxxSqlMap....
SqlMapClient sqlMapClient = (SqlMapClient) applicationContext.getBean("sqlMapClient"); ``` 2. **开启事务**:使用SqlMapClient提供的方法开启一个新的事务。 ```java Transaction tx = new Transaction...
下面是创建`SqlMapClient`实例的一个示例类`SqlMapUtil`,该类通过静态方法`getSqlMapClient()`返回`SqlMapClient`实例。 ```java import java.io.IOException; import com.ibatis.common.resources.Resources...
- **SqlMapClient 实例化**:通过 `SqlMapClientBuilder` 创建 `SqlMapClient` 实例,这是Ibatis的核心组件之一。 - **QueryForList 方法**:用于查询所有记录,其中 `"queryAll"` 是映射文件中 `<select>` 元素的 `...
public StudentDAO(SqlMapClient sqlMapClient) { this.sqlMapClient = sqlMapClient; } public List<Student> getStudentsByTeacherId(String teacherId) { return sqlMapClient.queryForList(...
3.3 SQLMAPCLIENT基本操作示例 6 3.3.1 数据写入操作(insert, update, delete) 6 3.3.2 数据查询 (select) 7 3.3.3 在指定对象中存放查询结果(select) 7 3.3.4 执行批量查询 (select) 7 3.3.5 关于AutoCommit 7 ...
在批处理操作中,需要使用SqlMapClient的startTransaction()方法来启动事务,startBatch()方法来启动批处理,然后执行批处理操作,最后使用executeBatch()方法来执行批处理,commitTransaction()方法来提交事务。...
部分配置代码,所有代码都有,很全 class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <value>classpath:jdbc... <property name="sqlMapClient" ref="sqlMapClient"> </bean>
例如,使用 `sqlMapClient.queryForObject(id, parameter)` 执行查询,`sqlMapClient.insert(id, parameter)` 插入数据等。 **Ibatis API** Ibatis 提供了一些基本的API,如查询、添加、删除和修改方法。通常,会...
SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(Resources.getResourceAsStream("SqlMapConfig.xml")); // 执行查询 List<Account> accounts = (List) sqlMapClient.queryForList("getAccount...