ssm框架整合演示

ssm框架开发整合演示

ssm框架是指spring+springMVC+MyBatis 整合开发开发,这里我将使用mysql做一个简单查询学生信息并展示到jsp页面上的演示

spring

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

springMVC

M 代表 模型(Model)
模型是什么呢? 模型就是数据,就是 dao,bean
V 代表 视图(View)
视图是什么呢? 就是网页, JSP,用来展示模型中的数据
C 代表 控制器(controller)
控制器是什么? 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。

MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。

这里只对其做了简单描述,如想知道详情可自行百度
1.导入所需要的jar包

2.在mysql数据库中建student表分别插入数据

3.创建一个实体类Student
package com.liu.entity;

public class Student {
	private long stuId;
	private String stuName;
	private int stuAge;
	public long getStuId() {
		return stuId;
	}
	public void setStuId(long stuId) {
		this.stuId = stuId;
	}
	public String getStuName() {
		return stuName;
	}
	public void setStuName(String stuName) {
		this.stuName = stuName;
	}
	public int getStuAge() {
		return stuAge;
	}
	public void setStuAge(int stuAge) {
		this.stuAge = stuAge;
	}
	@Override
	public String toString() {
		return "Student [stuId=" + stuId + ", stuName=" + stuName + ", stuAge=" + stuAge + "]";
	}
	
}

注意:这里的属性名和类型要与数据库中的一致。

4.在dao层建查询的接口
package com.liu.dao;

import java.util.List;

import com.liu.entity.Student;

public interface StudentDao {
	public List<Student> findAll();
}

5.在mapper包下新建studentMapper.xml,用于对mysql的操作
<?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.liu.dao.StudentDao">
 	
 	<select id="findAll" resultMap="getUserMap">
 		select * from student;
 	</select>
 	
 	<!-- 配置resulMap -->
 	<resultMap type="Student" id="getUserMap">
 		<id column="stuId" property="stuId"/>
 		<result column="stuName" property="stuName"/>
 		<result column="stuAge" property="stuAge"/>
 	</resultMap>
 </mapper>

配置的resultMap要与实体类属性名和数据库的字段名相同

6.在src下建spring.xml创建mybatis的sqlsessionFactory对象
<?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">
     
     <!-- 引入db.properties -->    
     <context:property-placeholder location="classpath:db.properties"/>   
	

<!-- 数据库连接池 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${driver}"></property>
		<property name="jdbcUrl" value="${url}"></property>
		<property name="user" value="${user}"></property>
		<property name="password" value="${password}"></property>
	</bean>
	
	<!-- 创建mybatis的sqlsessionFactory对象 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="mapperLocations" value="classpath:com/liu/mapper/*.xml"></property>
		<!-- 配置取简单类名路径 -->
		<property name="typeAliasesPackage" value="com.liu.entity"></property>
	</bean>
	
	<!-- 配置mapperScannerConfigurer -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.liu.dao"></property>
		<!-- 将com.liu.dao包中所有接口产生与之对应的动态代理对象(对象名就是首字母小写的接口名) -->
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
	</bean>
	
</beans>
7.编写db.properties设置连接mysql

8.在web.xml中引入spring.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">
  <display-name>SSM</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- web项目中引入spring -->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>classpath:spring.xml</param-value>
  </context-param>
  
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  
</web-app>
9.编写service接口
package com.liu.service;

import java.util.List;

import com.liu.entity.Student;

public interface StudentService {
	
	List<Student> findAl();
}

10.编写service的初始(逻辑基本写在这)
package com.liu.service.impl;

import java.util.List;

import com.liu.dao.StudentDao;
import com.liu.entity.Student;
import com.liu.service.StudentService;

public class StudentServiceImpl implements StudentService{
	//service依赖于dao
	private StudentDao studentDao;
	
	public void setStudentDao(StudentDao studentDao) {
		this.studentDao = studentDao;
	}

	public List<Student> findAl() {
		
		return studentDao.findAll();
	}

}

在spring中注入依赖

	<!-- 依赖注入 -->
	<bean id="studentService" class="com.liu.service.impl.StudentServiceImpl">
		<property name="studentDao" ref="studentDao"></property>
	</bean>
11.在src下创建springmvc.xml并在web.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"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        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
         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">
         
         <!-- 扫描有注解的包 -->
         <context:component-scan base-package="com.liu.controller"></context:component-scan>
         
         <!-- 配置视图解析器 -->
         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	         <property name="prefix" value="/views/"></property>
	         <property name="suffix" value=".jsp"></property>
         </bean>
		
		<!-- 对静态动态资源的处理,使用servict -->
		<mvc:annotation-driven></mvc:annotation-driven>
		<mvc:default-servlet-handler/>
         
</beans>

在web.xml中配置

 <!-- 引入springmvc -->
    <!-- 拦截全部请求交给mvc处理 -->
  <servlet>
  	<servlet-name>springDispatcherServlet</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>
  	<!-- 容器在应用启动时就加载并初始化这个 -->
  	<load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>springDispatcherServlet</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>
12.编写控制层StudentController
package com.liu.controller;

import java.util.List;

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 com.liu.entity.Student;
import com.liu.service.StudentService;

@RequestMapping("controller")
@Controller
public class StudentController {
	//控制器依赖于service
	@Autowired
	private StudentService studentService;
	

	@RequestMapping("findAll")
	public String findAll(ModelMap map) {
		List<Student> student = studentService.findAl();
		map.put("students", student);
		return "findAll";
	}
}

13.编写index.jsp中添加请求
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="controller/findAll">查询学生</a>
</body>
</html>
14.编写返回的/views/findAll.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<c:forEach items="${requestScope.students}" var="student">
		${student.stuId}--${student.stuName}--${student.stuAge}<br>
	</c:forEach>
</body>
</html>
15.启动测试


当点击查询学生时,跳转到/views/findAll.jsp并在jsp中展示出查到的内容

至此,简单的ssm整合查询student成功显示!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值