IDEA搭建SSM-Jar包版
一、准备工作1.下载Jar包。2.创建Web项目1.创建工程2.填写工程名和工程路径3.在WEB-INF新建lib目录4.在WEB-INF新建classes目录5.设置classes目录6.设置lib路径
3.项目工程截图
二、创建项目1.配置文件1.user.mapper.xml2.applicationContext.xml3.jdbc.properties4.log4j.properties5.spring-mvc.xml6.web.xml
2.前端list.jsp
3.后端UserUserDaoUserDaoImplUserServiceUserServiceImplUserController
三、数据库文件四、运行项目五、感悟及其他1.感悟2.商务合作3.其他
一、准备工作
1.下载Jar包。
要是您没有Jar包,可以移步: SSM搭建所需Jar包
2.创建Web项目
要是您自己没有创建过Web项目,或者您有创建Web项目的疑问,请移步: IDEA创建Web项目详细说明 下面我会再次创建一遍Web项目,您可以跟着我一步步创建。
1.创建工程
选择Create New Project 选择Java Enterprise,勾选Web Application
2.填写工程名和工程路径
3.在WEB-INF新建lib目录
这是用来放Jar包的目录,目录建好之后把Jar导进入。
4.在WEB-INF新建classes目录
这个目录是用来放项目被编译后的class文件
5.设置classes目录
这里设置classes用来存放class文件。 流程是:File->Project Structure->Modules-Path->Use module complie output path->选择你自己的路径
6.设置lib路径
流程是:File->Project Structure->Modules-Dependencies->JARS or directories->选择你自己的路径
3.项目工程截图
这里是所有工作完成之后的最终截图,下面完成创建项目的工作。
二、创建项目
1.配置文件
1.user.mapper.xml
这里放在src/com/sjsq/model/mapper下,跟实体类放在一起。
<?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.sjsq.model.user.mapper">
<select id
="list" resultType
="User">
select
* from user
;
</select
>
</mapper
>
2.applicationContext.xml
<?xml version
="1.0" encoding
="UTF-8"?>
<!--suppress
ALL -->
<beans xmlns
="http://www.springframework.org/schema/beans"
xmlns
:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns
:tx
="http://www.springframework.org/schema/tx"
xmlns
:context
="http://www.springframework.org/schema/context"
xsi
:schemaLocation
="http
://www
.springframework
.org
/schema
/beans
http
://www
.springframework
.org
/schema
/beans
/spring
-beans
-3.1.xsd
http
://www
.springframework
.org
/schema
/tx
http
://www
.springframework
.org
/schema
/tx
/spring
-tx
.xsd
http
://www
.springframework
.org
/schema
/context
http
://www
.springframework
.org
/schema
/context
/spring
-context
.xsd"
>
<!-- 加载properties文件
-->
<bean id
="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name
="location" value
="classpath:jdbc.properties"/>
</bean
>
<!-- 配置数据源
-->
<bean id
="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name
="driverClassName" value
="${driver}"/>
<property name
="url" value
="${url}"/>
<property name
="username" value
="${username}"/>
<property name
="password" value
="${password}"/>
</bean
>
<!-- mybatis和spring完美整合,不需要mybatis的配置映射文件
-->
<bean id
="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name
="dataSource" ref
="dataSource"/>
<!-- 扫描model包
-->
<property name
="typeAliasesPackage" value
="com.sjsq.model"/>
<!-- 扫描sql配置文件
:mapper需要的xml文件
-->
<property name
="mapperLocations" value
="classpath:com/sjsq/model/mapper/*.xml"/>
</bean
>
<!-- Mapper动态代理开发,扫描dao接口包
-->
<bean
class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 注入sqlSessionFactory
-->
<property name
="sqlSessionFactoryBeanName" value
="sqlSessionFactory"/>
<!-- 给出需要扫描Dao接口包
-->
<property name
="basePackage" value
="com.sjsq.dao"/>
</bean
>
<!-- 事务管理
-->
<bean id
="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--数据库连接池
-->
<property name
="dataSource" ref
="dataSource"/>
</bean
>
</beans
>
3.jdbc.properties
#
8.0之前的driver
#driver
=com
.mysql
.jdbc
.Driver
#
8.0之后的driver
driver
=com
.mysql
.cj
.jdbc
.Driver
#mytest为我本地的数据库名
url
=jdbc
:mysql
://localhost
:3306/maven
-ssm
-demo
?serverTimezone
=UTC
# 数据库用户名
username
=root
# 数据库的密码
password
=admin
# 定义初始连接数
initialSize
=1
# 定义最大连接数
maxActive
=20
# 定义最大空闲
maxIdle
=20
# 定义最小空闲
minIdle
=1
# 定义最长等待时间
maxWait
=60000
4.log4j.properties
#日志输出级别
log4j
.rootLogger
=debug
,stdout
,D,E
#设置stdout的日志输出控制台
log4j
.appender
.stdout
=org
.apache
.log4j
.ConsoleAppender
#输出日志到控制台的方式,默认为System
.out
log4j
.appender
.stdout
.Target
= System
.out
#设置使用灵活布局
log4j
.appender
.stdout
.layout
=org
.apache
.log4j
.PatternLayout
#灵活定义输出格式
log4j
.appender
.stdout
.layout
.ConversionPattern
=%d
{yyyy
-MM-dd
HH:mm
:ss
,SSS} -[%p
] method
:[%c (%rms
)] - %m
%n
5.spring-mvc.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
.xsd
http
://www
.springframework
.org
/schema
/context
http
://www
.springframework
.org
/schema
/context
/spring
-context
.xsd
http
://www
.springframework
.org
/schema
/mvc
http
://www
.springframework
.org
/schema
/mvc
/spring
-mvc
-3.0.xsd"
>
<!-- 扫描注解,这样com
.sjsq包下的文件都能被扫描
-->
<context
:component
-scan base
-package="com.sjsq"/>
<!-- 开启SpringMVC注解模式
-->
<mvc
:annotation
-driven
/>
<!-- 静态资源默认servlet配置
-->
<mvc
:default-servlet
-handler
/>
<!-- 配置返回视图的路径,以及识别后缀是jsp文件
-->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name
="viewClass" value
="org.springframework.web.servlet.view.JstlView"/>
<property name
="prefix" value
="/WEB-INF/views/"/>
<property name
="suffix" value
=".jsp"/>
</bean
>
</beans
>
6.web.xml
<?xml version
="1.0" encoding
="UTF-8"?>
<web
-app xmlns
:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns
="http://java.sun.com/xml/ns/javaee"
xmlns
:web
="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi
:schemaLocation
="http
://java
.sun
.com
/xml
/ns
/javaee
http
://java
.sun
.com
/xml
/ns
/javaee
/web
-app_2_5
.xsd"
version
="2.5">
<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
>springmvc
</servlet
-name
>
<servlet
-class>org
.springframework
.web
.servlet
.DispatcherServlet
</servlet
-class>
<init
-param
>
<param
-name
>contextConfigLocation
</param
-name
>
<param
-value
>classpath
:spring
-mvc
.xml
</param
-value
>
</init
-param
>
<load
-on
-startup
>1</load
-on
-startup
>
</servlet
>
<servlet
-mapping
>
<servlet
-name
>springmvc
</servlet
-name
>
<url
-pattern
>*.do</url
-pattern
>
</servlet
-mapping
>
<!-- 欢迎页
-->
<welcome
-file
-list
>
<welcome
-file
>index
.jsp
</welcome
-file
>
</welcome
-file
-list
>
</web
-app
>
2.前端
list.jsp
要放在web/WEB-INF/views下面。
<%@ page language
="java" import="java.util.*" pageEncoding
="UTF-8"%>
<%@ taglib prefix
="c" uri
="http://java.sun.com/jsp/jstl/core"%>
<%
String path
= request
.getContextPath();
String basePath
= request
.getScheme()+"://"+request
.getServerName()+":"+request
.getServerPort()+path
+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html
>
<head
>
<base href
="<%=basePath%>">
<title
>My
JSP 'index.jsp' starting page
</title
>
<meta http
-equiv
="pragma" content
="no-cache">
<meta http
-equiv
="cache-control" content
="no-cache">
<meta http
-equiv
="expires" content
="0">
<meta http
-equiv
="keywords" content
="keyword1,keyword2,keyword3">
<meta http
-equiv
="description" content
="This is my page">
<!--
<link rel
="stylesheet" type
="text/css" href
="styles.css">
-->
</head
>
<body
>
<table width
="80%" align
="center">
<tr
>
<td
>编号
</td
>
<td
>姓名
</td
>
<td
>密码
</td
>
</tr
>
<c
:forEach items
="${list}" var="bean">
<tr
>
<td
>$
{bean
.id
}</td
>
<td
>$
{bean
.username
}</td
>
<td
>$
{bean
.password
}</td
>
</tr
>
</c
:forEach
>
</table
>
</body
>
</html
>
3.后端
User
package com
.sjsq
.model
;
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{" +
"id=" + id
+
", username='" + username
+ '\'' +
", password='" + password
+ '\'' +
'}';
}
}
UserDao
package com
.sjsq
.dao
;
import com
.sjsq
.model
.User
;
import java
.util
.List
;
public interface UserDao {
public List
<User> list();
}
UserDaoImpl
package com
.sjsq
.dao
.impl
;
import com
.sjsq
.dao
.UserDao
;
import com
.sjsq
.model
.User
;
import org
.apache
.ibatis
.session
.SqlSessionFactory
;
import org
.mybatis
.spring
.support
.SqlSessionDaoSupport
;
import org
.springframework
.beans
.factory
.annotation
.Autowired
;
import org
.springframework
.stereotype
.Repository
;
import java
.util
.List
;
@Repository("userDao")
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
@Autowired
@Override
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory
) {
super.setSqlSessionFactory(sqlSessionFactory
);
}
public List
<User> list() {
return this.getSqlSession().selectList("com.sjsq.model.user.mapper.list");
}
}
UserService
package com
.sjsq
.service
;
import com
.sjsq
.model
.User
;
import java
.util
.List
;
public interface UserService {
public List
<User> list();
}
UserServiceImpl
package com
.sjsq
.service
.impl
;
import com
.sjsq
.dao
.UserDao
;
import com
.sjsq
.model
.User
;
import com
.sjsq
.service
.UserService
;
import org
.springframework
.beans
.factory
.annotation
.Autowired
;
import org
.springframework
.stereotype
.Service
;
import java
.util
.List
;
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao
;
public void setUserDao(UserDao userDao
){
this.userDao
= userDao
;
}
public List
<User> list() {
return userDao
.list();
}
}
UserController
package com
.sjsq
.controller
;
import com
.sjsq
.service
.UserService
;
import org
.springframework
.beans
.factory
.annotation
.Autowired
;
import org
.springframework
.stereotype
.Controller
;
import org
.springframework
.ui
.ModelMap
;
import org
.springframework
.web
.bind
.annotation
.RequestMapping
;
@Controller
public class UserController {
@Autowired
private UserService userService
;
public void setUserService(UserService userService
) {
this.userService
= userService
;
}
@RequestMapping("/list")
public String
list(ModelMap map
){
map
.addAttribute("list", userService
.list());
return "list";
}
}
三、数据库文件
drop database if exists maven
-ssm
-demo
;
create database maven
-ssm
-demo
;
drop table if exists `user`;
create table `user` (
`id
` int(11) not null auto_increment,
`username
` varchar(255) default null,
`password
` varchar(255) default null,
primary key (`id
`)
);
insert into `user` values (1, 'sjsq', '123456');
四、运行项目
浏览器输入:http://localhost:8080/list.do,就可以访问到页面了。
五、感悟及其他
1.感悟
使用Jar包的方式搭建SSM,避免了配置Maven的麻烦。感觉效率越来越高了,这次只用了一早上就把环境搭建好了。
2.商务合作
要是你自己对于本项目有定制化开发需求或者有什么其他问题,可以联系(有偿服务): 博主QQ:3079118617 请备注:+您的职业
3.其他
您要是想做非SSM图书管理系统,请移步: 图书管理系统 图书管理系统-添加管理增删改查功能
您要是想做非SSM学生成绩管理系统,请移步: 学生成绩管理系统
如本文章侵犯了您的权益,请联系我进行删除。
后续我也会进行开发SSM的各种管理系统,欢迎关注我的博客。
鸡汤:每一天有个好的心情,你会看起来很帅气,很漂亮。