SSM框架快速整合的實例-學生查詢

SSM 框架快速整合實例--學生查詢

1、快速準備

SSM 框架即 Spring 框架、SpringMVC 框架、MyBatis 框架,關於這幾個框架的基礎和入門程序,我前面已經寫過幾篇文章做爲基礎和入門介紹了。對於這 3 個框架還不熟悉的同窗,能夠參考一下幾篇文章:php

【SSH框架】之Spring系列(一)css

Spring框架系列(二)之Bean的註解管理html

Spring框架系列之AOP思想前端

Spring 框架系列之 JDBC 整合java

Spring 框架系列之事務管理mysql

SpringMVC 框架系列之初識與入門實例web

SpringMVC 框架系列之組件概述與配置詳解spring

MyBatis 框架之基礎初識sql

MyBatis 框架之快速入門程序數據庫

若是已經陸續學習過 SSM 框架相關知識的,能夠忽略掉這一部分,直接看下面的內容。

2、快速建立項目

鑑於 jar 包依賴於管理的方便,咱們使用 Maven 進行項目的管理和開發,因此這一步咱們使用 IDEA 快速建立一個 Maven 項目,關於如何使用 IDEA 快速建立 Maven 項目,這裏就不進行過多贅述了,你們能夠參考下面這篇文章:

Maven 項目管理工具基礎系列(一)

3、快速配置 jar 包依賴

Maven 項目建立完成後,快速打開並配置 pom.xml 文件,具體配置以下:

<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ssm.example</groupId> <artifactId>SsmDemo</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>SSMDemo Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <!-- 配置 SpringMVC 依賴包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.7.RELEASE</version> </dependency> <!-- Spring JDBC 依賴包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.7.RELEASE</version> </dependency> <!-- Spring AOP 依賴包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>4.3.7.RELEASE</version> </dependency> <!--MyBatis 依賴包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.2</version> </dependency> <!-- Spring 整合 MyBatis 依賴包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <!-- MySQL 驅動依賴包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.41</version> </dependency> <!-- C3P0 數據源依賴包 --> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1</version> </dependency> <!-- jstl 依賴包 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- ServletAPI 依賴包--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <!-- junit 測試依賴包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> </dependency> </dependencies> <!-- 若是不添加此節點,mybatis 的 mapper.xml 文件都會被漏掉 --> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build> </project> 

4、快速配置編碼過濾和資源加載

打開 web.xml 文件,快速配置開啓 Spring 、SpringMVC 編碼過濾以及靜態資源加載,具體配置代碼以下:

<web-app> <display-name>Archetype Created Web Application</display-name> <!-- 啓動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的前端控制器,攔截全部請求 --> <servlet> <servlet-name>mvc-dispatcher</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> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 字符編碼過濾器,必定要放在全部過濾器以前 --> <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>forceRequestEncoding</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>forceResponseEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 加載靜態資源 --> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> </web-app> 

5、快速配置 Spring 配置文件

在 resources 文件夾下新建 applicationContext.xml 文件,配置 MyBatis 和數據庫相關信息,具體代碼配置以下:

<?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/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- 加載資源文件 --> <context:property-placeholder location="classpath:db.properties"/> <!-- 配置 C3P0 數據源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.password}"></property> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> <property name="initialPoolSize" value="5"></property> <property name="maxPoolSize" value="10"></property> </bean> <!-- 配置 MyBatis SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 指定 MyBatis 數據源 --> <property name="dataSource" ref="dataSource"/> <!-- 指定 MyBatis mapper 映射文件位置 --> <property name="mapperLocations" value="classpath:com/ssm/example/dao/*.xml"/> <!-- 指定 MyBatis 全局配置文件的位置 --> <property name="configLocation" value="classpath:mybatis-config.xml"></property> </bean> <!-- 掃描 MyBatis 的 mapper 接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--掃描全部 dao 接口,加入到 IOC 容器中 --> <property name="basePackage" value="com.ssm.example.dao"/> </bean> <!-- 配置事務管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 指定數據源 --> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置事務加強 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- 配置全部方法都是事務方法 --> <tx:method name="*"/> <tx:method name="get*" read-only="true"/> </tx:attributes> </tx:advice> <!-- 開啓基於註解的事務 --> <aop:config> <!-- 切入點表達式 --> <aop:pointcut expression="execution(* com.ssm.example.service.impl.*.*(..))" id="txPoint"/> <!-- 配置事務加強 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/> </aop:config> </beans> 

6、快速配置數據庫鏈接信息

在 resources 文件夾下新建 db.properties 文件,配置數據庫鏈接相關信息,具體代碼配置以下:

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm_example?useUnicode=true&characterEncoding=UTF-8 jdbc.driverClass=com.mysql.jdbc.Driver jdbc.user=root jdbc.password=root 

7、快速配置數據庫操做輔助信息

在 resources 文件夾下新建 mybatis-config.xml 文件,配置相關的數據庫操做輔助信息,具體代碼配置以下:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//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> <!-- 指定一個包名,MyBatis會在包名下搜索須要的JavaBean--> <package name="com.ssm.example.entity"/> </typeAliases> </configuration> 

8、快速配置 SpringMVC 註解掃描和視圖解析器

在 resources 文件夾下新建 springmvc.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: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-3.2.xsd"> <!-- 啓用 SpringMVC 註解驅動 --> <mvc:annotation-driven /> <!-- 掃描業務代碼 --> <context:component-scan base-package="com.ssm.example"></context:component-scan> <!-- 配置視圖解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans> 

9、快速新建數據表

新建 MySQL 數據庫,快速新建數據表 ssm_example,具體建表代碼以下:

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `gender` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `tel` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `cla` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; INSERT INTO `student` VALUES (1, '孔乙己', '男', 'kongyiji@163.com', '13509856897', '計算機1班'); INSERT INTO `student` VALUES (2, '阿強', '女', 'aqiang@126.com', '12345678909', '軟件工程'); INSERT INTO `student` VALUES (3, '阿福', '男', 'afu@12345.com', '13657898762', '數學專業'); INSERT INTO `student` VALUES (4, '阿霞', '女', '12345@qq.com', '12378645987', '英語專業'); INSERT INTO `student` VALUES (5, '指南者', '男', 'compassblog@gmail.com', '13587690873', '打雜搬磚專業'); SET FOREIGN_KEY_CHECKS = 1; 

10、快速新建實體類

快速新建實體類 Student.java,具體代碼以下:

package com.ssm.example.entity; public class Student { private int id; private String name; private String gender; private String email; private String tel; private String cla; public int getId() { return id; } public void setId(int 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 getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public String getCla() { return cla; } public void setCla(String cla) { this.cla = cla; } } 

11、快速書寫業務代碼

快速新建 StuentController.java 控制類,具體代碼以下:

package com.ssm.example.controller; import java.util.List; import com.ssm.example.entity.Student; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.ssm.example.service.StudentService; @Controller public class StudentController { @Autowired private StudentService studentService; /** * 查找全部學生 * @return */ @RequestMapping(value="/findAll") public ModelAndView test(){ List<Student> list = studentService.findAll(); ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("index"); modelAndView.addObject("list", list); return modelAndView; } } 

