文件结构
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 指定Spring配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:spring/applicationContext*.xml<!--spring配置文件位置-->
</param-value>
</context-param>
<!-- 启动Web容器时,自动装配ApplicationContext的配置信息,实例化ApplicationContext-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!--配置struts-->
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
struts.xml
<struts>
<package name="login" namespace="/login" extends="struts-default">
<action>
<result></result>
</action>
</package>
</struts>
jdbc.properties
database.driver=oracle.jdbc.driver.OracleDriver
database.url=jdbc:oracle:thin:@ip:1521:orcl
database.username=scott
database.password=user
applicationContext-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="LoginAction" class="com.zzl.shebao.action.LoginAction">
<property name="loginService">
<ref bean="loginService" />
</property>
</bean>
</beans>
applicationContext-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="loginService" class="com.zzl.shebao.service.impl.LoginServiceImpl">
<property name="loginDao">
<ref bean="loginDao" />
</property>
</bean>
</beans>
applicationContext-dao.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="loginDao" class="com.zzl.shebao.dao.LoginDao" scope="prototype">
<property name="sqlMapClient">
<ref bean="sqlMapClient" />
</property>
</bean>
</beans>
applicationContext-datasource
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:jdbc.properties</value>
</list>
</property>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${database.driver}" />
<property name="url" value="${database.url}" />
<property name="username" value="${database.username}" />
<property name="password" value="${database.password}" />
<property name="testOnBorrow">
<value>true</value>
</property>
<property name="testWhileIdle">
<value>true</value>
</property>
<property name="validationQuery">
<value>SELECT 1 from dual</value>
</property>
</bean>
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:ibatis/sql-map-config.xml</value>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
sql-map-config.xml
<?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>
<sqlMap resource="ibatis/user.xml" />
</sqlMapConfig>
user.xml
<?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="User">
<typeAlias alias="String" type="java.lang.String" />
<typeAlias alias="user" type="com.zzl.shebao.entity.User" />
<resultMap id="user-result" class="user">
<result property="id" column="ID" />
<result property="username" column="USERNAME" />
<result property="password" column="PASSWORD" />
<result property="permission" column="PERMISSION" />
</resultMap>
<select id="getUser" resultMap="user-result" parameterClass="user">
select id, username, password, permission from zzl_user where username=#username# and password=#password#
</select>
<insert id="adduser" parameterClass="user">
<selectKey resultClass="int" keyProperty="id">
select ZZL_USER_ID_SEQUENCE.nextval as id from dual
</selectKey>
insert into zzl_user(id,username,password,permission)
values (#id#,#username#,#password#,#permission#)
</insert>
<select id="check" resultMap="user-result" parameterClass="user">
select id, username, password, permission from zzl_user where username=#username#
</select>
</sqlMap>
LoginDao.java
package com.zzl.shebao.dao;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.zzl.shebao.entity.User;
public class LoginDao extends SqlMapClientDaoSupport
{
public User getUser(User user)
{
return (User) this.getSqlMapClientTemplate().queryForObject("User.getUser", user);
}
}