SpringMVC札集(10)——SSM框架整合

原创 2017年08月05日 20:01:01

自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理


探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制


Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南


之前我们学习了Mybatis和SpringMVC,现在我们将它们与Spring进行整合,搭建起SSM框架

整合思路

先来看一下在SSM框架中各部分的作用及其相互衔接

这里写图片描述

从这幅图中我们可以看出来:利用Spring将各层进行整合

  • 通过Spring管理表现层的controller(handler)
  • 通过Spring管理业务层service
  • 通过Spring管理持久层的mapper(dao)
  • 通过Spring进行事务控制

整合之后,执行流程为:
请求—–>controller—–>service—–>mapper—–>数据库

所以,我们的整合过程可以大概分为三步

第一步:整合mapper(dao)
通过Spring管理mapper接口。比如:可使用mapper扫描器自动扫描mapper接口并在Spring中进行注册。

第二步:整合service
通过Spring管理 service接口。比如:可将service接口配置在Spring配置文件中;并在service层实现事务控制。

第三步:整合SpringMVC
SpringMVC是spring的模块,故不需要整合。


环境准备

在此准备搭建SSM框架所需的开发环境

准备Jar包

在SSM框架中用到的jar稍多,但是大部分都是属于SpringMVC或者MyBatis的,其余少数属于整合时所必须的。

这里写图片描述

准备表

CREATE TABLE student( 
     id INT PRIMARY KEY AUTO_INCREMENT,
     name VARCHAR(100), 
     gender VARCHAR(10), 
     birthday DATE 
);

我们建立数据库mb,并创建一张表student并为其插入数据。

这里写图片描述

嗯哼,在完成这些最基本的要素之后,我们开始整合SSM框架;最终它所呈现的结构如上图所示。


整合mapper(dao)

Student.java

/**
 * 本文作者:谷哥的小弟
 * 博客地址:http://blog.csdn.net/lfdfhl
 */
package cn.com.bean;

import java.util.Date;

public class Student {
    private int id;
    private String name;
    private String gender;
    private Date birthday;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", gender=" + gender
                + ", birthday=" + birthday + "]";
    }

}

StudentMapper.java

/**
 * 本文作者:谷哥的小弟
 * 博客地址:http://blog.csdn.net/lfdfhl
 */
package cn.com.mapper;

import java.util.List;
import cn.com.bean.Student;

public interface StudentMapper {
    public Student findStudentById(int id);
    public List<Student> findStudentByName(String name);
    public void insertStudent(Student student);
    public void deleteStudent(int id);
    public void updateStudent(Student student);
}

StudentMapper.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="cn.com.mapper.StudentMapper">

    <select id="findStudentById" parameterType="int" resultType="Student">
        SELECT * FROM student WHERE id=#{value}
    </select>

    <select id="findStudentByName" parameterType="java.lang.String" resultType="Student">
        SELECT * FROM student WHERE name LIKE '%${value}%'
    </select>

    <insert id="insertStudent" parameterType="Student">
        <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
            SELECT LAST_INSERT_ID()
        </selectKey>
        INSERT INTO student (name,gender,birthday) value (#{name},#{gender},#{birthday})
    </insert>

    <delete id="deleteStudent" parameterType="java.lang.Integer">
        DELETE FROM student where id=#{id}
    </delete>

    <update id="updateStudent" parameterType="Student">
        UPDATE student set name=#{name},gender=#{gender},birthday=#{birthday} where id=#{id}
    </update>

</mapper>

sqlMapConfig.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.com.bean" />
    </typeAliases>

</configuration>

除了别名,以前我们在配置sqlMapConfig.xml还需要配置mapper。现在使用Spring和MyBatis的整合包进行mapper扫描,故此处不需要再进行额外配置了;但是请注意:mapper.xml和mapper.java的文件名必须一致,并且且在一个目录 下。比如,该示例中的StudentMapper.java和StudentMapper.xml均在cn.com.mapper包下。

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mb?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

在该文件中配置数据库链接信息。请注意:为了方便整合,每个键请以jdbc.开头

applicationContext-dao.xml

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

    <!-- 加载db.properties文件中的内容 -->
    <context:property-placeholder location="classpath:db.properties" />


    <!-- 配置dbcp数据源 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="maxActive" value="30" />
        <property name="maxIdle" value="5" />
    </bean>


    <!-- 配置sqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 数据库连接池 -->
        <property name="dataSource" ref="dataSource" />
        <!-- 加载MyBatis全局配置文件sqlMapConfig.xml -->
        <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml" />
    </bean>


    <!-- 配置mapper扫描器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.com.mapper"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>

</beans>

在该配置文件中:加载db.properties文件中的内容,配置dbcp数据源,配置sqlSessionFactory,配置mapper扫描器;这些内容都与我们的mapper(dao)紧密相关


整合Service

定义Service接口

/** 
* @author 原创作者:谷哥的小弟
* @blog   博客地址:http://blog.csdn.net/lfdfhl
* @time   创建时间:2017年8月4日14:24:58
* @info   描述信息:StudentService
*/
package cn.com.service;

import cn.com.bean.Student;

public interface StudentService {

    public void deleteStudentByStudentID(int id);

    public Student findStudentByStudentID(int id);

    public void insertStudent(Student student);

    public void updateStudent(Student student);

}

定义增删改查接口

实现Service接口

/** 
* @author 原创作者:谷哥的小弟
* @blog   博客地址:http://blog.csdn.net/lfdfhl
* @time   创建时间:2017年8月4日14:26:26
* @info   描述信息:StudentServiceImpl
*/
package cn.com.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import cn.com.bean.Student;
import cn.com.mapper.StudentMapper;
import cn.com.service.StudentService;

public class StudentServiceImpl implements StudentService{

    @Autowired
    StudentMapper studentMapper;

    @Override
    public void deleteStudentByStudentID(int id) {
        studentMapper.deleteStudent(id);
    }


    @Override
    public Student findStudentByStudentID(int id) {
        Student student=studentMapper.findStudentById(id);
        return student;
    }


    @Override
    public void insertStudent(Student student) {
        studentMapper.insertStudent(student);
    }



    @Override
    public void updateStudent(Student student) {
        studentMapper.updateStudent(student);
    }

}

实现增删改查接口

applicationContext-service.xml

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

    <bean id="studentService" class="cn.com.service.impl.StudentServiceImpl" />

</beans>

在applicationContext-service.xml文件中配置service。

applicationContext-transaction.xml

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

    <!-- 配置MyBatis操作数据库的事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- applicationContext-dao.xml中配置的数据源 dataSource -->
        <property name="dataSource" ref="dataSource" />
    </bean>

    <!-- 配置通知 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="save*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            <tx:method name="insert*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="find*" propagation="SUPPORTS" read-only="true" />
            <tx:method name="get*" propagation="SUPPORTS" read-only="true" />
            <tx:method name="select*" propagation="SUPPORTS" read-only="true" />
        </tx:attributes>
    </tx:advice>

    <!-- 配置aop -->
    <aop:config>
        <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.com.service.impl.*.*(..))" />
    </aop:config>

