【java】ssm框架整合基本步骤练习总结

0.整个源码下载

GitHub - DillonPu/ssm: ssm三大框架完整整合练习示例

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>

 11.调试测试结果

11.1首页

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

 

  • 11
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
SSM框架整合步骤一般包括以下几个步骤: 1. 搭建环境:安装并配置好Java、Maven和Tomcat等必要的软件和工具。 2. 创建项目:使用Maven创建一个新的空项目。 3. 导入依赖:在项目的pom.xml文件中添加Spring、Spring MVC和MyBatis等框架的依赖。 4. 配置web.xml:在项目的web.xml文件中配置DispatcherServlet和ContextLoaderListener等Servlet和监听器。 5. 配置Spring:创建Spring的配置文件(如applicationContext.xml)并进行必要的配置,如数据源、事务管理器、扫描包等。 6. 配置Spring MVC:创建Spring MVC的配置文件(如springmvc-servlet.xml)并进行必要的配置,如视图解析器、静态资源处理器、控制器映射等。 7. 配置MyBatis:创建MyBatis的配置文件(如mybatis-config.xml)并进行必要的配置,如数据源、Mapper扫描等。 8. 编写实体类和Mapper接口:根据业务需求,编写实体类和Mapper接口,并在Mapper接口中定义SQL语句。 9. 编写Service层和Controller层:根据业务需求,编写Service层和Controller层的代码,处理业务逻辑和请求响应。 10. 配置数据库连接信息:在项目的配置文件中配置数据库连接信息,包括数据库URL、用户名、密码等。 11. 部署项目:将项目打包成war包,并将war包部署到Tomcat等Web服务器上。 这些步骤是一个基本的概述,具体的步骤和配置可能会根据实际需求和个人习惯有所不同。在实际开发中,还需要根据具体情况进行一些额外的配置和调试工作。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿来小同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值