wdcsx 发表于 2016-11-25 03:00:33

struts2+mybatis+spring框架整合

struts2+spring+mybatisstruts2mybatisspringjsp
近期公司要开发新的项目,要用struts2+ibatis+spring框架,所以学习了下,来自己的博客发表下,希望能给大家带来帮助!下

边我把我的myschool开发的源代码以及数据库贴出来!


开发环境 myeclips+tomcate+sql server

开发技术 struts2+ibatis+spring jsp+java

一.创建web项目导入必需的jar文件

               


二.创建并编写配置文件,配置文件比较多。可能有点繁琐。

1.创建并编写ApplicationContext.xml   

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"   
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">   
      
    <!--配置数据源属性文件-->   
    <bean id="propertyConfigurer"   
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">   
      <property name="location">   
            <value>/WEB-INF/configs/sqlServer.properties</value>   
      </property>   
    </bean>   
      
    <!--配置数据源-->   
    <bean id="dataSource"   
      class="org.springframework.jdbc.datasource.DriverManagerDataSource">   
      <property name="driverClassName">   
            <value>${jdbc.driver}</value>   
      </property>   
      <property name="url">   
            <value>${jdbc.url}</value>   
      </property>   
      <property name="username">   
            <value>${jdbc.user}</value>   
      </property>   
      <property name="password">   
            <value>${jdbc.pwd}</value>   
      </property>   
    </bean>   
      
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">      
      <property name="configLocation" value="classpath:com/test/sqlMapper/mybatis_config.xml" />      
      <property name="dataSource" ref="dataSource" />      
    </bean>   
      
      
    <bean id="loginDao" class="org.mybatis.spring.mapper.MapperFactoryBean">   
      <property name="mapperInterface" value="com.test.dao.ILoginDao"/>   
      <property name="sqlSessionFactory" ref="sqlSessionFactory" />   
    </bean>   
   
    <bean id="loginAction" class="com.test.action.LoginAction">   
      <property name="loginDao" ref="loginDao"></property>   
    </bean>   
</beans>

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<!--配置数据源属性文件-->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/WEB-INF/configs/sqlServer.properties</value>
</property>
</bean>

<!--配置数据源-->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${jdbc.driver}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.user}</value>
</property>
<property name="password">
<value>${jdbc.pwd}</value>
</property>
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="configLocation" value="classpath:com/test/sqlMapper/mybatis_config.xml" />
    <property name="dataSource" ref="dataSource" />
</bean>

   
    <bean id="loginDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.test.dao.ILoginDao"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>

<bean id="loginAction" class="com.test.action.LoginAction">
<property name="loginDao" ref="loginDao"></property>
</bean>
</beans>


2.配置数据源当然要有个数据源 属性文件了sqlServer.properties   

Xml代码
jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=login   
jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver   
jdbc.user=sa   
jdbc.pwd=

jdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=login
jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.user=sa
jdbc.pwd=



      我的数据库密码为空pwd当然也要空了。

3.mybatis的配置文件mybatis_config.xml



Xml代码
<?xml version="1.0" encoding="UTF-8" ?>   
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">   
<configuration>   
    <typeAliases>   
      <typeAlias alias="userinfo" type="com.test.entity.UserInfo"/>   
    </typeAliases>   
    <mappers>   
      <mapper resource="com/test/sqlMapper/loginMapper.xml"/>   
    </mappers>   
</configuration>

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias alias="userinfo" type="com.test.entity.UserInfo"/>
</typeAliases>
<mappers>
<mapper resource="com/test/sqlMapper/loginMapper.xml"/>
</mappers>
</configuration>

4.在mybatis_config.xml中的中有个映射文件loginMapper.xml      

Xml代码
<?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">   
<mapper namespace="com.test.dao.ILoginDao">   
      
    <resultMap type="userinfo" id="userMap">   
      <id property="id" column="id"/>   
      <result property="username" column="username"/>   
      <result property="password" column="password"/>      
    </resultMap>   
      
    <select id="getUser" parameterType="String" resultMap="userMap">   
      select * from userinfo where username=#{userName}   
    </select>   
</mapper>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.dao.ILoginDao">

<resultMap type="userinfo" id="userMap">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>

<select id="getUser" parameterType="String" resultMap="userMap">
select * from userinfo where username=#{userName}
</select>
</mapper>


    5.接下来就是web.xml      

