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.准备数据库表

  1. #创建数据库ssm
  2. drop database if exists ssm;
  3. create database ssm;
  4. use ssm;
  5. #创建书本表
  6. drop table if exists ssm_book;
  7. create table ssm_book (
  8. id int(11) primary key auto_increment not null,
  9. name varchar(111),
  10. detail varchar(256),
  11. userId int(22)
  12. );
  13. insert into ssm_book(id, name,detail,userId) values
  14. (1,"javaWeb","JavaWeb从入门到精通",1),
  15. (2,"PhotoShop","图片图像处理",1),
  16. (3,"mysql从入门到精通","数据库专业书籍",2);
  17. select * from ssm_book;
  18. # 创建用户表
  19. create table ssm_user (
  20. id int(11) primary key auto_increment not null,
  21. username varchar(111),
  22. password varchar(256)
  23. );
  24. insert into ssm_user(id, username,password) values
  25. (1,"aa","aa"),
  26. (2,"bb","bb"),
  27. (3,"cc","cc");
  28. select * from ssm_userssm_user;
  29. select * from ssm_book where userId = 1;

3.准备pojo

 3.1.Book.java

  1. package com.ssm.pojo;
  2. public class Book {
  3. private Integer id;
  4. private String name;
  5. private String detail;
  6. private Integer userId;
  7. public Integer getId() {
  8. return id;
  9. }
  10. public void setId(Integer id) {
  11. this.id = id;
  12. }
  13. public String getName() {
  14. return name;
  15. }
  16. public void setName(String name) {
  17. this.name = name;
  18. }
  19. public String getDetail() {
  20. return detail;
  21. }
  22. public void setDetail(String detail) {
  23. this.detail = detail;
  24. }
  25. public Integer getUserId() {
  26. return userId;
  27. }
  28. public void setUserId(Integer userId) {
  29. this.userId = userId;
  30. }
  31. @Override
  32. public String toString() {
  33. return "Book [id=" + id + ", name=" + name + ", detail=" + detail + ", userId=" + userId + "]";
  34. }
  35. }

3.2.User.java

  1. package com.ssm.pojo;
  2. public class User {
  3. private Integer id;
  4. private String username;
  5. private String password;
  6. public Integer getId() {
  7. return id;
  8. }
  9. public void setId(Integer id) {
  10. this.id = id;
  11. }
  12. public String getUsername() {
  13. return username;
  14. }
  15. public void setUsername(String username) {
  16. this.username = username;
  17. }
  18. public String getPassword() {
  19. return password;
  20. }
  21. public void setPassword(String password) {
  22. this.password = password;
  23. }
  24. @Override
  25. public String toString() {
  26. return "User [username=" + username + ", password=" + password + "]";
  27. }
  28. }

4. 准备jdbc.properties文件

我直接放在了src下

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
  3. jdbc.username=root
  4. jdbc.password=admin

5.applicationContext.xml配置文件 

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
  4. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  8. 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
  9. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
  10. <!-- 配置读取properties文件jdbc.properties以连接数据库 -->
  11. <context:property-placeholder location="classpath:jdbc.properties"/>
  12. <!-- 配置数据源-->
  13. <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
  14. <property name="driverClassName" value="${jdbc.driver}"></property>
  15. <property name="url" value="${jdbc.url}"></property>
  16. <property name="username" value="${jdbc.username}"></property>
  17. <property name="password" value="${jdbc.password}"></property>
  18. </bean>
  19. <!-- 配置sqlSessionFactory -->
  20. <bean class="org.mybatis.spring.SqlSessionFactoryBean">
  21. <property name="dataSource" ref="druidDataSource"></property>
  22. </bean>
  23. <!-- 配置mapper扫描器 -->
  24. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  25. <property name="basePackage" value="com.ssm.mapper"></property>
  26. </bean>
  27. <!-- 配置servic扫描器 -->
  28. <context:component-scan base-package="com.ssm.service"/>
  29. <!-- 配置事物 -->
  30. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  31. <property name="dataSource" ref="druidDataSource"></property>
  32. </bean>
  33. <!--配置事物-通知 -->
  34. <tx:advice id="txAdvice" transaction-manager="transactionManager">
  35. <tx:attributes>
  36. <tx:method name="add*" propagation="REQUIRED"/>
  37. <tx:method name="delete*" propagation="REQUIRED"/>
  38. <tx:method name="find*" propagation="REQUIRED"/>
  39. <tx:method name="edit*" propagation="REQUIRED"/>
  40. </tx:attributes>
  41. </tx:advice>
  42. <!-- 配置事物-切面 -->
  43. <aop:config>
  44. <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.ssm.service.*.*(..))"/>
  45. </aop:config>
  46. </beans>

 6.springMVC.xml配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  7. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
  8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  9. <!--配置Controller扫描 -->
  10. <context:component-scan base-package="com.ssm.controller"></context:component-scan>
  11. <!-- 配置注解驱动 -->
  12. <mvc:annotation-driven></mvc:annotation-driven>
  13. <!-- 配置视图解析器 -->
  14. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  15. <property name="prefix" value="/"></property>
  16. <property name="suffix" value=".jsp"></property>
  17. </bean>
  18. </beans>