快速新建 StudentService.java 接口,代碼以下:

package com.ssm.example.service; import java.util.List; import com.ssm.example.entity.Student; public interface StudentService { public List<Student> findAll(); } 

快速新建 StudentServiceImpl.java 類實現接口,具體代碼以下:

package com.ssm.example.service.impl; import java.util.List; import com.ssm.example.dao.StudentDAO; import com.ssm.example.entity.Student; import com.ssm.example.service.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class StudentServiceImpl implements StudentService { @Autowired private StudentDAO studentDAO; public List<Student> findAll() { // TODO Auto-generated method stub return studentDAO.findAll(); } } 

快速新建 dao 接口 StudentDAO.java,具體代碼以下:

package com.ssm.example.dao; import java.util.List; import com.ssm.example.entity.Student; public interface StudentDAO { public List<Student> findAll(); } 

快速新建 dao 接口代理文件 StudentDAO.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.ssm.example.dao.StudentDAO"> <resultMap type="Student" id="studentMap"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="gender" column="gender"/> <result property="email" column="email"/> <result property="tel" column="tel"/> <result property="cla" column="cla"/> </resultMap> <select id="findAll" resultMap="studentMap"> select * from student </select> </mapper> 

12、新建訪問頁面

快速新建訪問頁面 index.jsp,而且頁面使用 bootstrap 框架做輕度渲染,具體代碼以下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page isELIgnored="false" %> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>學生列表</title> <link rel="stylesheet" href="${pageContext.request.contextPath}/static/bootstrap-3.3.7-dist/css/bootstrap.min.css"> </head> <body> <br><br><br> <div class="container" align="center"> <div class="row"> <div class="col-md-12"> <h1>SSM 框架快速整合實例--學生查詢</h1> </div> </div> <br> <div class="row"> <div class="col-md-12"> <table class="table table-hover" id="emps_table"> <thead> <tr> <th> <input type="checkbox" id="check_all"/> </th> <th>編號</th> <th>姓名</th> <th>性別</th> <th>電子郵箱</th> <th>聯繫電話</th> <th>班級</th> <th>操做</th> </tr> </thead> <tbody> <c:forEach items="${list }" var="student"> <tr> <td><input type='checkbox' class='check_item'/></td> <td>${student.id }</td> <td>${student.name }</td> <td>${student.gender }</td> <td>${student.email }</td> <td>${student.tel }</td> <td>${student.cla }</td> <td> <button class="btn btn-primary btn-sm edit_btn"> <span class="glyphicon glyphicon-pencil">編輯</span> </button>&nbsp;&nbsp; <button class="btn btn-danger btn-sm delete_btn"> <span class="glyphicon glyphicon-trash">刪除</span> </button> </td> </tr> </c:forEach> </tbody> </table> </div> </div> </div> </body> </html> 

十3、快速進行測試

到這裏,SSM 框架整合程序就已經書寫完畢,部署並啓動 Tomcat 服務器,而後到瀏覽器地址欄測試,結果以下:

 

 

項目源碼地址:點擊這裏直接獲取源碼

相關文章
相關標籤/搜索