SSM框架

一、基本概念

    使用SSM(spring、SpringMVC和Mybatis)

1.1、Spring

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

1.2、SpringMVC

   Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

1.3、MyBatis

   MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

二、根据图来理解使用SSM添加数据

  首先导入jar

  其次

  

(一)配置实体

public class UserInfo {
       private Integer userid;//用户的id
    private Integer uage;//用户年龄
    private String uname;//用户姓名
    public Integer getUage() {
        return uage;
    }
    public void setUage(Integer uage) {
        this.uage = uage;
    }
    public String getUname() {
        return uname;
    }
    public void setUname(String uname) {
        this.uname = uname;
    }
    public Integer getUserid() {
        return userid;
    }
    public void setUserid(Integer userid) {
        this.userid = userid;
    }

}

(二)配置实体的小配置(Mybatis的配置)

<?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="cn.yxj.dao.IUserInfoDAO">
    <select id="add" parameterType="cn.yxj.entity.UserInfo">
    <!-- <select id="add" parameterType="UserInfo"> 需要别名在mybatis-config.xml-->
                                <!-- 数据库创建表的时候uid和id是关键字 -->
                    <!-- 添加值的顺序要和数据库一样 -->
        insert into userinfo values(#{uname},#{uage},SEQ_SSM.nextval)
    </select>
</mapper>

(三)创建dao接口

//不需要dao的实现类,通过代理生成
public interface IUserInfoDAO {
//添加用户数据
 public void add(UserInfo info);

}

注意点:不需要dao的实现类,通过代理生成

(四)创建service

  ServiceDao接口

public interface IUserInfoService {
    //添加用户
    public void add(UserInfo info);
}
 

ServiceDaoImpl实现

public class UserInfoServiceImpl implements IUserInfoService {

    private IUserInfoDAO dao;

    public void add(UserInfo info) {
        dao.add(info);
    }
    public IUserInfoDAO getDao() {
        return dao;
    }
    public void setDao(IUserInfoDAO dao) {
        this.dao = dao;
    }

}

(五)配置Controller

public class UserInfoController implements Controller{

    private IUserInfoService service;
    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        String uname=request.getParameter("uname");
        Integer uage=Integer.valueOf(request.getParameter("uage"));

        UserInfo info=new UserInfo();
        info.setUage(uage);
        info.setUname(uname);

        service.add(info);

        return new ModelAndView("/welcome.jsp");
    }
    public IUserInfoService getService() {
        return service;
    }
    public void setService(IUserInfoService service) {
        this.service = service;
    }
}

(六)配置application.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:context="http://www.springframework.org/schema/context"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
         http://www.springframework.org/schema/aop
         http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
         http://www.springframework.org/schema/tx
         http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
           http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context-4.1.xsd  " >

      <!-- 01.配置数据源 -->
   <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${driverClass}"></property>
         <property name="jdbcUrl" value="${jdbcUrl}"></property>
         <property name="user" value="${user}"></property>
         <property name="password" value="${password}"></property>
   </bean>

    <!-- 1.1 关联jdbc.properties -->
    <context:property-placeholder location="classpath:jdbc.properties" />

    <!-- 02.配置SessionFactory -->
    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!-- 03.生成dao代理對象 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>
        <property name="basePackage" value="cn.yxj.dao"></property>
    </bean>

    <!--04.配置service -->
    <bean id="userService" class="cn.yxj.service.UserInfoServiceImpl">
        <property name="dao" ref="IUserInfoDAO"></property>
    </bean>

    <!-- 05.配置action -->
    <bean id="/userAction.do" class="cn.yxj.controller.UserInfoController">
        <property name="service" ref="userService"></property>
    </bean>
    <!-- 06.配置事务管理器 -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!-- 07.配置开启事务操作 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <!--指定在连接方法上应用的事务属性 -->
            <tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED" />
        </tx:attributes>
    </tx:advice>
    <!-- aop配置 -->
    <aop:config>
        <aop:pointcut expression="execution(* *..service.*.*(..))"
            id="stockPointcut" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="stockPointcut" />
    </aop:config>

</beans>

(七)配置jdbc.properties

driverClass=oracle.jdbc.driver.OracleDriver
jdbcUrl=jdbc\:oracle\:thin\:@localhost\:1521\:orcl
user=T2
password=T2

(八)配置 mybatis-config.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>
     <package name="cn.yxj.entity"/>
  </typeAliases> -->
     <mappers>
        <mapper resource="cn/yxj/entity/IUserInfoDAO.xml" />
    </mappers>
</configuration>

(九)配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    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_2_5.xsd">
  <display-name></display-name>
  <!-- 1.针对Spring配置:读取配置文件 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

  <!-- 注册ServletContext监听器,创建容器对象,并且将ApplicationContext对象放到Application域中 -->
  <listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

 <!-- 针对SpringMVC的配置::::::中央调度器:本质上一个serlvet            配置的关于SpringmVC组件 -->
     <servlet>
       <servlet-name>springmvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:applicationContext.xml</param-value>
       </init-param>
       <!-- 1表示正常初始化配置文件 init-param    0、-1相当于没有设置 -->
       <load-on-startup>1</load-on-startup>
     </servlet>
     <!-- 映射文件 -->
     <servlet-mapping>
         <servlet-name>springmvc</servlet-name>
         <url-pattern>*.do</url-pattern>
     </servlet-mapping>

    <!-- 解决乱码的过滤器 -->
    <filter>
       <filter-name>CharacterEncodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <!-- 进入的流 -->
      <init-param>
         <param-name>encoding</param-name>
         <param-value>utf-8</param-value>
      </init-param>
       <!-- 出去的流 -->
       <init-param>
         <param-name>forceEncoding</param-name>
         <param-value>true</param-value>
      </init-param>
    </filter>

    <!-- 配置映射 -->
     <filter-mapping>
         <filter-name>CharacterEncodingFilter</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

