最详细的关于idea整合ssm框架讲解
一个关于brand(品牌)的项目
[ssm框架搭建源代码及mysql数据库数据]链接:https://pan.baidu.com/s/1eBogklK0rFLj622KSaB9yw
提取码:7erv
项目主要结构:


1.创建maven项目 选maven-archetype–webapp骨架
2.配置pom.xml


<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><!--以下是配置的--><spring.version>4.3.6.RELEASE</spring.version><mybatis.version>3.2.8</mybatis.version><mybatis.spring.version>1.2.2</mybatis.spring.version><mybatis.paginator.version>1.2.15</mybatis.paginator.version><slf4j.version>1.6.4</slf4j.version><log4j.version>1.2.12</log4j.version><mysql.version>5.1.32</mysql.version><jackson.version>2.4.2</jackson.version><druid.version>1.0.9</druid.version><jstl.version>1.2</jstl.version><servlet-api.version>2.5</servlet-api.version><jsp-api.version>2.0</jsp-api.version><commons-lang3.version>3.3.2</commons-lang3.version><commons-io.version>1.3.2</commons-io.version><commons-net.version>3.3</commons-net.version><pagehelper.version>5.1.2</pagehelper.version><jsqlparser.version>0.9.7</jsqlparser.version><commons-fileupload.version>1.3.1</commons-fileupload.version></properties><dependencies><dependency><groupId>javax.servlet.jsp.jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--mybatis分页--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>${pagehelper.version}</version></dependency><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>0.9.7</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--Apache工具组件--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang3.version}</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>${commons-io.version}</version></dependency><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>${commons-net.version}</version></dependency><!--gson--><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.2</version></dependency><!--日志处理--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- 格式化对象,方便输出日志 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.41</version></dependency><!--Mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>${mybatis.spring.version}</version></dependency><dependency><groupId>com.github.miemiedev</groupId><artifactId>mybatis-paginator</artifactId><version>${mybatis.paginator.version}</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>${pagehelper.version}</version></dependency><!--Mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!--连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><!-- spring核心包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</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-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</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><!-- Jsp相关 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>${servlet-api.version}</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><version>${jsp-api.version}</version><scope>provided</scope></dependency><!--文件上传组件--><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>${commons-fileupload.version}</version></dependency><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency></dependencies>

mysql数据库文件

/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.5.61
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;create table `b_brand` (`id` bigint (20),`createDate` datetime ,`modifyDate` datetime ,`chineseName` varchar (300),`englishName` varchar (300),`desc` varchar (765),`logo` varchar (765),`type` int (11),`url` varchar (765),`story` varchar (765),`status` int (11)
);
insert into `b_brand` (`id`, `createDate`, `modifyDate`, `chineseName`, `englishName`, `desc`, `logo`, `type`, `url`, `story`, `status`) values('2','2019-02-15 22:16:20','2019-02-15 22:16:25','三星','sumsang','三星',NULL,'1',NULL,'aaa','1');
insert into `b_brand` (`id`, `createDate`, `modifyDate`, `chineseName`, `englishName`, `desc`, `logo`, `type`, `url`, `story`, `status`) values('3','2019-02-15 22:18:30','2019-02-15 22:18:40','三叉','sanX','三叉',NULL,'1',NULL,'bbb','0');
insert into `b_brand` (`id`, `createDate`, `modifyDate`, `chineseName`, `englishName`, `desc`, `logo`, `type`, `url`, `story`, `status`) values('4','2019-02-16 21:03:32','2019-02-16 21:03:35','aaa','aaa','aaa',NULL,'1',NULL,'aaa','1');
insert into `b_brand` (`id`, `createDate`, `modifyDate`, `chineseName`, `englishName`, `desc`, `logo`, `type`, `url`, `story`, `status`) values('5','2019-02-16 21:03:56','2019-02-16 21:03:59','bbb','bbb','bbb',NULL,'1',NULL,'dddd','1');
insert into `b_brand` (`id`, `createDate`, `modifyDate`, `chineseName`, `englishName`, `desc`, `logo`, `type`, `url`, `story`, `status`) values('6','2019-02-16 21:04:22','2019-02-16 21:04:25','aaabb','aaabb','aaabb',NULL,'1',NULL,'aaabb','1');

