SpringMVC+Spring+Mybatis SSM 整合+实战+源码

Controller

package cn.sm1234.controller;
import cn.sm1234.pojo.Customer;
import cn.sm1234.service.CustomerService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/customer")
public class CustomerController {

    //注入service对象
    @Autowired
    private CustomerService customerService ;

    /**
     *查询所有数据,给页面返回一个json格式数据
     */
    @RequestMapping("/list")
    @ResponseBody
    public List<Customer> list(){
        //查询数据
        List<Customer> list = customerService.findAl();
        return list ;
    }

    //设计Map聚合存储需要给页面的对象数据
    private Map<String,Object> result = new HashMap<String,Object>();

    /**
     * 分页查询
     */
    @RequestMapping("/listByPage")
    @ResponseBody
    public Map<String,Object> listByPage(Integer page,Integer rows){
        //设置分页参数
        PageHelper.startPage(page, rows);
        //查询所有数据
        List<Customer> list = customerService.findAl();
        //使用PageInfo封装查询结果
        PageInfo<Customer> pageInfo = new PageInfo<Customer>(list);
        //从PageInfo对象取出查询结果
        //总记录数
        long total = pageInfo.getTotal();
        //当前页数据列表
        List<Customer> custList = pageInfo.getList();
        result.put("total", total);
        result.put("rows", custList);
        return result;
    }

    /**
     * 保存数据
     * @return
     */
    @RequestMapping("/save")
    @ResponseBody
    public Map<String,Object> save(Customer customer){
        try {
            customerService.save(customer) ;
            result.put("success",true) ;
        } catch (Exception e){
            e.printStackTrace();
            result.put("success",false) ;
            result.put("msg",e.getMessage()) ;
        }
        return result ;
    }

    /**
     * 根据id 查询对象
     * @return
     */
    @RequestMapping("/findById")
    @ResponseBody
    public Customer findById(Integer id){
        Customer customer = customerService.findById(id);
        return customer ;
    }

    /**
     * 删除数据
     * @param id
     * @return
     */
    @RequestMapping("/delete")
    @ResponseBody
    public Map<String,Object> delete(String[] id){
        try {
            customerService.delete(id);
            result.put("success",true) ;
        }catch (Exception e){
            result.put("success",false) ;
        }
        return result ;
    }
}

Dao层 

package cn.sm1234.dao;

import cn.sm1234.pojo.Customer;

import java.util.List;

public interface CustomerMapper {
    /**
     * 查询所有数据
     * @return
     */
    public List<Customer> findAl() ;

    /**
     * 保存数据
     * @param customer
     */
    public void save(Customer customer);

    /**
     * 根据id 查询对象
     * @param id
     * @return
     */
    public Customer findById(Integer id);

    /**
     * 修改对象数据
     * @param customer
     */
    public void update(Customer customer);

    /**
     * 删除数据
     * @param id
     */
    public void delete(String[] id);
}

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.sm1234.dao.CustomerMapper">
	<!--查询所有数据-->
    <select id="findAl" resultType="cn.sm1234.pojo.Customer">
        SELECT
		id ,name,gender,
		telephone,
		address
		FROM
		t_customer
    </select>

	<!--添加客户-->
	<insert id="save" parameterType="cn.sm1234.pojo.Customer">
		INSERT INTO t_customer (
		name,
		gender,
		telephone,
		address
	)
		VALUES
	(
		#{name},
		#{gender},
		#{telephone},
		#{address}
	);
	</insert>

	<!--根据id查询对象-->
	<select id="findById" resultType="cn.sm1234.pojo.Customer" parameterType="int">
		SELECT
		id ,name,gender,
		telephone,
		address
		from
		t_customer
		where
		id=#{value}
	</select>

	<!--修改对象数据-->
	<update id="update" parameterType="cn.sm1234.pojo.Customer">
		UPDATE ssm.t_customer
			SET
			NAME = #{name} ,
			gender = #{gender} ,
			telephone = #{telephone} ,
			address = #{address}
		WHERE
			id = #{id}
	</update>

	<!--删除数据-->
	<delete id="delete" parameterType="integer[]">
		DELETE FROM ssm.t_customer
		<where>
			id
			<foreach collection="array" item="id" open="in (" close=")" separator=",">
				#{id}
			</foreach>
		</where>
	</delete>
</mapper>

Service接口

package cn.sm1234.service;

import cn.sm1234.pojo.Customer;

import java.util.List;

public interface CustomerService {
    /**
     * 查询所有数据
     * @return
     */
    public List<Customer> findAl() ;

    /**
     * 保存数据
     * @param customer
     */
    public void save(Customer customer);

    /**
     *
     * @param id
     * @return
     */
    public Customer findById(Integer id);

    /**
     * 删除数据
     * @param id
     */
    public void delete(String[] id);
}

 Service实现类

package cn.sm1234.service;

