您的位置:首页 > 编程语言 > Java开发

Struts2、Spring3.2.4、Mybatis和Mysql数据库整合开发

2016-03-15 09:32 561 查看
一、Struts与Spring

1. 配置

web.xml配置:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0"

    xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>

<welcom-file-list>

  <welcom-file>index.jsp</welcom-file>

</welcom-file-list>

<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>

<context-param>

  <param-name>contextConfigLocation</param-name>

  <param-value>/WEB-INF/classes/spring.xml</param-value>

</context_param>

<listener>

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

</listener>

</web-app>

 

struts.xml配置:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

        "-//Apache Software Foundation//DTD Strusts Configuration 2.0//EN"

        "http://struts.apache.ogr/dtds/struts-2.0.dtd">

<struts>

  <include file="struts-default.xml" />

  <package name="default" extends="struts-default">

    <action name="login" class="loginAction" method="login">

      <result name="login">login.jsp</result>

      <result name"ok">/sucess.jsp</result>

      <result name="error">/error.jsp</result>

    </action>

  </package>

</struts>

 

spring.xml配置:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

        "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

  <!-- 引入Mybatis配置文件 -->

  <import resource="/spring_mybatis.xml" />

  <!-- spring application 程序中使用的Spring工具对象,用来获取bean对象 -->

  <bean id="applicationUtil" class="spring.ApplicationUtil"></bean>

  <!-- struts2 Action 指定对应的ACTION类 -->

  <bean id="loginAction" class="action.LoginAction" singleton="false"></bean>

</beans>

 

2. Jsp页面

<%@ page longuage="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

<!DOCTYPE html>

<html lang="zh-cn">

<hean>

  <meta charset="utf-8">

  <base href="<%=basePath%>">

  <title>login</title>

  <link rel="stylesheet" type="text/css" href="css/login.css">

  <script type="text/javascript" src="js/login.js"></script>

</head>

<body>

  <form method="post" action="login">

    <input type="text" name="username"></input>

    <input type="password" name="password"></input>

    <input type="submit" value="login" />

  </form>

</body>

</html>

 

ok.jsp和error.jsp分别用来显示成功与失败

 

3. Action类

public class Loginaction extends ActionSuport {

  private String username="";

  private String password=""; 

  public String login(){

    //验证代码

  }

  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;

  }

}

 

二、Spring与Mybatis

1. 配置

spring_mybatis.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:context="http://www.springframework.org/schema/context"

        xmlns:aop="http://www.springframework.org/dtd/schema/aop"

        xmlns:tx="http://www.springframework.org/dtd/schema/tx"

        xsi:schemaLocation="http://www.springframework.org/schema/beans

            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
            http://www.springframework.org/dtd/spring-beans.dtd">
  <!-- context:annotation-config 引入数据库配置文件 -->

  <context:property-placeholder location="classpath:path/jdbc.properties"/>

  <!-- 数据源 -->

  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

    <property name="driverClassName" value="${driver}"/>

    <property name="url" value="${url}"/>

    <property name="username" value="${username}"/>

    <property name="password" value="${password}"/>

  </bean>

  <!-- session工厂对象 -->

  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionfactoryBean">

    <property name="dataSource" ref="datasource" />

    <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml />

    <property name="typeAliasesPackage" value="mybatis.entity" />

  </bean>

  <!-- 事物管理对象 -->

  <bean id="transact
b738
ionManager" class="org.springframework.jdbc.datasource.DataSourceTranctionManager">

    <property name=dataSource" ref="dataSource" />

  </bean>

  <!-- 持久化bean -->

  <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactorybean">

    <property name="sqlSessionFactory" ref="sqlSessionFactory" />

    <property name="mapperInterface" value="mybatis.mapper.UserMapper" />

  </bean>

  <bean id="userService" class="mybatis.services.UserServiceImpl">

    <property name="userMapper" ref="userMapper" />

  </bean>

</beans>

 

数据源jdbc.properties配置:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://192.168.1.100:3306/dataName?useUnicode=true&characterEncoding=UTF-8

username=root

password=123456

 

2. 持久化类

mybatis.entity.User.java实体类:

public class User {

  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;

  }

}

mybatis.mapper.UserMapper.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">

