Maven+SSM框架项目实例

article/2025/9/18 13:43:47

一、项目环境

  • 开发系统:Window10
  • 开发工具:IDEA
  • JDK:1.8
  • 框架:Maven+Spring+SpringMVC+Mybatis
  • 数据库:Mysql

二、项目结构

项目文件架构:
这里写图片描述

三、Maven配置

pom.xml:

    <properties><!-- spring版本号 --><spring.version>4.0.2.RELEASE</spring.version><!-- mybatis版本号 --><mybatis.version>3.2.6</mybatis.version><!-- log4j日志文件管理包版本 --><slf4j.version>1.7.7</slf4j.version><log4j.version>1.2.17</log4j.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><!-- 表示开发的时候引入,发布的时候不会加载此包 --><scope>test</scope></dependency><!-- spring核心包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><!-- mybatis核心包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!-- mybatis/spring包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.2</version></dependency><!-- 导入java ee jar 包 --><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version></dependency><!-- 导入Mysql数据库链接jar包 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.6</version></dependency><!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 --><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.2.2</version></dependency><!-- JSTL标签类 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- 日志文件管理包 --><!-- log start --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><!-- 格式化对象,方便输出日志 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.41</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- log end --><!-- 映入JSON --><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version></dependency><!-- 上传组件包 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.9</version></dependency><!-- 导入Mysql数据库链接jar包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.3.1</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.4.2</version></dependency></dependencies>

四、SSM的配置文件

mybatis-config.xml:

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><setting name="cacheEnabled" value="true"/></settings><!-- 只需配置别名,其他的配置使用其他的方法进行配置 --><typeAliases><typeAlias type="com.model.entity.Student" alias="Student"/><typeAlias type="com.model.entity.Teacher" alias="Teacher"/><typeAlias type="com.model.entity.Classes" alias="Classes"/></typeAliases>
</configuration>

spring-mybatis.xml:

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><!-- 导入jdbc配置文件 --><context:property-placeholder location="classpath:jdbc.properties"/><!-- 注解的扫描路径 --><context:component-scan base-package="com.*"/><!-- 连接池 --><!-- 配置1个阿里连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"destroy-method="close"><property name="driverClassName"><value>${jdbc_driverClassName}</value></property><property name="url"><value>${jdbc_url}</value></property><property name="username"><value>${jdbc_username}</value></property><property name="password"><value>${jdbc_password}</value></property><!-- 连接池最大使用连接数 --><property name="maxActive"><value>20</value></property><!-- 初始化连接大小 --><property name="initialSize"><value>1</value></property><!-- 获取连接最大等待时间 --><property name="maxWait"><value>60000</value></property><!-- 连接池最大空闲 --><property name="maxIdle"><value>20</value></property><!-- 连接池最小空闲 --><property name="minIdle"><value>3</value></property><!-- 自动清除无用连接 --><property name="removeAbandoned"><value>true</value></property><!-- 清除无用连接的等待时间 --><property name="removeAbandonedTimeout"><value>180</value></property><!-- 连接属性 --><property name="connectionProperties"><value>clientEncoding=UTF-8</value></property></bean><!-- mybatis的sessionfatory --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"p:dataSource-ref="dataSource"p:configLocation="classpath:mybatis-config.xml"p:mapperLocations="classpath:/mapping/*.xml"/><!-- dao的实现类对象,既mapper对象 。从上面的session工厂中,自动创建出所有mapper文件下的实现类对象 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"p:basePackage="com.model.dao"p:sqlSessionFactoryBeanName="sqlSessionFactory"/><!-- 事务管理器,用于注解注入事务 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"p:dataSource-ref="dataSource"/></beans>

springmvc-servlet.xml:

<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:mvc="http://www.springframework.org/schema/mvc"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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 注解的扫描路径 --><context:component-scan base-package="com.controller"/><mvc:annotation-driven/><!-- springmvc的视图解析器 --><bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"><property name="prefix" value="/WEB-INF/JSP/"></property><property name="suffix" value=".jsp"></property><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/></bean></beans>

jdbc.properties:

jdbc_driverClassName=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/xxxx?characterEncoding=utf-8
jdbc_username=xxxx
jdbc_password=xxxx

五、数据库表

student表:
这里写图片描述
classes表:
这里写图片描述
teacher表:
这里写图片描述