3.完善工程的包的结构
1.)创建一个 java文件夹----改文件夹的状态(java选source,资源的选resource,测试的选test)
2.)在文件夹下建包,包下创建具体的包—–实体层pojo,业务层service,持久层repository(dao层),控制层controller。(如文章顶部项目主要结构的图)
3.)下面图为注意事项:


4.resource文件夹下写几个配置文件-------spring.xml,springmvc.xml,数据库连接的jdbc.properties

注意:易错点--------(有的时候出错,实在查不出来时看看这个)jdbc.properties里开头加前缀jdbc。不加前缀,在获取用户名的时候(数据库连接用户名)有可能获得计算机的名。此处代码如下图,自己动手吧!
以下正式配置
1.)首先配置spring.xml(代码在下方)
配置包扫描
注意:spring要扫描service(业务层)层,springmvc扫描controller 层,mybatis扫描dao层,需要被扫描的类要增加组件注解,例如 @Controller。
Spring.xml-------------首先增加命名空间及约束
再<!-配置包的扫描–>


命名空间对应的映射约束添加后就可以扫描了



注意:有映射文件mapper,.xml也扫描不了,因为java文件是蓝色的(资源文件),其只能识别 .java文件。Mapper文件下的 .xml文件识别不了,在pom.xml里配置排除操作

添加排除配置

pom.xml添加排除配置代码(在pom.xml的build标签下添加)

<resources><resource><directory>${basedir}/src/main/java</directory><includes><include>**/*.xml</include></includes></resource>
</resources>

spring.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--包扫描--><context:component-scan base-package="com.pb.ssm.service"/><!--引入数据库连接文件--><context:property-placeholder location="classpath:jdbc.properties"/><!--注入数据源--><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="password" value="${jdbc.password}"/><property name="username" value="${jdbc.username}"/><property name="url" value="${jdbc.url}"/><property name="driverClassName" value="${jdbc.driver}"/></bean><!--整合mybatis-spring--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><!--定义别名--><property name="typeAliasesPackage" value="com.pb.ssm.pojo"/><!--扫描sql映射文件--><property name="mapperLocations" value="classpath:com/pb/ssm/mapper/*.xml"/><!--添加插件--><property name="plugins"><array><!--添加的mybatis分页插件--><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><value>param1=mysql</value></property></bean></array></property></bean><!--注入(扫描)dao接口(即repository)--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.pb.ssm.repository"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/></bean>
</beans>

2.)完善pojo—创建Brand实体类属性,set /get/ to string()

package com.pb.ssm.pojo;import java.util.Date;/*** @ClassName Brand* @Description TODO* @Author david* @Date 2019/02/15 14:37* @Version 1.0*/
public class Brand {private Long id;private Date createDate;private Date modifyDate;private String chineseName;private String englishName;private String desc;private String logo;private Integer type;private String url;private String story;private Integer status;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public Date getCreateDate() {return createDate;}public void setCreateDate(Date createDate) {this.createDate = createDate;}public Date getModifyDate() {return modifyDate;}public void setModifyDate(Date modifyDate) {this.modifyDate = modifyDate;}public String getChineseName() {return chineseName;}public void setChineseName(String chineseName) {this.chineseName = chineseName;}public String getEnglishName() {return englishName;}public void setEnglishName(String englishName) {this.englishName = englishName;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}public String getLogo() {return logo;}public void setLogo(String logo) {this.logo = logo;}public Integer getType() {return type;}public void setType(Integer type) {this.type = type;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getStory() {return story;}public void setStory(String story) {this.story = story;}public Integer getStatus() {return status;}public void setStatus(Integer status) {this.status = status;}@Overridepublic String toString() {return "brand{" +"id=" + id +", createDate=" + createDate +", modifyDate=" + modifyDate +", chineseName='" + chineseName + '\'' +", englishName='" + englishName + '\'' +", desc='" + desc + '\'' +", logo='" + logo + '\'' +", type=" + type +", url='" + url + '\'' +", story='" + story + '\'' +", status=" + status +'}';}
}

3.)完善持久层repository(dao层接口)

import org.apache.ibatis.annotations.Param;import java.util.List;/*** @ClassName BrandRepository* @Description TODO* @Author david* @Date 2019/02/15 16:00* @Version 1.0*/
public interface BrandRepository {//(jsp查找里,及list列表用)List<Brand> findBrandByName(@Param("chineseName") String name);//查看Brand findBrandById(@Param("id") Integer id);//删除,返回影响个数int deleteById(@Param("id") Integer id);
}


