用idea和SSM框架写一个斗地主系统
时间: 2024-01-16 15:01:57 浏览: 179
好的,这里简单介绍一下如何使用 IDEA 和 SSM 框架来实现一个斗地主系统。
首先,我们需要创建一个 Maven 项目。在 IDEA 中,可以选择 File -> New -> Project...,然后选择 Maven 项目模板,并填写项目信息。
接下来,我们需要引入 SSM 框架的相关依赖。在 pom.xml 文件中,添加以下依赖:
```xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency>
```
其中,${spring.version}、${mybatis.version} 和 ${mybatis-spring.version} 分别表示 Spring 和 MyBatis 的版本号,可以根据需要进行修改。
接下来,我们需要配置 Spring 和 MyBatis。在 src/main/resources 目录下,创建一个名为 applicationContext.xml 的文件,添加以下内容:
```xml
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!-- 配置 MyBatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
<!-- 配置 Mapper 扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper" />
</bean>
```
在这个文件中,我们配置了数据源、MyBatis 和 Mapper 扫描。其中,${jdbc.driverClassName}、${jdbc.url}、${jdbc.username} 和 ${jdbc.password} 分别表示数据库驱动、连接地址、用户名和密码,可以根据需要进行修改。
接下来,我们需要配置 MyBatis 的映射文件。在 src/main/resources 目录下,创建一个名为 mybatis-config.xml 的文件,添加以下内容:
```xml
<configuration>
<settings>
<setting name="cacheEnabled" value="true" />
</settings>
<typeAliases>
<package name="com.example.entity" />
</typeAliases>
<mappers>
<mapper resource="com/example/mapper/GameMapper.xml" />
</mappers>
</configuration>
```
在这个文件中,我们配置了实体类的别名以及映射文件的路径。
接下来,我们需要创建实体类和 Mapper 接口。在 src/main/java 目录下,创建一个名为 com.example.entity 的包,然后在这个包下创建一个名为 Game 的类,表示游戏实体。代码如下:
```java
public class Game {
private int id;
private String name;
// 其他属性和 getter/setter 方法省略
}
```
接下来,在 com.example.mapper 包下创建一个名为 GameMapper 的接口,表示游戏的 Mapper 接口。代码如下:
```java
public interface GameMapper {
Game selectById(int id);
List<Game> selectAll();
void insert(Game game);
void update(Game game);
void delete(int id);
}
```
在这个接口中,我们定义了查询、插入、更新和删除等操作的方法。这些方法的具体实现会在下一步中使用 MyBatis 来完成。
接下来,我们需要编写业务逻辑和控制器。在 com.example.service 包下创建一个名为 GameService 的类,表示游戏的业务逻辑。代码如下:
```java
@Service
public class GameService {
@Autowired
private GameMapper gameMapper;
public Game getGameById(int id) {
return gameMapper.selectById(id);
}
public List<Game> getAllGames() {
return gameMapper.selectAll();
}
public void addGame(Game game) {
gameMapper.insert(game);
}
public void updateGame(Game game) {
gameMapper.update(game);
}
public void deleteGame(int id) {
gameMapper.delete(id);
}
}
```
在这个类中,我们使用 @Autowired 注解来自动注入 GameMapper 对象,然后实现了查询、插入、更新和删除等操作的方法。
接下来,在 com.example.controller 包下创建一个名为 GameController 的类,表示游戏的控制器。代码如下:
```java
@Controller
@RequestMapping("/game")
public class GameController {
@Autowired
private GameService gameService;
@RequestMapping("/list")
public ModelAndView list() {
ModelAndView modelAndView = new ModelAndView("list");
List<Game> games = gameService.getAllGames();
modelAndView.addObject("games", games);
return modelAndView;
}
@RequestMapping("/add")
public String add(Game game) {
gameService.addGame(game);
return "redirect:/game/list";
}
@RequestMapping("/update")
public String update(Game game) {
gameService.updateGame(game);
return "redirect:/game/list";
}
@RequestMapping("/delete")
public String delete(int id) {
gameService.deleteGame(id);
return "redirect:/game/list";
}
}
```
在这个类中,我们使用 @Autowired 注解来自动注入 GameService 对象,然后实现了查询、插入、更新和删除等操作的方法。这些方法分别对应于显示游戏列表、添加游戏、更新游戏和删除游戏等功能。
最后,我们需要编写视图文件。在 src/main/webapp/WEB-INF/views 目录下,创建一个名为 list.jsp 的文件,表示游戏列表视图。代码如下:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>游戏列表</title>
</head>
<body>
<table>
<tr>
<th>ID</th>
<th>名称</th>
<th>操作</th>
</tr>
<c:forEach items="${games}" var="game">
<tr>
<td>${game.id}</td>
<td>${game.name}</td>
<td>
<a href="/game/update?id=${game.id}">编辑</a>
<a href="/game/delete?id=${game.id}">删除</a>
</td>
</tr>
</c:forEach>
</table>
<br>
<form action="/game/add" method="post">
<label>名称:</label><input type="text" name="name">
<input type="submit" value="添加">
</form>
</body>
</html>
```
在这个文件中,我们使用了 JSP 标签库来实现数据的显示和表单的提交。其中,${games} 表示从 GameController 中传递过来的游戏列表,c:forEach 标签用来遍历游戏列表并显示每一个游戏的信息。
至此,我们就完成了一个简单的斗地主系统的实现。当然,这只是一个示例,实际的系统还需要根据需求进行更加详细的设计和实现。
阅读全文