import cn.sm1234.dao.CustomerMapper;
import cn.sm1234.pojo.Customer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CustomerServiceImpl implements CustomerService {
    
    //注入mapper接口对象
    @Autowired
    private CustomerMapper customerMapper;
    
    @Override
    public List<Customer> findAl() {
        return customerMapper.findAl();
    }

    @Override
    public void save(Customer customer) {
        //判断是添加还是修改
        if (customer.getId()!=null){
            //修改
            customerMapper.update(customer) ;
        }else {
            customerMapper.save(customer);
        }
    }

    @Override
    public Customer findById(Integer id) {
        return customerMapper.findById(id);
    }

    @Override
    public void delete(String[] id) {
        customerMapper.delete(id) ;
    }
}

pojo层

package cn.sm1234.pojo;

public class Customer {

	private Integer id;
	private String name;
	private String gender;
	private String telephone;
	private String address;
	public Integer getId() {
		return id;
	}
	public void setId(Integer 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 String getTelephone() {
		return telephone;
	}
	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	@Override
	public String toString() {
		return "Customer [id=" + id + ", name=" + name + ", gender=" + gender
				+ ", telephone=" + telephone + ", address=" + address + "]";
	}
	
}

 applicationContext.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: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.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context.xsd
	http://www.springframework.org/schema/aop
	http://www.springframework.org/schema/aop/spring-aop.xsd
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx.xsd">
	
	<!-- 读取jdbc.properties -->
	<context:property-placeholder location="classpath:jdbc.properties"/>

	<!-- 创建DataSource -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="url" value="${jdbc.url}"/>
		<property name="driverClassName" value="${jdbc.driverClass}"/>
		<property name="username" value="${jdbc.user}"/>
		<property name="password" value="${jdbc.password}"/>
		<property name="maxActive" value="10"/>
		<property name="maxIdle" value="5"/>
	</bean>	
	
	<!-- 创建SqlSessionFactory对象 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 关联连接池 -->
		<property name="dataSource" ref="dataSource"/>
		<!-- 加载sql映射文件 -->
		<property name="mapperLocations" value="classpath:mapper/*.xml"/>
		<!-- 引入插件 -->
		<property name="plugins">
			<array>
				<!-- mybatis分页插件 -->
				<bean class="com.github.pagehelper.PageInterceptor">
					<property name="properties">
						<!-- 
						helperDialect:连接数据库的类型
						 -->
						<value>
							helperDialect=mysql
						</value>
					</property>
				</bean>
			</array>
		</property>
	</bean>

	<!-- Mapper接口的扫描 -->
	<!-- 
		注意:如果使用Mapper接口包扫描,那么每个Mapper接口在Spring容器中的id名称为类名: 例如 CustomerMapper -> customerMapper
	 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 配置Mapper接口所在包路径  -->
		<property name="basePackage" value="cn.sm1234.dao"/>
	</bean>
	
	<!-- 开启Spring的IOC注解扫描 -->
	<context:component-scan base-package="cn.sm1234"/>
	
	<!-- 开启Spring的事务 -->
	<!-- -事务管理器 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	<!-- 启用Spring事务注解 -->
	<tx:annotation-driven transaction-manager="transactionManager"/>

</beans>

jdbc.properties 

jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password=123456

spring-mvc.xml 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:contenxt="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

	<!-- 扫描Controller所在的包 -->
	<contenxt:component-scan base-package="cn.sm1234.controller"/>

	<!-- 注解驱动 -->
	<mvc:annotation-driven></mvc:annotation-driven>
	
	<!-- 视图解析器:简化在Controller类编写的视图路径 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 前缀 -->
		<property name="prefix" value="/WEB-INF/jsp/"/>
		<!-- 后缀 -->
		<property name="suffix" value=".jsp"/>
	</bean>

</beans>

省略JSP文件与JS文件 ....

一、项目简介本课程演示的是一套基于SSM实现的社团管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。课程包含:1. 项目源码、项目文档、数据库脚本、软件工具等所有资料2. 带你从零开始部署运行本套系统3. 该项目附带的源码资料可作为毕设使用4. 提供技术答疑二、技术实现后台框架SpringSpringMVCMyBatisUI界面:JSP、jQuery 、H-ui数据库:MySQL 三、系统功能本社团管理系统是根据大学社团管理的实际应用而开发的,采用JSP技术,JAVA编程语言,基于SSM框架,使用MySQL数据库,充分保证系统的安全性和稳定性,使得社团管理工作系统化、规范化、高效化。该系统主要分为前台和后台两大功能模块,共包含两个角色:用户、管理员。具体的系统功能如下:1.前台功能 前台首页、新闻公告、规章制度、社团活动、活动报名、互动交流、用户注册、用户登陆、用户中心、修改密码、个人信息、我的社团活动、物资申请、退出登陆等功能。2.后台功能 后台系统登陆、社团用户管理、管理员管理、网站公告管理、社团活动管理、申请类型管理、用户申请管理、活动报名管理、留言交流管理等功能。该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 四、项目截图1)前台首页2)新闻公告3)用户注册4)社团用户管理5)社团活动管理  更多Java毕设项目请关注【毕设系列课程】https://edu.csdn.net/lecturer/2104   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值