7.dao之mapper

由于在applicationContext.xml配置了自动扫描mapper,所以需要把mapper类和其对应的mapper.xml文件放在同一目录下,命名也是一样

7.1.BookMapper.java

  1. package com.ssm.mapper;
  2. import java.util.List;
  3. import com.ssm.pojo.Book;
  4. public interface BookMapper {
  5. //添加一本书
  6. public void addBook(Book book);
  7. //根据id删除一本书
  8. public void deleteBookById(Integer id);
  9. //根据ID查询书
  10. public Book findBookById(Integer id);
  11. //根据书名模糊查询书
  12. public List<Book> findBooksByKeyname(String keyname);
  13. //根据id编辑修改书的信息
  14. public void editBookInformationById(Book book);
  15. //根据用户id查询
  16. public List<Book> findBooksByUserId(Integer userId);
  17. }

7.2.BookMapper.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ssm.mapper.BookMapper">
  6. <insert id="addBook" parameterType="com.ssm.pojo.Book" >
  7. insert into ssm_book(id, name,detail,userId) values(#{id},#{name},#{detail},#{userId})
  8. </insert>
  9. <delete id="deleteBookById" parameterType="Integer">
  10. delete from ssm_book where id = #{id}"
  11. </delete>
  12. <select id="findBookById" parameterType="Integer" resultType="com.ssm.pojo.Book">
  13. select * from ssm_book where id = #{id}
  14. </select>
  15. <select id="findBooksByKeyname" parameterType="String" resultType="com.ssm.pojo.Book">
  16. select * from ssm_book where name = "%"#{value}"%"
  17. </select>
  18. <update id="editBookInformationById" parameterType="Integer">
  19. update ssm_book
  20. set name=#{name},detail=#{detail},userId=#{userId}
  21. where id=#{id}
  22. </update>
  23. <select id="findBooksByUserId" parameterType="Integer" resultType="com.ssm.pojo.Book">
  24. select * from ssm_book where userId = #{value}
  25. </select>
  26. </mapper>

7.3.UserMapper.java

  1. package com.ssm.mapper;
  2. import org.apache.ibatis.annotations.Param;
  3. import com.ssm.pojo.User;
  4. public interface UserMapper {
  5. //查找用户
  6. public User findUserbyNameAndPwd(@Param("username") String username,@Param("password") String password);
  7. public User findUserbyName(String username);
  8. }

7.4.UserMapper.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ssm.mapper.UserMapper">
  6. <select id="findUserbyNameAndPwd" resultType="com.ssm.pojo.User">
  7. select * from ssm_user where username=#{username,jdbcType=VARCHAR} and password=#{password,jdbcType=VARCHAR}
  8. </select>
  9. <select id="findUserbyName" parameterType="String" resultType="com.ssm.pojo.User">
  10. select * from ssm_user where username=#{username}
  11. </select>
  12. </mapper>

 8.Controller层

  1. package com.ssm.controller;
  2. import java.util.List;
  3. import javax.servlet.http.HttpSession;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.ui.Model;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import com.ssm.pojo.Book;
  9. import com.ssm.pojo.User;
  10. import com.ssm.service.BookService;
  11. import com.ssm.service.LoginService;
  12. @Controller
  13. public class Login {
  14. /**
  15. * @author AL
  16. * 登录
  17. */
  18. @Autowired
  19. private LoginService loginService;
  20. @Autowired
  21. private BookService bookService;
  22. @RequestMapping("login")
  23. public String login(String username,String password,Model model) {
  24. User user = this.loginService.findUserByNameAndPwd(username,password);
  25. if(user!=null) {
  26. Integer userId = user.getId();
  27. List<Book> books = bookService.findBooksByUserId(userId);
  28. for(Book book : books) {
  29. System.out.println(book);
  30. }
  31. model.addAttribute("user",user);
  32. model.addAttribute("books",books);
  33. return "my";
  34. }
  35. return "index";
  36. }
  37. }

 9.Service层

9.1.BookService接口

用于操作书籍

  1. package com.ssm.service;
  2. import java.util.List;
  3. import com.ssm.pojo.Book;
  4. public interface BookService {
  5. public List<Book> findBooksByUserId(Integer userId);
  6. }

9.2.BookServiceImpl实现类

  1. package com.ssm.service;
  2. import java.util.List;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.stereotype.Service;
  5. import com.ssm.mapper.BookMapper;
  6. import com.ssm.pojo.Book;
  7. @Service
  8. public class BookServiceImpl implements BookService {
  9. @Autowired
  10. private BookMapper bookMapper;
  11. @Override
  12. public List<Book> findBooksByUserId(Integer userId) {
  13. List<Book> books = bookMapper.findBooksByUserId(userId);
  14. return books;
  15. }
  16. }

9.3.登录接口

  1. package com.ssm.service;
  2. import com.ssm.pojo.User;
  3. public interface LoginService {
  4. public User findUserByNameAndPwd(String username, String password);
  5. }

 9.4.登录实现类

  1. package com.ssm.service;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.stereotype.Service;
  4. import com.ssm.mapper.UserMapper;
  5. import com.ssm.pojo.User;
  6. @Service
  7. public class LoginServiceImpl implements LoginService {
  8. @Autowired
  9. private UserMapper userMapper;
  10. @Override
  11. public User findUserByNameAndPwd(String username, String password) {
  12. User user = userMapper.findUserbyNameAndPwd(username, password);
  13. return user;
  14. }
  15. }

10.页面导入到WEB-INF下

10.1 index.jsp首页导入

 

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="ISO-8859-1">
  6. <title>index</title>
  7. <style type="text/css">
  8. div{
  9. margin: 10px;
  10. }
  11. input{
  12. width: 200px;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <form action="${pageContext.request.contextPath }/login.action" method="post">
  18. <div>
  19. <div>
  20. username:<input type="text" name="username" placeholder="Please enter your username">
  21. </div>
  22. <div>
  23. password:<input type="password" name="password" placeholder="Please enter your password">
  24. </div>
  25. <div>
  26. <input type="submit" value="login in">
  27. </div>
  28. </div>
  29. </form>
  30. </body>
  31. </html>

10.2 登录成功后的页面显示my.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta charset="ISO-8859-1">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <div>
  11. <div>welcome:${user.username}</div>
  12. <div>
  13. <h1>your book list</h1>
  14. <table>
  15. <c:forEach items="${books }" var="book" varStatus="vs" >
  16. <tr>
  17. <td>${vs.index }</td>
  18. <td>${book.id }</td>
  19. <td>${book.name }</td>
  20. <td>${book.detail }</td>
  21. </tr>
  22. </c:forEach>
  23. </table>
  24. </div>
  25. </div>
  26. </body>
  27. </html>

 11.调试测试结果

11.1首页

11.2 登录成功后显示自己的书籍

 

原文地址:https://www.cnblogs.com/SanguineBoy/p/11201662.html