spring连ibatis,功能中query可以实现,但是insert不能实现,数据没加载到ibatis中,该怎么处理?
因为我是直接运行application的所以直接写个主函数
public class Client1 {
public static void main(String args[]){
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext-*.xml");
LoginActionForm loginForm = new LoginActionForm();
LoginManager loginManager = (LoginManager)factory.getBean("loginManager");
loginForm.setUserName("zhongguo");
loginForm.setPassword("666");
loginManager.addUsers(loginForm);
}
}
接口
public interface LoginManager {
public void addUsers(LoginActionForm loginForm);
public List queryUsers();
}
接口实现类
public class LoginManagerImpl implements LoginManager {
private ServiceIbatis serviceIbatis;
public void setServiceIbatis(ServiceIbatis serviceIbatis) {
this.serviceIbatis = serviceIbatis;
}
public void addUsers(LoginActionForm loginForm){
serviceIbatis.addUsers(loginForm);
}
public List queryUsers(){
return this.serviceIbatis.query();
}
}
业务类
public class ServiceIbatis extends SqlMapClientDaoSupport {
public void addUsers(LoginActionForm loginForm) {
Map map = new HashMap();
map.put("userName", loginForm.getUserName());
map.put("password", loginForm.getPassword());
this.getSqlMapClientTemplate().insert("LoginForm.insert", map);
}
public List query(){
return this.getSqlMapClientTemplate().queryForList("LoginForm.select");
}
}
SQLMAP
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="LoginForm">
<select id="select" resultClass="java.util.HashMap">
select
user_name as "userName",
password as "password"
from users
</select>
<insert id="insert" parameterClass="map" >
insert into scott.users (USER_NAME,PASSWORD) values (#userName:VARCHAR#,#password:VARCHAR#)
</insert>
</sqlMap>
sqlMapConfig
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings useStatementNamespaces="true" />
<sqlMap resource="com/wyh/login/sqlMap/LoginForm.xml"/>
<sqlMap resource="com/wyh/login/sqlMap/LoginForm1.xml"/>
</sqlMapConfig>
applicationContext-beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="loginManager" class="com.wyh.login.manager.LoginManagerImpl">
<property name="serviceIbatis" ref="serviceIbatis"></property>
</bean>
<bean id="serviceIbatis" class="com.wyh.login.service.ServiceIbatis">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
</beans>
applicationContext-common.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:SqlMap.properties</value>
</list>
</property>
</bean>
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:sqlMapConfig.xml</value>
</property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="driverClassName">
<value>${jdbc.driver}</value>
</property>
<property name="username">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
<property name="defaultAutoCommit" value="false"></property>
</bean>
<bean id="txManagers"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<tx:advice id="txAdvice" transaction-manager="txManagers">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="allManagerMethod"
expression="execution(* com.wyh.usermgr.service.*.*(..))" />
<aop:advisor pointcut-ref="allManagerMethod"
advice-ref="txAdvice" />
</aop:config>
</bean>
</beans>