</beans>

在该配置文件中:配置MyBatis操作数据库的事务管理器,配置通知,配置aop。


整合SpringMVC

嗯哼,之前我们也说了:SpringMVC就是Spring的一部分,所以无需单独整合。故,我们在此完成该部分对应的Controller即可。

StudentController

/** 
* @author 原创作者:谷哥的小弟
* @blog   博客地址:http://blog.csdn.net/lfdfhl
* @time   创建时间:2017年8月3日14:31:19
* @info   描述信息:SSM框架整合
*/
package cn.com.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import cn.com.bean.Student;
import cn.com.service.StudentService;

@Controller
@RequestMapping("/student")
public class StudentController {

    @Autowired
    private StudentService studentService;

    @RequestMapping("insert")
    public String insertStudent(String name,String gender,String birthday,ModelMap modelMap) throws Exception{
        Student student=new Student();
        student.setName(name);
        student.setGender(gender);
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");  
        Date date=simpleDateFormat.parse(birthday);  
        student.setBirthday(date);
        studentService.insertStudent(student);
        modelMap.put("insertInfo", "添加成功");
        return "result";
    }

    @RequestMapping("delete")
    public String deleteStudent(int id,ModelMap modelMap){
        studentService.deleteStudentByStudentID(id);
        modelMap.put("deleteInfo", "删除成功");
        return "result";
    }

    @RequestMapping("update")
    public String updateStudent(String id,String name,String gender,String birthday,ModelMap modelMap) throws Exception{
        Student student=new Student();
        student.setId(Integer.valueOf(id));
        student.setName(name);
        student.setGender(gender);
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");  
        Date date=simpleDateFormat.parse(birthday);  
        student.setBirthday(date);
        studentService.updateStudent(student);
        modelMap.put("updateInfo", "更新成功");
        return "result";
    }


    @RequestMapping("find")
    public String findStudent(int id,ModelMap modelMap){
        Student student=studentService.findStudentByStudentID(id);
        modelMap.put("student", student);
        return "result";
    }

}

在该Controller中实现了对于Student的增删改查

springmvc.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:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">


    <!-- 配置自动扫描 -->
    <context:component-scan base-package="cn.com"></context:component-scan>

    <!-- 配置控制器映射器和控制器适配器 -->
    <mvc:annotation-driven/>

    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsps/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

</beans>

web.xml

嗯哼,经过之前的代码编写,我们已经完成了SSM框架的各主要部分了。现在,我们需要在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">


    <!-- 加载Spring配置文件 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/classes/spring/applicationContext-*.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


    <!-- 配置DispatcherServlet -->
    <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:springmvc.xml</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

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

    <!-- 处理乱码 -->
   <filter>
        <filter-name>characterEncoding</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>
    </filter>

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

</web-app>