.UserMap<mapper namespace="mybatis.mapperper">

  <insert id="add" parameterType="User">

    insert into user(username,password) value(#{username}, #{password})

  </insert>

  <select id="getListAll" resultType="User">

    select * from user

  </select>

  <select id="getUser" resultType="User">

    select * from user where username=#{username}

  </select>

  <update id="update">

    update user set password=#{1} where username=#{0}

  </update>

  <delete id="delete" parameterType="java.lang.String">

    delete from user where username=#{username}

  </delete>

</mapper>

 

maybatis.mapper.UserMapper.java接口:

public interface UserMapper {

  public void add(User user);

  public list<User> getListAll();

  public User getUser(String username);

  public void update(String username, String password);

  public void delete(String username);

}

 

mybatis.services.UserServiceImpl.java服务类:

public class UserServiceImpl implements UserService {

  private UserMapper userMapper;

  public boolean login(String username, String password) {

    try{

      user=userMapper.getUser(String username);

      if(password.equals(user.getPassword())){

        return true;

      }else{

        return false;

      }

    }catch(Exception e){

      return false;

    }

  }

  public UserMapper getUserMapper() {

    return userMapper;

  }

  public void setUserMapper(UserMapper userMapper) {

    this.userMapper=userMapper;

  }

}

 

mybatis.services.UserService.java服务接口类:

public interface Userservice {

  public boolean login(String username, String password);

}

 

3. 程序中获取spring bean

spring工具类ApplicationUtil.java:

public class applicationUtil implements ApplicationContextAware {

  private static ApplicationContext applicationContext;

  public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {

    ApplicationUtil.applicationContext = applicationContext;

  }

  public static Object getBean(String name) {

    return applicationContext.getBean(name);

  }

}

 

获取bean:

UserService userService = (UserService)ApplicationUtil.getBean("userService");

 

三、二级缓存

Mybatis加二级缓存方法:

1. 实体类继承Serializable

public class User implements Serializable {

private static final long serialVersionUID = 1L;

...

}

2. mybatis配置UserMapper.xml加入cache标签

<mapper namespace="mybatis.mapperper">

  <cache/>

  ...

</mapper>

 

四、事务管理

用spring的aop面向切面做的事务管理

1. 配置

spring_mybatis.xml配置如下:

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

  <property name="dataSource" ref="dataSource" />

</bean>

<tx:advice id="userTxAdvice" transaction-manager="transactionManager">

  <tx:attributes>

    <tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException" />

    <tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" />

    <tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" />

    <tx:method name="select*" propagation="SUPPORTS" />

  </tx:attributes>

</tx:advice>

<aop:config>

  <aop:pointcut id="pc" expression="execution(public * mybatis.services.*.*(..))" />

  <aop:advisor pointcut-ref="pc" advice-ref="userTxAdvice" />

</aop:config>

 

2. 所需Jar包

aopalliance-1.0.jar

aspectjweaver-1.6.12.jar

 

五、Jar包

Struts2.3.24引入包:

asm-3.3.jar

asmcommons-3.3.jar

asm-tree-3.3.jar

commons-fileupload-1.3.1.jar

commons-io-2.2.jar

commons-lang3-3.2.jar

commons-logging-1.1.3.jar

freemarker-2.3.22.jar

javassist-3.11.0.GA.jar

ognl-3.0.6.jar

struts2-core-2.3.24.jar

xwork-core-2.3.24.jar

 

servlet包:

servlet-api-2.5.jar

servlet-api-2.5-sources.jar

 

Spring3.2.4相关Jar包:

spring-aop-3.2.4.RELEASE.jar

spring-aspects-3.2.4.RELEASE.jar

spring-beans-3.2.4.RELEASE.jar

spring-context-3.2.4.RELEASE.jar

spring-context-support-3.2.4.RELEASE.jar

spring-core-3.2.4.RELEASE.jar

spring-expression-3.2.4.RELEASE.jar

spring-instrument-3.2.4.RELEASE.jar

spring-jdbc-3.2.4.RELEASE.jar

spring-orm-3.2.4.RELEASE.jar

spring-struts-3.2.4.RELEASE.jar

spring-tx-3.2.4.RELEASE.jar

spring-web-3.2.4.RELEASE.jar

struts2-spring-plugin-2.3.24.jar

 

Mybatis3.2.4相关Jar包:

mybatis-3.2.4.jar

mybatis-spring-1.1.1.jar

mysql-connector-java-5.1.36-bin.jar

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息