spring连ibatis,功能中query可以实现,但是insert不能实现,数据没加载到ibatis中,该怎么处理?

wwyyhhww 2009-02-23 02:25:54
因为我是直接运行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>
...全文
190 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
不懂王 2009-02-25
  • 打赏
  • 举报
回复
<insert id="insert" parameterClass="map" >
insert into scott.users (USER_NAME,PASSWORD) values (#userName:VARCHAR#,#password:VARCHAR#)
</insert>

改为
<insert id="insert" parameterClass="java.util.Map" >
insert into scott.users (USER_NAME,PASSWORD) values (#userName:VARCHAR#,#password:VARCHAR#)
</insert>

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