4.)完善mapper文件下的映射文件

进入BrandRepository后Alt+回车生成方法体(问题点:自己的没有生成,idea版本问题)

生成的样式如下(自己的没实现,可以直接建这个文件)



mapper文件下的BrandRepository.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="com.pb.ssm.repository.BrandRepository"><sql id="allColoum">id,createDate,modifyDate,chineseName,englishName,`desc`,logo,`type`,url,story,status</sql><select id="findBrandByName" resultType="com.pb.ssm.pojo.Brand">select <include refid="allColoum"/>FROM b_brand<where><if test="chineseName!=null and chineseName!=''">chineseName LIKE CONCAT('%',#{chineseName},'%')</if></where>
/*查出的排序*/order by modifyDate desc</select><!--查找--><select id="findBrandById" resultType="com.pb.ssm.pojo.Brand">SELECT<include refid="allColoum"/>FROM b_brandWHERE id=#{id}</select><!--删除--><delete id="deleteById">DELETE  FROM b_brand where id=#{id}</delete>
</mapper>

5.)完善service(业务层)—建一个接口BrandService ----Alt+回车生成impl



BrandService代码

package com.pb.ssm.service;import com.github.pagehelper.PageInfo;
import com.pb.ssm.pojo.Brand;import java.util.List;/*** @ClassName BrandService* @Description TODO* @Author david* @Date 2019/02/15 21:38* @Version 1.0*/
public interface BrandService {List<Brand> findBrandByName(String chineseName);PageInfo<Brand> findBrandPageByName(String chineseName,Integer pageNum,Integer pageSize);Brand findBrandById(Integer id);boolean deleteById(Integer id);
}

BrandServiceImpl代码

package com.pb.ssm.service.impl;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.pb.ssm.pojo.Brand;
import com.pb.ssm.repository.BrandRepository;
import com.pb.ssm.service.BrandService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/*** @ClassName BrandServiceImpl* @Description TODO* @Author david* @Date 2019/02/15 22:08* @Version 1.0*/
@Service
public class BrandServiceImpl implements BrandService {@Autowiredprivate BrandRepository brandRepository;@Overridepublic List<Brand> findBrandByName(String chineseName) {return brandRepository.findBrandByName(chineseName);}@Overridepublic PageInfo<Brand> findBrandPageByName(String chineseName, Integer pageNum, Integer pageSize) {PageHelper.startPage(pageNum,pageSize);List<Brand> brands = brandRepository.findBrandByName(chineseName);PageInfo<Brand> brandPageInfo=new PageInfo<>();brandPageInfo.setList(brands);return brandPageInfo;}@Overridepublic Brand findBrandById(Integer id) {return brandRepository.findBrandById(id);}@Overridepublic boolean deleteById(Integer id) {if(brandRepository.deleteById(id)>0){return true;}return false;}
}

6.)在BrandSerciceImpl类,生成test测试类