六、各层代码

实体类
Classes:

package com.model.entity;public class Classes {private int cid;private String cname;@Overridepublic String toString() {return "Classes{" +"cid=" + cid +", cname='" + cname + '\'' +'}';}public Classes() {}public Classes(int cid, String cname) {this.cid = cid;this.cname = cname;}public int getCid() {return cid;}public void setCid(int cid) {this.cid = cid;}public String getCname() {return cname;}public void setCname(String cname) {this.cname = cname;}
}

Student:

package com.model.entity;public class Student {private int sid;//学号private String sname;//姓名private Classes classes;//所属班级private String sex;//性别private String birthplace;//出生地@Overridepublic String toString() {return "Student{" +"sid=" + sid +", sname='" + sname + '\'' +", classes=" + classes +", sex='" + sex + '\'' +", birthplace='" + birthplace + '\'' +'}';}public Student() {}public Student(int sid, String sname, Classes classes, String sex, String birthplace) {this.sid = sid;this.sname = sname;this.classes = classes;this.sex = sex;this.birthplace = birthplace;}public int getSid() {return sid;}public void setSid(int sid) {this.sid = sid;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public Classes getClasses() {return classes;}public void setClasses(Classes classes) {this.classes = classes;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getBirthplace() {return birthplace;}public void setBirthplace(String birthplace) {this.birthplace = birthplace;}
}

Teacher:

package com.model.entity;public class Teacher {private int tid;//教师编号private String tname;//姓名private Classes classes;//所教班级(student的cid外键)public Teacher() {}@Overridepublic String toString() {return "Teacher{" +"tid=" + tid +", tname='" + tname + '\'' +", classes=" + classes +'}';}public Teacher(int tid, String tname, Classes classes) {this.tid = tid;this.tname = tname;this.classes = classes;}public int getTid() {return tid;}public void setTid(int tid) {this.tid = tid;}public String getTname() {return tname;}public void setTname(String tname) {this.tname = tname;}public Classes getClasses() {return classes;}public void setClasses(Classes classes) {this.classes = classes;}
}

持久层(Dao类)
StudentDao:

