设为首页 收藏本站
查看: 795|回复: 0

[经验分享] struts2+mybatis+spring框架整合

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-25 03:00:33 | 显示全部楼层 |阅读模式
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  里面就三个字段 id  username password  数据库我已经传到这文章里边了,下载后可以直接用

六.好了快启动tomcat看看成功了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-304967-1-1.html 上篇帖子: Mybatis的namespace问题说明 下篇帖子: MyBatis 根据表结构自动生成代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表