package com.pb.ssm.service.impl;import com.github.pagehelper.PageInfo;
import com.pb.ssm.pojo.Brand;
import com.pb.ssm.service.BrandService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.List;import static org.junit.Assert.*;/*** @ClassName BrandServiceImplTest* @Description TODO* @Author david* @Date 2019/02/15 22:09* @Version 1.0*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring.xml")
public class BrandServiceImplTest {
//    注入业务层@Autowiredprivate BrandService brandService;@Testpublic void findBrandByName() throws Exception{List<Brand> brands=brandService.findBrandByName("三");System.out.println(brands);System.out.println(brands.size());}

7.)配置springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--包扫描--><context:component-scan base-package="com.pb.ssm.controller"/><!--注解驱动--><mvc:annotation-driven/><mvc:default-servlet-handler/><!--视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp"/><property name="suffix" value=".jsp"/></bean>
</beans>

8.)再创建list.jsp (运行jsp需要tommcat)




把build下面的那个上移

list.jsp代码

<%--Created by IntelliJ IDEA.User: davidDate: 2019/2/15Time: 23:17To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--//加上jstl--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>品牌列表</title><%--Bootstrap 3.0.3 js 文件--%><script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script><%--Bootstrap 3.0.3 css 文件--%><link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
<div class="container">
<div class="container-fluid"><div class="row-fluid"><div class="span12"><form class="form-search" action="/admin/brand/list"><input class="input-medium search-query" name="chineseName" type="text" /><button type="submit" class="btn">查找</button></form></div></div><div class="row-fluid"><div class="span12"><p class="table-bordered"></p><table class="table table-bordered"><thead><tr><th>编号</th><th>创建日期</th><th>修改日期</th><th>中文名称</th><th>英文名称</th><th>描述</th><th>操作</th></tr></thead><tbody><c:forEach items="${brans}" var="item"><tr class="success"><td>${item.id}</td><td>${item.createDate}</td><td>${item.modifyDate}</td><td>${item.chineseName}</td><td>${item.englishName}</td><td>${item.desc}</td><td><a href="/admin/brand/update">编辑</a>|<a href="/admin/brand/view/${item.id}">查看</a>|<a href="/admin/brand/delete/${item.id}">删除</a></td></tr></c:forEach></tbody></table><jsp:include page="/resources/html/page.html"</div></div>
</div>
</div>
</body>
</html>

9.)完善controller

在这package com.pb.ssm.controller;import com.pb.ssm.pojo.Brand;
import com.pb.ssm.service.BrandService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.util.List;/*** @ClassName BrandController* @Description TODO* @Author david* @Date 2019/02/15 22:45* @Version 1.0*///@RestController
@Controller     //加前台页面用controller,不用RestController
@RequestMapping("/admin/brand")
public class BrandController {@Autowiredprivate BrandService brandService;@GetMapping("/list")  //chineseName有可能为空,为避免,用@RequestParam("chineseName")public String list(@RequestParam(value = "chineseName",required = false)String chineseName , ModelMap model){//value = "chineseName"这个参数也可以不用传,在查询所有时不用传参,HttpServletRequest还得各种判断,麻烦List<Brand> brands=brandService.findBrandByName(chineseName);model.addAttribute("brans",brands);model.addAttribute("size",brands.size());//视图解析器--springmvc.xml内 <property name="prefix" value="/WEB-INF/jsp"/>//接jsp后的/return "/admin/brand/list";}@GetMapping("/view/{id}")public String view(@PathVariable("id") String id, ModelMap model){//controller里根本不写if else,只是调业务层的东西Integer finallId=0;if(id!=null){finallId=Integer.valueOf(id);}Brand brand=brandService.findBrandById(finallId);model.addAttribute("brand",brand);//重定向return "/admin/brand/view";}@GetMapping("/delete/{id}")public String  delete(@PathVariable("id")String id){Integer finallId=0;if(id!=null){finallId=Integer.valueOf(id);}boolean result=brandService.deleteById(finallId);//简单些写的,正常是有判断的,错误的跳转到error页面return "redirect:/admin/brand/list";}}

10.)完善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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><display-name>Archetype Created Web Application</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></context-param><!--配置spring监听器 作用:可以监听spring的上下文文件(context),注意顺序--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--spring字符编码过滤器start--><filter><!--①spring编码过滤器--><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><!--过滤器的匹配URL--><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--配置springMVC,其底层是servlet,所以servlet-name--><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><!--参数启动顺序,1是第二个启动--><load-on-startup>1</load-on-startup></servlet><!--映射,根目录下所有的东西都走核心前端控制器,由它管理--><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

11.)启动tommcat(注意网址)
有时候会在localhost:8080/后面出现含_war_的地址,在后续的运行查看view,删除操作时,接着网址后面直接写网址(如8080/…war…/admin/brand/view).正常时候直接localhost:8080/admin/brand/view



注意:List.jsp里加下面2个在线引用(或在js文件夹下导入jar包),可以使用bootstrap的在线工具写jsp

<%--Bootstrap 3.0.3 js 文件--%>
<script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<%--Bootstrap 3.0.3 css 文件--%>
<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet" />

jsp里的搜索(查找) ------注意中文乱码问题(在web.xml里加过滤器没起作用,其他未调试,检索英文没问题,可以试一下数据库内的数据,下面会添加文件)

类似如下

查看功能实现(文章上面代码块里有的已经复制了)

  1. 写repository文件下的BrandRepository接口下的查看接口
    Brand findBrandById(@Param(“id”) Integer id);
  2. (可快捷键生成方法体,自己idea版本不行),生成mapper文件下的BrandRepository.xml里的方法体
