大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。
前言
书接前文,昨天带着大家下载且配置了maven,以及在idea中创建maven项目,今天,我们就结合ssm框架,在idea中实现一个增删改查案例。
昨天的文章:手把手教你搭建Maven项目
01
配置pom文件
通常,我们需要使用ssm框架的时候,需要加载一系列的jar包,在未使用maven的时候,我们则采用的是将所需jar包统统复制到项目的lib目录中,现在我们不必那样做了,只需要简单的在pom文件中配置即可。
那么,怎么配置呢?
我们以mysql的驱动jar为例(其他jar包配置方式一样,可执行按此配置),mysql的驱动jar包我采用的是:mysql-connector-java-8.0.23,配置方式如下:
1)maven官网为我们提供了jar包在pom文件中的配置方式,打开官网:https://search.maven.org/,我们在输入框中输入需要配置的jar包名,如下:
可以在左边框中的下拉列表里选择版本,在右边的Apache Maven下面,复制所有代码。
复制到项目中pom文件的这里:
如果你不知道ssm需要哪些jar包,可以去百度搜索,pom中配置方式是一样的,在这就不一一列举了,下面是整个pom.xml文件的代码:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xiongxiong</groupId><artifactId>BookManageSys</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>BookManageSys Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><!--配置jar包--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency><!--spring的jar包=--><!--springmvc的jar包--><dependency><groupId>javaee</groupId><artifactId>javaee-api</artifactId><version>5</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.2.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.2.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.1.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>4.2.1.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>4.1.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.2.3.release</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.1.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.2.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.1.9.RELEASE</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.2.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.17.1-GA</version></dependency><dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>2.2.2</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><!--加载jstl的包--><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency></dependencies><build><finalName>BookManageSys</finalName><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement></build>
</project>
这是最后导入的jar包:
02
在main目录中创建resources资源文件夹
该资源文件夹用来存放ssm的配置文件,applicationContext.xml,springmvc-servlet.xml,mybatis-config.xml。
各配置文件代码如下:
applicationContext.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"><!-- 配置数据源--><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/schooldb"></property><property name="username" value="root"></property><property name="password" value="root"></property></bean><!--sqlSessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="configLocation" value="classpath:mybatis-config.xml"></property><property name="mapperLocations"><list><value>classpath:com/dao/*.xml</value></list></property></bean><!-- 配置自动映射器 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.dao"></property></bean><!-- 扫描所有注解信息 --><context:component-scan base-package="com.dao,com.service,com.web"/><mvc:annotation-driven/></beans>
springmvc-servlet.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/p http://www.springframework.org/schema/p/spring-p-3.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"><!-- 扫描注解 --><context:component-scan base-package="com.web,com.dao,com.service"/><mvc:annotation-driven/><!--扫描静态资源文件--><mvc:default-servlet-handler/><!-- 配置前缀和后缀 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"></property><property name="suffix" value=".jsp"></property></bean></beans>
mybatis-config.xml文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><!-- 打印sql语句 --><setting name="logImpl" value="STDOUT_LOGGING"/></settings><!-- 起别名 --><typeAliases><package name="com.entity"/></typeAliases></configuration>
03
配置web.xml文件
web.xml文件所在的路径:src/main/webapp/WEB/INF/wen.xml
代码如下:
<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><display-name>Archetype Created Web Application</display-name><welcome-file-list><welcome-file>/</welcome-file></welcome-file-list><!-- 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:springmvc-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- spring --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- 监听配置 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 解决springmvc传递值乱码问题 --><filter><filter-name>encodingFilter</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>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
</web-app>
04
创建src资源资源文件夹
在main文件夹中创建资源文件夹src,且在里面创建实体层、Dao层、Service层和web层。
下面我们来在src中创建包com(包名随便起),在com中分别创建entity、dao、service以及web包(Package),分别在各个包中创建对应的类,其目录结构如下:
下面是各个类的代码:
BookManage.java:
package com.entity;import org.springframework.format.annotation.DateTimeFormat;import java.util.Date;public class BookManage {private int bid;private String bname;private String bauthor;@DateTimeFormat(pattern = "yyyy-MM-dd")private Date btime;private int btype;public int getBid() {return bid;}public void setBid(int bid) {this.bid = bid;}public String getBname() {return bname;}public void setBname(String bname) {this.bname = bname;}public String getBauthor() {return bauthor;}public void setBauthor(String bauthor) {this.bauthor = bauthor;}public Date getBtime() {return btime;}public void setBtime(Date btime) {this.btime = btime;}public int getBtype() {return btype;}public void setBtype(int btype) {this.btype = btype;}
}
BookManageMapper.java
package com.dao;import com.entity.BookManage;import java.util.List;public interface BookManageMapper {//查询全部List<BookManage> findBookAll();//添加int addBook(BookManage bookManage);//删除int delBook(int bid);
}
BookManageMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.BookManageMapper"><!-- 查询全部 --><select id="findBookAll" resultType="BookManage">select * from BookManage;</select><!-- 添加 --><insert id="addBook" parameterType="BookManage">insert into bookmanage (bname,bauthor,btime,btype)value(#{bname},#{bauthor},#{btime},#{btype});</insert><!-- 删除 --><delete id="delBook" parameterType="int">delete from BookManage where bid = #{bid};</delete></mapper>
IBookManageService.java
package com.service;import com.entity.BookManage;import java.util.List;public interface IBookManageService {//查询全部List<BookManage> findBookAll();//添加int addBook(BookManage bookManage);//删除int delBook(int bid);
}
BookManageServiceImpl.java
package com.service.impl;import com.dao.BookManageMapper;
import com.entity.BookManage;
import com.service.IBookManageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service("bookManageService")
public class BookManageServiceImpl implements IBookManageService {@Autowiredprivate BookManageMapper bookManageMapper;@Overridepublic List<BookManage> findBookAll() {return bookManageMapper.findBookAll();}@Overridepublic int addBook(BookManage bookManage) {return bookManageMapper.addBook(bookManage);}@Overridepublic int delBook(int bid) {return bookManageMapper.delBook(bid);}public BookManageMapper getBookManageMapper() {return bookManageMapper;}public void setBookManageMapper(BookManageMapper bookManageMapper) {this.bookManageMapper = bookManageMapper;}
}
IndexController.java
package com.web;import com.entity.BookManage;
import com.service.IBookManageService;
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 java.util.List;@Controller
@RequestMapping("/")
public class IndexController {//创建Service的对象@Autowiredprivate IBookManageService bookManageService;//默认进入首页@RequestMapping("/")public String index(Model model){List<BookManage> bookManageList =bookManageService.findBookAll();model.addAttribute("bookManageList",bookManageList);return "index";}//删除@RequestMapping("delBook")public String delBook(Model model,int bid){bookManageService.delBook(bid);index(model);return "index";}//添加@RequestMapping("addBook")public String addBook(BookManage bookManage,Model model){bookManageService.addBook(bookManage);index(model);return "index";}public IBookManageService getBookManageService() {return bookManageService;}public void setBookManageService(IBookManageService bookManageService) {this.bookManageService = bookManageService;}
}
05
引入jQuery环境
将jquery的环境拷贝到项目中的webapp下:
06
首页
修改index.jsp,使其实现进入页面即查询数据库中所有数据功能,代码如下:
<%--Created by IntelliJ IDEA.User: 24519Date: 2021/1/20Time: 10:38To change this template use File | Settings | File Templates.
--%>
<%@ page isELIgnored="false"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html><head><title>首页</title></head><body><h1>图书信息</h1><table border="1"><tr><td>图书名称</td><td>图书作者</td><td>购买时间</td><td>图书分类</td><td>操作</td></tr><c:forEach items="${bookManageList}" var="book"><tr><td>${book.bname}</td><td>${book.bauthor}</td><td><f:formatDate value="${book.btime}" pattern="yyyy-MM-dd"></f:formatDate></td><td><c:if test="${book.btype==1}">计算机/软件</c:if><c:if test="${book.btype==2}">小说/文摘</c:if><c:if test="${book.btype==3}">杂项</c:if></td><td><a href="delBook?bid=${book.bid}">删除</a></td></tr></c:forEach></table><a href="addBook.jsp" style="color:red">新增图书信息</a><script src="js/jquery-1.12.4.js" type="text/javascript"></script><script type="text/javascript">$(function(){$("tr:even").css("background","green");$("tr:first").css("background","blue");});</script></body>
</html>
07
添加图书的页面
创建添加数据的页面addBook.jsp,代码如下:
注意,addBook.jsp和index.jsp都需要放在webapp目录下。
08
配置tomcat
配置tomcat
测试发现,正常运行。
最后附数据库脚本代码:
/*
SQLyog Professional v12.08 (32 bit)
MySQL - 5.5.27 : Database - schooldb
*********************************************************************
*//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`schooldb` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `schooldb`;/*Table structure for table `bookmanage` */DROP TABLE IF EXISTS `bookmanage`;CREATE TABLE `bookmanage` (`bid` int(11) NOT NULL AUTO_INCREMENT,`bname` varchar(40) NOT NULL,`bauthor` varchar(40) NOT NULL,`btime` datetime NOT NULL,`btype` int(11) NOT NULL,PRIMARY KEY (`bid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;/*Data for the table `bookmanage` */insert into `bookmanage`(`bid`,`bname`,`bauthor`,`btime`,`btype`) values (1,'三国演义','罗贯中','2021-09-08 00:00:00',2),(2,'水浒传','施耐庵','2021-09-08 00:00:00',2),(3,'狂人日记','魯迅','2021-09-08 00:00:00',3),(4,'改善java的151个建议','秦少波','2021-09-08 00:00:00',1);/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
今天的分享就到这里了,明天见!
往期精彩
手把手教你搭建Maven项目
2021-02-22
java中采用异常链传递异常,既友好又方便!
2021-02-20
新春视频剪辑
2021-02-21
提倡异常封装
2021-02-19
想着看你手头宽裕的话帮我周转一下……
2021-02-17
点分享
点点赞
点在看