在该配置文件中:加载Spring配置文件,配置DispatcherServlet,处理乱码。请注意对于Spring配置文件的加载,在此采用了通配符的方式(第11行代码)加载了三个配置文件:applicationContext-dao.xml,applicationContext-service.xml,applicationContext-transaction.xml从而将mapper、service、controller加载到Spring容器中


部署测试

index.jps

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>springMVC</title>
<style type="text/css">
p {
    font-size: 30px;
    font-family: 宋体;
    color: red;
    background-color: pink;
}
</style>
</head>
<body>

   <hr size="2" color="red" />
    <b>添加学生</b><br><br>
    <form action="${pageContext.request.contextPath }/student/insert.do" method="post">
               姓名:<input type="text" name="name" id="testName"> 
               性别:<input type="text" name="gender" id="testGender"> 
               生日:<input type="text" name="birthday" id="testBirthday"> <br><br>
            <input type="submit" value="提交">
    </form>

    <hr size="2" color="red" />
    <b>依据ID删除学生信息</b><br><br>
    <form action="${pageContext.request.contextPath }/student/delete.do" method="post">
        ID:<input type="text" name="id" id="testIntId"> <br><br>
           <input type="submit" value="提交">
    </form>

    <hr size="2" color="red" />
    <b>修改学生信息</b><br><br>
    <form action="${pageContext.request.contextPath }/student/update.do" method="post">
        ID:<input type="text" name="id" id="testIntId"> 
               姓名:<input type="text" name="name" id="testName"> 
               性别:<input type="text" name="gender" id="testGender"> 
               生日:<input type="text" name="birthday" id="testBirthday"> <br><br>
            <input type="submit" value="提交">
    </form>


    <hr size="2" color="red" />
    <b>依据ID查询学生信息</b><br><br>
    <form action="${pageContext.request.contextPath }/student/find.do" method="post">
        ID:<input type="text" name="id" id="testIntId"> <br><br>
           <input type="submit" value="提交">
    </form>

</body>
</html>

效果图如下:

这里写图片描述

result.jps

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>SSM框架整合</title>
<style type="text/css">
p {
    font-size: 20px;
    font-family: 宋体;
    color: red;
    background-color: pink;
}
</style>
</head>
<body>
    <p>添加学生</p>
    <p>添加结果:${insertInfo}</p>
    <p>依据ID删除学生信息</p>
    <p>删除结果:${deleteInfo}</p>
    <p>修改学生信息</p>
    <p>修改结果:${updateInfo}</p>
    <p>依据ID查询学生信息</p>
    <p>查询结果:${student.id} ${student.name} ${student.gender} ${student.birthday}</p>
</body>
</html>

效果图如下:

这里写图片描述


小结

关于SSM框架的整合和搭建,其实各部分的纽带就是各种配置文件;而且每层都有与其对应的配置文件。

  • mapper(dao):db.propertiessqlMapConfig.xml以及applicationContext-dao.xml
  • service:applicationContext-service.xmlapplicationContext-transaction.xml
  • SpringMVC:springmvc.xml

这些配置文件最终会在web.xml中被加载。

版权声明:本文原创作者:谷哥的小弟 http://blog.csdn.net/lfdfhl 举报

相关文章推荐

SSM框架搭建及源码解析--框架搭建(一)

主要简单的搭建了一个SSM框架

SSM框架示例及源码

推荐几个自己写的范例项目 这里推荐几个自己写的范例项目,主要采用SSM(Spring+SpringMVC+Mybatis)框架,分布式架构采用的是(dubbo+zookeeper)。范例项目的好处...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目[Java通用框架源码及开发视频教程]

Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目 功能简介:       A、代码生成器(开发利器)          ...

spring4+mybatis3+velocity+mysql+gradle

spring4+mybatis3+velocity+mysql+gradle
  • wyyl1
  • wyyl1
  • 2016-08-29 12:55
  • 1093

springmvc+mybatis+spring 整合 bootstrap html5 mysql oracle SSM框架源码 SSH maven

 获取【下载地址 (劳动所得,不喜勿喷)】 【免费支持更新】 A 代码生成器(开发利器);全部是源码      增删改查的处理类,service层,mybatis的xml,SQL( my...

SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合...

springmvc整合mybatis框架源码 bootstrap html5 SSM

A 调用摄像头拍照,自定义裁剪编辑头像 B 集成代码生成器 [正反双向](单表、主表、明细表、树形表,开发利器)+快速构建表单;  技术:313596790 freemaker模版技术 ,0个代...

springmvc4 mybatis 整合 框架源码 bootstrap SSM

A 代码生成器(开发利器);       增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成    就不用写搬砖的...

springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven SSM

获取【下载地址】   QQ: 313596790 A 调用摄像头拍照,自定义裁剪编辑头像 【新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统】 B 集成代码生成器 [正反双...

Java 后台框架源码 springmvc spring mybatis SSM 有代码生成器

1.   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限       角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限。       按钮权限: 给角色分配按...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)