zoukankan      html  css  js  c++  java
  • 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 登录成功后显示自己的书籍

     

  • 相关阅读:
    页面嵌入QQ功能(点QQ建立一个临时会话,显示在页面的固定位置)
    mavn项目(springMVC) 引入静态资源(js、css)等
    java 信号量Semaphore
    无法访问windows安装服务。发生这种情况的可能是您在安全模式下运行windows,或是没有正确安装windows安装,。请与技术支持人员联系以获得帮助。
    IIS “另一个程序正在使用此文件,进程无法访问"
    无需写try/catch,也能正常处理异常
    不修改代码就能优化ASP.NET网站性能的一些方法
    Web性能优化:图片优化
    毕业论文参考文献规范格式
    分布式网格缓存Coherence简介
  • 原文地址:https://www.cnblogs.com/SanguineBoy/p/11201662.html
Copyright © 2011-2022 走看看