Xml代码
<?xml version="1.0" encoding="UTF-8"?>   
<web-app 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">   
   
<context-param>   
    <param-name>contextConfigLocation</param-name>   
    <param-value>/WEB-INF/classes/applicationContext.xml</param-value>   
</context-param>   
   
<listener>   
      <listener-class>   
            org.springframework.web.context.ContextLoaderListener   
      </listener-class>   
</listener>   
   
<filter>      
    <filter-name>struts2</filter-name>      
    <filter-class>      
      org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter      
    </filter-class>      
   
</filter>      
   
<filter-mapping>      
    <filter-name>struts2</filter-name>      
    <url-pattern>/*</url-pattern>      
</filter-mapping>      
   
</web-app>

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter   
</filter-class>

</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

</web-app>



好了所有的配置文件都已经配置好了
三.该写JAVA文件了 接口,实体辅助类,还有action
   
   1.写接口 ILoginDao.java

Java代码
package com.test.dao;   
   
import java.util.List;   
   
public interface ILoginDao {   
    public List getUser(String userName);   
}

package com.test.dao;

import java.util.List;

public interface ILoginDao {
public List getUser(String userName);
}


   2.实体辅助类UserInfo.java

Java代码
package com.test.entity;   
   
public class UserInfo {   
      
    private int id;   
    private String username;   
    private String password;   
    public String getUsername() {   
      return username;   
    }   
    public void setUsername(String username) {   
      this.username = username;   
    }   
    public String getPassword() {   
      return password;   
    }   
    public void setPassword(String password) {   
      this.password = password;   
    }   
    public int getId() {   
      return id;   
    }   
    public void setId(int id) {   
      this.id = id;   
    }   
}

package com.test.entity;

public class UserInfo {

private int id;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}



   3.action 类 LoginAction.java

Java代码
package com.test.action;   
   
import java.util.List;   
   
import com.test.dao.ILoginDao;   
   
public class LoginAction {   
   
      
      private ILoginDao loginDao;   
      private String username;   
      private String password;   
            
   
      public String getUsername() {   
            return username;   
      }   
      public void setUsername(String username) {   
            this.username = username;   
      }   
      public String getPassword() {   
            return password;   
      }   
      public void setPassword(String password) {   
            this.password = password;   
      }   
            
      public ILoginDao getLoginDao() {   
            return loginDao;   
      }   
      public void setLoginDao(ILoginDao loginDao) {   
            this.loginDao = loginDao;   
      }   
            
      public String execute(){   
            String userName = getUsername();   
            String password = getPassword();   
            System.out.println("userName:"+userName+"\n"+"password:"+password);   
            List list = loginDao.getUser(userName);   
            if(list.size()>0){   
                return "success";   
            }else{   
                return "error";   
            }   
               
      }   
            
}

package com.test.action;

import java.util.List;

import com.test.dao.ILoginDao;

public class LoginAction {


private ILoginDao loginDao;
private String username;
private String password;


public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

public ILoginDao getLoginDao() {
return loginDao;
}
public void setLoginDao(ILoginDao loginDao) {
this.loginDao = loginDao;
}

public String execute(){
String userName = getUsername();
String password = getPassword();
System.out.println("userName:"+userName+"\n"+"password:"+password);
List list = loginDao.getUser(userName);
if(list.size()>0){
return "success";
}else{
return "error";
}

}

}


四.该写页面了 页面有三个如下
   1. login.jsp   

Struts2标签代码
<body>   
    <s:form action="login" method="post">   
    <s:textfield name="username" label="用户名:"></s:textfield>   
    <s:textfield name="password" label="密码:"></s:textfield>   
    <s:submit value="提交"></s:submit>   
    </s:form>   
</body>   

<body>
    <s:form action="login" method="post">
    <s:textfield name="username" label="用户名:"></s:textfield>
    <s:textfield name="password" label="密码:"></s:textfield>
    <s:submit value="提交"></s:submit>
    </s:form>
</body>



   2.success.jsp 就几个字登陆成功
      3.error,jsp      就几个字 登录失败
五.创建数据库 login 创建表 userinfo里面就三个字段 idusername password数据库我已经传到这文章里边了,下载后可以直接用

六.好了快启动tomcat看看成功了
页: [1]
查看完整版本: struts2+mybatis+spring框架整合