<!--查找-->
<select id="findBrandById" resultType="com.pb.ssm.pojo.Brand">SELECT<include refid="allColoum"/>FROM b_brandWHERE id=#{id}
</select>
  1. 业务层service下的BrandService接口
    Brand findBrandById(Integer id);
  2. 业务层service包下impl包下的BrandServiceImpl接口(里面的内容全都复制下了)
@Service
public class BrandServiceImpl implements BrandService {@Autowiredprivate BrandRepository brandRepository;@Overridepublic List<Brand> findBrandByName(String chineseName) {return brandRepository.findBrandByName(chineseName);}
//查询用到的@Overridepublic Brand findBrandById(Integer id) {return brandRepository.findBrandById(id);}@Overridepublic boolean deleteById(Integer id) {if(brandRepository.deleteById(id)>0){return true;}return false;}
  1. 控制层Controller包下的BrandController类
@GetMapping("/view/{id}")public String view(@PathVariable("id") String id, ModelMap model){//controller里根本不写if else,只是调业务层的东西Integer finallId=0;if(id!=null){finallId=Integer.valueOf(id);}Brand brand=brandService.findBrandById(finallId);model.addAttribute("brand",brand);//重定向return "/admin/brand/view";
}
  1. 创建view.jsp页面
    (注意list.jsp内的href地址)页面传id后,才能知道跳转到什么地方。(rest风格传递)
<%--Created by IntelliJ IDEA.User: davidDate: 2019/2/15Time: 23:17To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--//加上jstl--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>品牌列表</title><%--Bootstrap 3.0.3 js 文件--%><script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script><%--Bootstrap 3.0.3 css 文件--%><link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
<div class="container"><div class="container-fluid"><div class="row-fluid"><div class="span12"><table class="table"><tbody><tr><td>ID</td><td>${brand.id}</td></tr><tr class="success"><td>创建日期</td><td>${brand.createDate}</td></tr><tr class="error"><td>修改日期</td><td>${brand.modifyDate}</td></tr><tr class="warning"><td>中文名称</td><td>${brand.chineseName}</td></tr><tr class="info"><td>英文名称</td><td>${brand.englishName}</td></tr></tbody></table></div></div></div>
</div>
</body>
</html>


删除操作代码—同上

分页:(分页代码,上文的代码块有些已经涵盖,自己再看一下)
1.Spring.xml里spring整合mybatis时增加一个插件

<!--添加插件-->
<property name="plugins"><array><!--添加的mybatis分页插件--><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><value>param1=mysql</value></property></bean></array>
</property>

2.Pom.xml里增加的:

<!--mybatis分页-->
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version>
</dependency>
<dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>0.9.7</version>
</dependency>

3.service包下Brandservice加接口

PageInfo<Brand> findBrandPageByName(String chineseName,Integer pageNum,Integer pageSize);

实现BrandserviceImpl

@Override
public PageInfo<Brand> findBrandPageByName(String chineseName, Integer pageNum, Integer pageSize) {PageHelper.startPage(pageNum,pageSize);List<Brand> brands = brandRepository.findBrandByName(chineseName);PageInfo<Brand> brandPageInfo=new PageInfo<>();brandPageInfo.setList(brands);return brandPageInfo;
}

4.进行impl测试,生成test类

@Test
public void findBrandPageByName() {PageInfo<Brand> brandPageByName = brandService.findBrandPageByName(null, 1, 2);for (Brand b:brandPageByName.getList()) {System.out.println(b);}
}

5.)运行测试文件

运行日志里有红框内的内容,分页配置成功。注:分页页面未写,自己看着添加一个更好

附:自己写了个分页的page.html,但是运行时有些错误未调节(注意:还要写分页实体类等,不只是静态前端页面)
html文件里写page.html,list.jsp加jsp:include………引入资源

[ssm框架搭建源代码及mysql数据库数据]链接:https://pan.baidu.com/s/1eBogklK0rFLj622KSaB9yw
提取码:7erv

