Ibatis中SqlMapClientTemplate和SqlMapClient的区别

如题所述

SqlMapClientTemplate是org.springframework.orm.ibatis下的
而SqlMapClient是ibatis的

SqlMapClientTemplate是SqlMapClient的封装类.
SqlMapClient中包含着session的管理.
SqlMapClientTemplate用于session的封装,以及异常的捕捉.
所以按照以上的推断来说.应该尽量使用SqlMapClientTemplate.
保证session以及Exception的正常以及统一.

下面是两种类型在spring中的集成配置及用法:、
SqlMapClientTemplate:

1、在spring中的配置

[html] view plaincopyprint?
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:/sqlmap-config.xml</value>
</property>
</bean>
<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
<bean id="accountDAO" class="com.raycloud.test.dao.AccountDAO">
<property name="sqlMapClientTemplate" ref="sqlMapClientTemplate"></property>
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:/sqlmap-config.xml</value>
</property>
</bean>
<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
<bean id="accountDAO" class="com.raycloud.test.dao.AccountDAO">
<property name="sqlMapClientTemplate" ref="sqlMapClientTemplate"></property>
</bean>
2、在dao中的实现

[java] view plaincopyprint?
@Repository//使用该注解相当于声明了一个bean
public class AccountDAO {

SqlMapClientTemplate sqlMapClientTemplate;

public void setSqlMapClientTemplate(SqlMapClientTemplate sqlMapClientTemplate) {
this.sqlMapClientTemplate = sqlMapClientTemplate;
}

public Integer addAccount(Account account) throws SQLException{
return (Integer)this.sqlMapClientTemplate.insert("Account.insertAccount", account);
}
}
@Repository//使用该注解相当于声明了一个bean
public class AccountDAO {

SqlMapClientTemplate sqlMapClientTemplate;

public void setSqlMapClientTemplate(SqlMapClientTemplate sqlMapClientTemplate) {
this.sqlMapClientTemplate = sqlMapClientTemplate;
}

public Integer addAccount(Account account) throws SQLException{
return (Integer)this.sqlMapClientTemplate.insert("Account.insertAccount", account);
}
}

SqlMapClient:
1、在spring中的配置

[html] view plaincopyprint?
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:/sqlmap-config.xml</value>
</property>
</bean>
<bean id="accountDAO" class="com.raycloud.test.dao.AccountDAO">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:/sqlmap-config.xml</value>
</property>
</bean>
<bean id="accountDAO" class="com.raycloud.test.dao.AccountDAO">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>

2、在dao中的实现

[java] view plaincopyprint?
@Repository//使用该注解相当于声明了一个bean
public class AccountDAO {

SqlMapClient sqlMapClient;

public void setSqlMapClient(SqlMapClient sqlMapClient) {
this.sqlMapClient = sqlMapClient;
}

public Integer addAccount(Account account) throws SQLException{
return (Integer)this.sqlMapClient.insert("Account.insertAccount", account);
}
}
@Repository//使用该注解相当于声明了一个bean
public class AccountDAO {

SqlMapClient sqlMapClient;

public void setSqlMapClient(SqlMapClient sqlMapClient) {
this.sqlMapClient = sqlMapClient;
}

public Integer addAccount(Account account) throws SQLException{
return (Integer)this.sqlMapClient.insert("Account.insertAccount", account);
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

Ibatis中SqlMapClientTemplate和SqlMapClient的区别
<property name="sqlMapClientTemplate" ref="sqlMapClientTemplate"><\/property> <\/bean> 2、在dao中的实现 [java] view plaincopyprint?Repository\/\/使用该注解相当于声明了一个bean public class AccountDAO { SqlMapClientTemplate sqlMapClientTemplate;public void setSqlMapClientTemplate(SqlMapClientTemplate ...

使用ibatis自带的分页 getSqlMapClientTemplate().queryForList("select...
传递三处不同啊 第一次 传递参数page =1 然后 你获得 start end , 第二次 page=2 ,start 和end发生改变 了啊

spring整合ibatis时在DAOImpl中,是不是必须继承SqlMapClientDao...
不是的还可以集成SqlMapClientTemplate这个类。

ibatis查询问题 SqlMapClient operation; uncategorized SQLExce...
没有queryForObject(id,String ,String);这方法 你参数列表错误 可以这样写 queryForObject(id, parameterObject)及empBean em=new empBean();queryForObject("logins",em);

面试Ibatis与mybatis区别
这个区别不是很大,最主要的区别就是mybatis简化了编码的过程,不需要去写dao的实现类,直接写一个dao的借口,再写一个xml配置文件,整个mybatis就配置好了,也就是数据库就连接好了,然后再service里面调用dao就可以了,但是ibatis则不可以,必须要写dao的实现类,在写个什么return getSqlMapClientTemplate()....

ibatis No SqlMapClient specified
ApplicationContext appContext = new ClassPathXmlApplicationContext(new String []{"applicationContext.xml","SqlMapConfig.xml"});UserDao userDao = (UserDao) appContext.getBean("UserModelDaoImpl");应该Spring容器中来取得bean 然后进行相应操作 ...

No SqlMapClient specified怎么解决?谢谢。spring + ibatis。
应该是spring注入ibatis 失败 或者你没有注入 在spring配置文件里 <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"><value>classpath:SqlMapConfig.xml<\/value><\/property> <\/bean> ...

...student) { getSqlMapClientTemplate().insert("Student.
未找到 Student.studentInsert ,检查下Ibatis XML或者变量名

ibatis处理for循环保存数据
在 selectkey中使用 insert语句,当多条时会出现上述错误,如果有出现多条同时插入的话,不要考虑将不insert语句写在selectkey中

软体体系结构中,层体系结构的优点是哪些,缺点是哪些,请简述。
这个区别不是很大,最主要的区别就是mybatis简化了编码的过程,不需要去写dao的实现类,直接写一个dao的介面,再写一个xml配置档案,整个mybatis就配置好了,也就是资料库就连线好了,然后在service里面直接呼叫dao就可以了,但是ibatis则不可以,必须要写dao的实现类,再写个return getSqlMapClientTemplate().queryForList()...

相似回答
大家正在搜