package com.model.dao;import com.model.entity.Student;import org.apache.ibatis.annotations.Param;import java.util.List;public interface StudentDao {public List<Student> findAll();//查找所有学生public void add(@Param("sname") String sname, @Param("cid") int cid,@Param("sex") String sex, @Param("birthplace") String birthplace);//添加学生public Student findBySid(int sid);//根据学号查学生}

业务层(Service类)
StudentService:

import com.model.entity.Student;import java.util.List;public interface StudentService {public List<Student> findAll();public void add(String sname, int cid, String sex, String birthplace);//添加学生public Student findBySid(int sid);//根据学号查学生
}

StudentServiceImpl:

package com.service.Impl;import com.model.dao.StudentDao;
import com.model.entity.Student;
import com.model.service.StudentService;import org.springframework.stereotype.Service;import java.util.List;import javax.annotation.Resource;@Service
public class StudentServiceImpl implements StudentService {//这里的自动装配会报错,可以忽视,因为在spring-mybatis.xml中有进行配置,通过mapper映射从Session工厂中获取@Resourceprivate StudentDao studentDao;public List<Student> findAll() {return studentDao.findAll();}public void add(String sname, int cid, String sex, String birthplace) {}public Student findBySid(int sid) {return studentDao.findBySid(sid);}
}

控制器(Controller)
StudentAction:

package com.controller;import com.model.entity.Student;
import com.model.service.StudentService;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;@Controller
public class StudentAction {@Autowiredprivate StudentService service;//持有一个业务层对象@RequestMapping("/findall")public String findAll(Model model) {List<Student> list = service.findAll();model.addAttribute("studentlist", list);return "show";}//ajax查询数据@ResponseBody@RequestMapping("/findbysid")public Student findBySid(@RequestParam("sid") int sid) {return service.findBySid(sid);}
}

七、web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"version="2.5"><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mybatis.xml;classpath:springmvc-servlet.xml</param-value></context-param><context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:log4j.properties</param-value></context-param><context-param><param-name>log4jRefreshInterval</param-name><param-value>6000</param-value></context-param><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><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><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping><display-name>ssm_student</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

八、JSP页面

index.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>Title</title>
</head>
<script type="text/javascript" src="js/jquery-2.1.1.min.js"></script><script language="JavaScript">$(function () {$("#search").click(function () {$.ajax({type: "post",url: "findbysid.action",data: $("#sid"),dataType: "json",success: function (data) {var html = "";html +="<td>" + data.sid + "</td><td>" + data.classes.cname + "</td><td>" + data.sname+ "</td><td>" + data.sex + "</td><td>" + data.birthplace + "</td>";$("#student").html(html);},//null值不会被success回调函数捕获,因此可以通过error来实现该功能error: function () {alert("请输入正确的学号!");}})})})
</script>
<body>
<center><div style="margin-top: 25px">请输入所要查询的学号:<input type="text" id="sid" name="sid"/><input id="search" style="margin-left: 10px" type="button" value="搜索"><br/></div><div style="margin-top: 50px"><table border="1"><tr><td>学号</td><td>班级</td><td>姓名</td><td>性别</td><td>出生地</td></tr><tr id="student"></tr></table></div>
</center>
</body>
</html>

九、Tomcat测试

测试结果(成功):
这里写图片描述

输入1,没有对应学号,则弹出:
这里写图片描述


http://chatgpt.dhexx.cn/article/VDok8mfO.shtml

相关文章

SSM框架整合详细案例

目录描述 一、创建web项目(使用idea maven)二、使用maven添加依赖1、在pom.xml中添加项目所需的所有依赖2、添加tomcat运行驱动 三、建立整体项目架构四、搭建mybatis1、编写mybatis-config.xml2、编写数据库连接配置文件3、编写spring-mybatis.xml4、编写pojo和dao层5、编写映…

SSM框架详细实例讲解

SSM框架简介 SSM框架&#xff0c;是Spring Spring MVC MyBatis的缩写&#xff0c;这个是继SSH之后&#xff0c;目前比较主流的Java EE企业级框架&#xff0c;适用于搭建各种大型的企业级应用系统。 我们先大概的回顾一下吧。1.Spring简介 Spring是一个开源框架&…

SSM框架搭建实例

SSM框架搭建简单实例 - 搭建步骤 需求分析&#xff1a; 实现用户表信息的增删改查 1. 开发环境 环境 &#xff1a; JDK 1.8 软件 &#xff1a; myeclipse 数据库 &#xff1a; MySql 2. 创建数据库 数据库名称&#xff1a;ssm 字符集&#xff1a;…

java ssm框架项目_3个SSM框架应用实例教程

SSM框架简介 SSM(SpringSpringMVCMyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成&#xff0c;常作为数据源较简单的web项目的框架。 文章主要介绍3个SSM框架应用的实例教程&#xff0c;非常适合想学习应用该整合框架的小伙伴。 该项目假设为开发一个简单的用…

SSM框架整合实例

1.数据准备 创建一个数据库并取名为ssm&#xff0c;在数据库ssm下创建user表&#xff1b;对应的sql脚本如下&#xff0c;这里我们直接使用navicat工具更方便。 create database ssm;use ssm; create table user(id int primary key auto_increment,username varchar(20),pass…

SSM框架整合+简单案例实现

SSM框架整合简单案例实现 文章目录 前言一、SpringSpringMVCMybatis框架整合1.建立一个新的web项目2.所需jar包3.建立数据库表与实体类之间的映射4.web.xml5.数据库信息db.properties6.Spring与Mybatis的整合7.SpringMVC基本配置 二、整合测试1.结构展示2.studentMapper.xml3.s…

ssm框架的简单案例

学完ssm框架后做了一个简单的案例&#xff0c;实现简单的增删改查。 项目结构图&#xff1a; 看项目结构&#xff1a; 关键代码&#xff1a; 前端是jsp技术&#xff0c;当然也可以用vue分离的自己选择就好。 订单页面&#xff1a; <% page language"java&quo…

SSM框架开发-基础案例

SSM框架整合基础案例详解 1.数据库环境 创建一个存放书籍数据的数据库表 CREATE DATABASE ssmbuild;USE ssmbuild;DROP TABLE IF EXISTS books;CREATE TABLE books (bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT 书id,bookName VARCHAR(100) NOT NULL COMMENT 书名,bookCou…

SSM框架简单实例

1、SSM框架 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成&#xff0c;常作为数据源较简单的web项目的框架。 2、简单实例 &#xff08;1&#xff09;项目结构 &#xff08;2&#xff09;PageBean.java packa…

用SSM实现简单实例

SSM的简例实现 这是项目完整代码的链接地址 [https://download.csdn.net/download/m0_46308149/12961224]源码地址 SSM介绍 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架集由Spring、MyBatis两个开源框架整合而成&#xff08;SpringMVC是Spring中的部分内容&am…

SpringMVC笔记——SSM框架搭建简单实例

简介 SpringSpringMVCMyBatis框架&#xff08;SSM&#xff09;是比较热门的中小型企业级项目开发的框架&#xff0c;对于新手来说也是比较容易学习入门的。虽说容易&#xff0c;但在框架搭建过程中仍然遇到了许多问题&#xff0c;因此用实例记录下来吧。 实例 第一步——导包 S…

SSM框架整合+案例

SSM框架整合 1、环境要求2、数据库环境3、基本环境搭建3.1 创建项目3.2 Maven项目添加web支持3.3 配置pom.xml文件3.4 建立框架的基本结构和配置文件3.4.1 创建包3.4.2 添加配置文件3.4.3 database.properties文件3.4.4 mybatis-config.xml 文件3.4.5 applicationContext.xml 文…

C# SqlHelper类的使用

SqlHelper类 1.首先SqlHelper类是一个基于.NET Framework的数据库操作组件&#xff0c;包含了数据库的操作方法。可以简化在C#中使用ADO.NET连接数据库时每次都要编写连接、打开、执行SQL语句的代码&#xff0c;它将每次连接都要写的代码封装成方法&#xff0c;把要执行的SQL语…

SqlHelper类(C#)

大神可以绕道了... 目的&#xff1a;搜集SqlHelper类 自己写的一个SQLHelper类&#xff0c;如下&#xff1a; 编辑App.config节点&#xff0c;添加<connectionStrings>节点&#xff0c;并根据实际填上相应的参数 <?xml version"1.0" encoding"utf…

SQLHelper

前言 小编在最近的学习过程中用到了SQLHelper&#xff0c;说起来&#xff0c;小编也是有点懒&#xff0c;虽然是用到了&#xff0c;但是也没有用明白&#xff0c;开始的时候也没有好好的研究&#xff0c;直到后来报错了&#xff0c;才下定决心好好好学习了解一下这个东西。下面…

sqlhelper 的使用 (C#)超级详细的入门教程

sql helper 的使用 &#xff08;C#&#xff09;小白教程 提到CRUD&#xff0c;很多刚入门的小白总是来一条写一条连接&#xff0c;先建立连接connection 打开连接 open 来查询query 最后别忘了关闭连接 close 。 要是一次写多个操作&#xff0c;那一遍一遍写下来肯定麻木了。…

Python中的BIF

什么是BIF呢&#xff1f; BIF是built-in functions的缩写&#xff0c;顾名思义&#xff0c;就是内建函数。Python中提供了大量的BIF&#xff0c;这就意味着代码量可以大大减少。 如果要查看Python中的内建函数&#xff0c;就可以使用命令&#xff1a;dir(__builtins__) 注意…

一、bif

缩进是python的灵魂&#xff0c;缩进可以使python的代码整洁&#xff0c;有层次。 python是脚本语言&#xff0c;就是为了简单方便以辅助科学运算&#xff0c;因此python有许多bif&#xff0c;build in function 全部都是小写的就是bif。 转义字符是一个字符&#xff0c;在内存…

FineBI

还是数据可视化工具Tableau、FineBI? 不禁联想起在微软系统出现之前&#xff0c;程序员的电脑系统还是用的linux&#xff0c;只能通过各种复杂的指令来实现字符的简单可视化&#xff1b;而当win系统普及于世后&#xff0c;计算机从此突破了技术人群的限制&#xff0c;交互方式…

Python学习笔记2(小甲鱼)—— 内置函数BIF

&#xfeff;&#xfeff; 这里有一个让人“亮瞎眼”的“游戏”开始python的学习。首先我们编写一段代码&#xff0c;来实现这个游戏。编写操作可参考前面的《Python学习笔记1——搭建环境与“Hello World”》这篇文章&#xff0c;网址&#xff1a;http://blog.csdn.net/tongbi…