最详细的Spring+SpringMVC+Mybatis框架整合及mybatis分页讲解,适合初级者相关推荐

  1. Spring与Struts框架整合

    Spring,负责对象对象创建 Struts,用Action处理请求 Spring与Struts框架整合,关键点:让struts框架action对象的创建,交给spring完成! 1.步骤: 引入ja ...

  2. Java Mybatis 框架 VII 之 Mybatis 扩展

    Java Mybatis 框架 VII 之 Mybatis 扩展 Mybatis 扩展 1.关于#{}和${}格式的占位符 ● 在Mybatis中,配置SQL语句时,参数可以使用#{}或${}格式的占 ...

  3. Spring+SpringMVC+Mybatis框架整合流程

    一:基本步骤 新建Maven项目,导入相关依赖.(推荐) ----–Mybatis配置 ------ 新建entity包,并根据数据库(表)新建相关实体类. 新建dao包,并根据业务创建必要的mapp ...

  4. SSM(Mybatis + Spring + Spring MVC)框架整合详细步骤(附jar包和项目下载,免费的)

    本例从0开始逐一整合SSM的步骤,实现基础的CRUD 开发环境:Eclipse4.6 + jdk1.8 + Tomcat8 + MySQL SSM所需jar包和项目下载路径在文章最后 1.数据库 创建 ...

  5. springmvc连接mysql_挺详细的spring+springmvc+mybatis配置整合|含源代码

    大家好,我是雄雄,今天来带着大家来配置一下SSM(spring+springmvc+ mybatis)框架. 01 新建java web项目 直接在myeclipse中,新建一个web项目即可. 02 ...

  6. SpringMVC、Spring、Mybatis框架整合及使用

    首先需要创建一个动态web工程 引入所需的jar包 创建所需要的数据库表,并插入数据 1 CREATE DATABASE how2java; 2 USE how2java; 3 4 CREATE TA ...

  7. Spring系列(七)、Spring与MyBatis框架整合

    7 搭建Spring与MyBatis的集成环境 要实现Spring与MyBatis的整合,很明显需要这两个框架各自的jar包,以及整合两个框架的中间包mybatis-spring.jar: 我们使用m ...

  8. (十)Spring 与 MVC 框架整合

    Spring 整合 MVC 目录 MVC 框架整合思想 为什么要整合 MVC 框架 搭建 Web 运行环境 Spring 整合 MVC 框架的核心思路 1. 准备工厂 2. 代码整合 Spring 整 ...

  9. Spring 与 MVC 框架整合思路

    Spring 整合 MVC MVC 框架整合思想 为什么要整合 MVC 框架 搭建 Web 运行环境 Spring 整合 MVC 框架的核心思路 1. 准备工厂 2. 代码整合 Spring 整合 S ...

最新文章

  1. 数据结构之二叉树(遍历、建立、深度)
  2. 三面腾讯,竟然挂在了JVM上…
  3. python有内存处理模块吗_使用Python多处理的高内存使用
  4. 解决 IDEA 在 commit 代码时 git 日志乱码 (提交时填写的中文说明乱码)
  5. win7系统锁定计算机设置方法
  6. cocos2dx打飞机项目笔记二:BulletLayer类
  7. [poj2752]Seek the Name, Seek the Fame_KMP
  8. C语言骚操作:结构体初始化方法
  9. [洪流学堂]Hololens开发高级篇1:凝视(Gaze)
  10. Linux开机加载新内核,linux-kernel – 为什么加载内核地址,ramdisk在启动时很重要?...
  11. html java 安卓_用Html进行Android开发-Fun言
  12. 神策分析 Android SDK 网络模块解析 | 数据采集
  13. python教程百度云盘-Python 模拟登陆百度云盘实战教程
  14. C盘扩容:如何把D盘内存扩展到c盘?
  15. Java五子棋(人机版),昨天买的棋子今天就用不上了
  16. vscode远程连接提示过程试图写入的管道不存在
  17. GUID 分区表详解
  18. 重装window系统总结
  19. 计蒜客 17115 2017 ICPC 西安网络赛 B Coin
  20. error: [xxxxxxx/qrc_resource.cpp] Error 1

热门文章

  1. 带USB接口的PLC远程工业模块成功案例
  2. 小论文查重率一般小于多少?
  3. 如何使3dMax运行的更快、更稳?
  4. 计算一个数字的的长度
  5. 逆向思维的 5 种方法
  6. SRE体系及稳定性建设
  7. 波士顿大学计算机与传媒专业,波士顿大学传媒专业在全美教育排名前10
  8. shtml与html的区别
  9. 飞腾腾锐D2000-国产CUP
  10. Greenshot 学习笔记(2) Greenshot.Drawing.Gripper类