(十)配置页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <style type="text/css">
       form{
         margin:0px auto;
         border:1px solid red;
         width:500px;
         padding:20px;
       }
    </style>
    <title></title>
  </head>

  <body>
    <h1>SSM整合</h1>
    <form action="${pageContext.request.contextPath }/userAction.do" method="post">
            用户名:<input name="uname"/> <br/>
            用户年龄<input name="uage"/><br/>
       <input type="submit" value="save"/>
    </form>
  </body>
</html>
时间: 2024-11-05 11:48:37

SSM框架的相关文章

java企业站源码 响应式 兼容手机平板PC 主流SSM 框架 freemaker 静态引擎

java 企业网站源码 前后台都有 静态模版引擎, 代码生成器大大提高开发效率 前台: 支持三套模版, 可以在后台切换 点击:获取地址   QQ 313596790 官网 http://www.fhadmin.org/ 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问速度快,轻便,对服务器负担小 3.网站前端采用主流的响应式布局,同一页面同时支持PC.平板.手机(三合一)浏览器访问 4

SSM框架 (Spring+SpringMVC+MyBatis)

SSM框架--详细整合教程(Spring+SpringMVC+MyBatis) springspringmvcmybatis整合教程ssm整合 1.基本概念  1.1.Spring          Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.Spri

SSM框架中使用Spring的@Transactional注解进行事务管理

一 介绍 在企业级应用中,保护数据的完整性是非常重要的一件事.因此不管应用的性能是多么的高.界面是多么的好看,如果在转账的过程中出现了意外导致用户的账号金额发生错误,那么这样的应用程序也是不可接受的 数据库的事务管理可以有效地保护数据的完整性(PS:关于数据库的事务管理基础可以参考我以前写过的这篇文章:http://www.zifangsky.cn/385.html),但是原生态的事务操作需要写不少的代码,无疑是非常麻烦的.在使用了Spring框架的应用中,我们可以使用@Transactiona

从零开始搭建SSM框架过程记录

参考CSDN博客:SSM框架--详细整合教程(Spring+SpringMVC+MyBatis) 参考博客园博客:SSM框架--详细整合教程(Spring+SpringMVC+MyBatis) 错误注意事项参考博客:SSM框架--整合注意事项 参考博客:史上最全最强SpringMVC详细示例实战教程 1.开发环境搭建 参考博客:MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建 2.Maven Web项目创建 参考博客: 使用maven创建web项目 3.MyBatis Gen

ssm框架搭建(上)

前言 之前也说过,工作做的开发都是基于公司现有的框架,心里很没底.所以一直想自己能够搭建出ssm框架.经过多次尝试,终于成功了.这边文章将从两个方面进行,一是框架搭建,二是简单的增删查改. 正文 1.环境搭建 这里采用现在流行的maven方式,而是将需要的jar放在web_inf\lib下面了. 直接贴了一张图,有点任性了...整个工程的结构如下图所示 在conf子包中,是配置文件.mapper下对应mybatis的映射文件,里面包含了相应的sql语句.(mvcLearn\conf\mapper

SSM框架学习,乱码问题

SSM框架基本上视频看完了,准备上手来个小项目练习一下,就选择了图书管理系统. Mybatis用SQL语句,多个表联合查询比较恶心...典型的就是用户跟角色,附加部门的查询,resultmap配置麻烦的要死.这点感觉远不如hibernate舒服的说 然后是SpringMVC,中文乱码问题始终没有解决... <filter>        <filter-name>CharacterEncodingFilter</filter-name>        <filte

shiro权限控制(一):shiro介绍以及整合SSM框架

shiro安全框架是目前为止作为登录注册最常用的框架,因为它十分的强大简单,提供了认证.授权.加密和会话管理等功能 . shiro能做什么? 认证:验证用户的身份 授权:对用户执行访问控制:判断用户是否被允许做某事 会话管理:在任何环境下使用 Session API,即使没有 Web 或EJB 容器. 加密:以更简洁易用的方式使用加密功能,保护或隐藏数据防止被偷窥 Realms:聚集一个或多个用户安全数据的数据源 单点登录(SSO)功能. 为没有关联到登录的用户启用 "Remember Me&q

完整搭建SSM框架之黑暗中的摸索

JavaWeb基础该学的都了解过一点了,那么必须要在项目中来练习和升华了(就像高三对数理化的整合练习!) 一共分为三个步骤: 1.环境的选择和准备 2.工程的创建 3.代码和配置文件的创建 环境 工程创建 在pom.xml文件中加入依赖包(去除index.jsp的报错) <!-- 导入java ee jar 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api<

SSM框架——整合搭建流程

本文是作者在看完 http://blog.csdn.net/zhshulin/article/details/37956105/ 之后自己搭建的流程: 1.首先创建maven工程,使用哪种方式进行创建都可以,可以参考博主之前的文章: <两种方式创建Maven项目[方式二]><两种方式创建Maven项目[方式一]> 2.先看看搭建最终搭建完成后的项目结构: 3.搭建流程: 数据库使用的是:mysql ide使用的是:eclipse[Version: Neon.2 Release (4

[JSP]Maven+SSM框架(Spring+SpringMVC+MyBatis)

来源:http://blog.csdn.net/zhshulin/article/details/37956105?utm_source=tuicool&utm_medium=referral(以下博文对原博文有改动和补充) 开发环境: Eclipse Java EE IDE for Web Developers. Version: Mars.2 Release (4.5.2) apache-tomcat-8.0.33 jdk1.8.0_77 MySQL 5.0.11-dev(官网下载需要账号登