ssm框架整合基本步骤练习总结
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/skybboy/article/details/82721762 </div>
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-cd6c485e8b.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-cd6c485e8b.css">
<div class="htmledit_views" id="content_views">
<h1><a name="t0"></a>0.整个源码下载</h1>
https://github.com/DillonPu/ssm.git
1.导包
2.准备数据库表
- #创建数据库ssm
- drop database if exists ssm;
- create database ssm;
- use ssm;
- #创建书本表
- drop table if exists ssm_book;
- create table ssm_book (
- id int(11) primary key auto_increment not null,
- name varchar(111),
- detail varchar(256),
- userId int(22)
- );
-
- insert into ssm_book(id, name,detail,userId) values
- (1,"javaWeb","JavaWeb从入门到精通",1),
- (2,"PhotoShop","图片图像处理",1),
- (3,"mysql从入门到精通","数据库专业书籍",2);
-
- select * from ssm_book;
-
- # 创建用户表
- create table ssm_user (
- id int(11) primary key auto_increment not null,
- username varchar(111),
- password varchar(256)
- );
-
- insert into ssm_user(id, username,password) values
- (1,"aa","aa"),
- (2,"bb","bb"),
- (3,"cc","cc");
- select * from ssm_userssm_user;
-
- select * from ssm_book where userId = 1;
3.准备pojo
3.1.Book.java
- package com.ssm.pojo;
-
- public class Book {
- private Integer id;
- private String name;
- private String detail;
- private Integer userId;
-
- 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 getDetail() {
- return detail;
- }
- public void setDetail(String detail) {
- this.detail = detail;
- }
-
- public Integer getUserId() {
- return userId;
- }
- public void setUserId(Integer userId) {
- this.userId = userId;
- }
- @Override
- public String toString() {
- return "Book [id=" + id + ", name=" + name + ", detail=" + detail + ", userId=" + userId + "]";
- }
-
- }
3.2.User.java
- package com.ssm.pojo;
-
- public class User {
- private Integer id;
- private String username;
- private String password;
-
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- @Override
- public String toString() {
- return "User [username=" + username + ", password=" + password + "]";
- }
- }
4. 准备jdbc.properties文件
我直接放在了src下
- jdbc.driver=com.mysql.jdbc.Driver
- jdbc.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
- jdbc.username=root
- jdbc.password=admin
5.applicationContext.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:p="http://www.springframework.org/schema/p"
- xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
- 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-4.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
-
- <!-- 配置读取properties文件jdbc.properties以连接数据库 -->
- <context:property-placeholder location="classpath:jdbc.properties"/>
- <!-- 配置数据源-->
- <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
- <property name="driverClassName" value="${jdbc.driver}"></property>
- <property name="url" value="${jdbc.url}"></property>
- <property name="username" value="${jdbc.username}"></property>
- <property name="password" value="${jdbc.password}"></property>
- </bean>
- <!-- 配置sqlSessionFactory -->
- <bean class="org.mybatis.spring.SqlSessionFactoryBean">
- <property name="dataSource" ref="druidDataSource"></property>
- </bean>
- <!-- 配置mapper扫描器 -->
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="com.ssm.mapper"></property>
- </bean>
- <!-- 配置servic扫描器 -->
- <context:component-scan base-package="com.ssm.service"/>
-
- <!-- 配置事物 -->
- <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="druidDataSource"></property>
- </bean>
- <!--配置事物-通知 -->
- <tx:advice id="txAdvice" transaction-manager="transactionManager">
- <tx:attributes>
- <tx:method name="add*" propagation="REQUIRED"/>
- <tx:method name="delete*" propagation="REQUIRED"/>
- <tx:method name="find*" propagation="REQUIRED"/>
- <tx:method name="edit*" propagation="REQUIRED"/>
- </tx:attributes>
- </tx:advice>
- <!-- 配置事物-切面 -->
- <aop:config>
- <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.ssm.service.*.*(..))"/>
- </aop:config>
-
- </beans>
6.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:p="http://www.springframework.org/schema/p"
- 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-4.0.xsd
- http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
- <!--配置Controller扫描 -->
- <context:component-scan base-package="com.ssm.controller"></context:component-scan>
- <!-- 配置注解驱动 -->
- <mvc:annotation-driven></mvc:annotation-driven>
- <!-- 配置视图解析器 -->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/"></property>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </beans>
7.dao之mapper
由于在applicationContext.xml配置了自动扫描mapper,所以需要把mapper类和其对应的mapper.xml文件放在同一目录下,命名也是一样
7.1.BookMapper.java
- package com.ssm.mapper;
-
- import java.util.List;
-
- import com.ssm.pojo.Book;
-
- public interface BookMapper {
- //添加一本书
- public void addBook(Book book);
-
- //根据id删除一本书
- public void deleteBookById(Integer id);
-
- //根据ID查询书
- public Book findBookById(Integer id);
-
- //根据书名模糊查询书
- public List<Book> findBooksByKeyname(String keyname);
-
- //根据id编辑修改书的信息
- public void editBookInformationById(Book book);
-
- //根据用户id查询
- public List<Book> findBooksByUserId(Integer userId);
- }
7.2.BookMapper.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.mapper.BookMapper">
- <insert id="addBook" parameterType="com.ssm.pojo.Book" >
- insert into ssm_book(id, name,detail,userId) values(#{id},#{name},#{detail},#{userId})
- </insert>
-
- <delete id="deleteBookById" parameterType="Integer">
- delete from ssm_book where id = #{id}"
- </delete>
-
- <select id="findBookById" parameterType="Integer" resultType="com.ssm.pojo.Book">
- select * from ssm_book where id = #{id}
- </select>
-
- <select id="findBooksByKeyname" parameterType="String" resultType="com.ssm.pojo.Book">
- select * from ssm_book where name = "%"#{value}"%"
- </select>
-
- <update id="editBookInformationById" parameterType="Integer">
- update ssm_book
- set name=#{name},detail=#{detail},userId=#{userId}
- where id=#{id}
- </update>
-
- <select id="findBooksByUserId" parameterType="Integer" resultType="com.ssm.pojo.Book">
- select * from ssm_book where userId = #{value}
- </select>
- </mapper>
7.3.UserMapper.java
- package com.ssm.mapper;
-
- import org.apache.ibatis.annotations.Param;
-
- import com.ssm.pojo.User;
-
- public interface UserMapper {
- //查找用户
- public User findUserbyNameAndPwd(@Param("username") String username,@Param("password") String password);
- public User findUserbyName(String username);
- }
7.4.UserMapper.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.mapper.UserMapper">
- <select id="findUserbyNameAndPwd" resultType="com.ssm.pojo.User">
- select * from ssm_user where username=#{username,jdbcType=VARCHAR} and password=#{password,jdbcType=VARCHAR}
- </select>
-
- <select id="findUserbyName" parameterType="String" resultType="com.ssm.pojo.User">
- select * from ssm_user where username=#{username}
- </select>
- </mapper>
8.Controller层
- package com.ssm.controller;
-
- import java.util.List;
-
- import javax.servlet.http.HttpSession;
-
- 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 com.ssm.pojo.Book;
- import com.ssm.pojo.User;
- import com.ssm.service.BookService;
- import com.ssm.service.LoginService;
-
-
- @Controller
-
- public class Login {
- /**
- * @author AL
- * 登录
- */
- @Autowired
- private LoginService loginService;
- @Autowired
- private BookService bookService;
-
- @RequestMapping("login")
- public String login(String username,String password,Model model) {
- User user = this.loginService.findUserByNameAndPwd(username,password);
-
- if(user!=null) {
- Integer userId = user.getId();
- List<Book> books = bookService.findBooksByUserId(userId);
- for(Book book : books) {
- System.out.println(book);
- }
- model.addAttribute("user",user);
- model.addAttribute("books",books);
- return "my";
- }
-
- return "index";
-
- }
-
- }
9.Service层
9.1.BookService接口
用于操作书籍
- package com.ssm.service;
-
- import java.util.List;
-
- import com.ssm.pojo.Book;
-
- public interface BookService {
- public List<Book> findBooksByUserId(Integer userId);
- }
9.2.BookServiceImpl实现类
- package com.ssm.service;
-
- import java.util.List;
-
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
-
- import com.ssm.mapper.BookMapper;
- import com.ssm.pojo.Book;
-
- @Service
- public class BookServiceImpl implements BookService {
-
- @Autowired
- private BookMapper bookMapper;
-
- @Override
- public List<Book> findBooksByUserId(Integer userId) {
- List<Book> books = bookMapper.findBooksByUserId(userId);
- return books;
- }
-
- }
9.3.登录接口
- package com.ssm.service;
-
- import com.ssm.pojo.User;
-
- public interface LoginService {
-
- public User findUserByNameAndPwd(String username, String password);
-
- }
9.4.登录实现类
- package com.ssm.service;
-
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
-
- import com.ssm.mapper.UserMapper;
- import com.ssm.pojo.User;
-
- @Service
- public class LoginServiceImpl implements LoginService {
-
- @Autowired
- private UserMapper userMapper;
-
- @Override
- public User findUserByNameAndPwd(String username, String password) {
- User user = userMapper.findUserbyNameAndPwd(username, password);
-
-
- return user;
- }
- }
10.页面导入到WEB-INF下
10.1 index.jsp首页导入
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="ISO-8859-1">
- <title>index</title>
- <style type="text/css">
- div{
- margin: 10px;
- }
- input{
- width: 200px;
- }
- </style>
- </head>
- <body>
- <form action="${pageContext.request.contextPath }/login.action" method="post">
- <div>
- <div>
- username:<input type="text" name="username" placeholder="Please enter your username">
- </div>
- <div>
- password:<input type="password" name="password" placeholder="Please enter your password">
- </div>
- <div>
- <input type="submit" value="login in">
- </div>
- </div>
- </form>
- </body>
- </html>
10.2 登录成功后的页面显示my.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="ISO-8859-1">
- <title>Insert title here</title>
- </head>
- <body>
- <div>
- <div>welcome:${user.username}</div>
- <div>
- <h1>your book list</h1>
- <table>
- <c:forEach items="${books }" var="book" varStatus="vs" >
- <tr>
- <td>${vs.index }</td>
- <td>${book.id }</td>
- <td>${book.name }</td>
- <td>${book.detail }</td>
- </tr>
- </c:forEach>
- </table>
- </div>
- </div>
- </body>
- </html>