一个简单的SSM框架实例
时间: 2023-12-22 22:18:48 浏览: 105
好的,以下是一个简单的SSM框架实例:
创建一个基于Maven的Web项目,命名为ssm-demo。
在pom.xml文件中添加以下依赖:
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
- 在src/main/resources目录下创建mybatis-config.xml文件,配置MyBatis的数据源和Mapper扫描路径:
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm-demo?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
- 在src/main/resources目录下创建mapper/UserMapper.xml文件,定义用户数据的增删改查操作:
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="getUserById" parameterType="int" resultType="com.example.demo.model.User">
select * from user where id = #{id}
</select>
<select id="getAllUsers" resultType="com.example.demo.model.User">
select * from user
</select>
<insert id="addUser" parameterType="com.example.demo.model.User">
insert into user(username, password) values(#{username}, #{password})
</insert>
<update id="updateUser" parameterType="com.example.demo.model.User">
update user set username = #{username}, password = #{password} where id = #{id}
</update>
<delete id="deleteUserById" parameterType="int">
delete from user where id = #{id}
</delete>
</mapper>
- 在src/main/java目录下创建com.example.demo.model包和com.example.demo.mapper包,分别放置User实体类和UserMapper接口。
User.java:
public class User {
private int id;
private String username;
private String password;
// getters and setters
}
UserMapper.java:
public interface UserMapper {
User getUserById(int id);
List<User> getAllUsers();
void addUser(User user);
void updateUser(User user);
void deleteUserById(int id);
}
- 在src/main/java目录下创建com.example.demo.service包和com.example.demo.service.impl包,分别放置UserService接口和UserServiceImpl实现类。
UserService.java:
public interface UserService {
User getUserById(int id);
List<User> getAllUsers();
void addUser(User user);
void updateUser(User user);
void deleteUserById(int id);
}
UserServiceImpl.java:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getUserById(int id) {
return userMapper.getUserById(id);
}
@Override
public List<User> getAllUsers() {
return userMapper.getAllUsers();
}
@Override
public void addUser(User user) {
userMapper.addUser(user);
}
@Override
public void updateUser(User user) {
userMapper.updateUser(user);
}
@Override
public void deleteUserById(int id) {
userMapper.deleteUserById(id);
}
}
- 在src/main/java目录下创建com.example.demo.controller包和com.example.demo.config包,分别放置UserController控制器和WebConfig配置类。
UserController.java:
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
@ResponseBody
public User getUserById(@PathVariable int id) {
return userService.getUserById(id);
}
@GetMapping("/")
@ResponseBody
public List<User> getAllUsers() {
return userService.getAllUsers();
}
@PostMapping("/")
public String addUser(User user) {
userService.addUser(user);
return "redirect:/user/";
}
@PutMapping("/")
public String updateUser(User user) {
userService.updateUser(user);
return "redirect:/user/";
}
@DeleteMapping("/{id}")
public String deleteUserById(@PathVariable int id) {
userService.deleteUserById(id);
return "redirect:/user/";
}
}
WebConfig.java:
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.demo")
public class WebConfig implements WebMvcConfigurer {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}
}
- 在src/main/webapp/WEB-INF/views目录下创建index.jsp和user.jsp页面,用于展示用户列表和添加/修改用户信息。
index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SSM Demo</title>
</head>
<body>
<h1>User List</h1>
<table border="1">
<tr>
<th>ID</th>
<th>Username</th>
<th>Password</th>
<th>Edit</th>
<th>Delete</th>
</tr>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.password}</td>
<td><a href="/user/${user.id}">Edit</a></td>
<td><a href="/user/${user.id}" data-method="delete">Delete</a></td>
</tr>
</c:forEach>
</table>
<hr>
<h2>Add User</h2>
<form method="post" action="/user/">
<label>Username:</label>
<input type="text" name="username"><br>
<label>Password:</label>
<input type="password" name="password"><br>
<input type="submit" value="Add">
</form>
</body>
</html>
user.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SSM Demo</title>
</head>
<body>
<h1>${user.id == 0 ? 'Add' : 'Edit'} User</h1>
<form method="${user.id == 0 ? 'post' : 'put'}" action="/user/">
<input type="hidden" name="id" value="${user.id}">
<label>Username:</label>
<input type="text" name="username" value="${user.username}"><br>
<label>Password:</label>
<input type="password" name="password" value="${user.password}"><br>
<input type="submit" value="${user.id == 0 ? 'Add' : 'Update'}">
</form>
</body>
</html>
- 在src/main/webapp/WEB-INF目录下创建web.xml文件,配置DispatcherServlet和Spring容器:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
id="WebApp_ID" version="4.0">
<display-name>ssm-demo</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcherServlet-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
- 在src/main/webapp/WEB-INF目录下创建dispatcherServlet-servlet.xml文件,配置Spring容器和MVC组件扫描:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
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-5.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-5.2.xsd">
<context:component-scan base-package="com.example.demo"/>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm-demo?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.demo.mapper"/>
</bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<mvc:annotation-driven />
<mvc:resources location="/static/" mapping="/static/**" />
</beans>
这是一个简单的SSM框架实例,其中包含了Spring、Spring MVC和MyBatis的配置,以及基本的CRUD操作和页面展示。希望对你有所帮助!
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)