下面是关于“Spring MVC+MyBatis实现注册登录功能”的完整攻略,包含两个示例说明。
Spring MVC+MyBatis实现注册登录功能
在本文中,我们将介绍如何使用Spring MVC和MyBatis框架实现注册登录功能。
步骤1:添加依赖
首先,我们需要在pom.xml
中添加Spring MVC和MyBatis的依赖。以下是一个简单的依赖示例:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
</dependencies>
步骤2:配置数据源
接下来,我们需要在src/main/resources
目录下创建一个名为application.properties
的文件,并添加以下内容:
# 数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
在上面的配置文件中,我们使用了spring.datasource
前缀来设置数据源的属性。
步骤3:配置MyBatis
接下来,我们需要在src/main/resources
目录下创建一个名为mybatis-config.xml
的文件,并添加以下内容:
<configuration>
<typeAliases>
<package name="com.example.model"/>
</typeAliases>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
在上面的配置文件中,我们使用了<typeAliases>
元素来设置实体类的别名。我们还使用了<mappers>
元素来指定MyBatis的映射文件。
步骤4:编写实体类
接下来,我们需要在src/main/java
目录下创建一个名为com.example.model
的包,并在该包中创建一个名为User
的类,添加以下:
public class User {
private Long id;
private String username;
private String password;
// 省略getter和setter方法
}
在上面的示例中,我们创建了一个名为User
的实体类,并定义了id
、username
和password
三个属性。
步骤5:编写Mapper接口和映射文件
接下来,我们需要在src/main/java
目录下创建一个名为com.example.mapper
的包,并在该包中创建一个名为UserMapper
的接口,添加以下内容:
public interface UserMapper {
User findByUsername(String username);
void save(User user);
}
在上面的示例中,我们创建了一个名为UserMapper
的接口,并定义了findByUsername
和save
两个方法。
接下来,我们需要在src/main/resources
目录下创建一个名为com/example/mapper/UserMapper.xml
的文件,并添加以下内容:
<mapper namespace="com.example.mapper.UserMapper">
<select id="findByUsername" resultType="com.example.model.User">
select * from user where username = #{username}
</select>
<insert id="save">
insert into user (username, password) values (#{username}, #{password})
</insert>
</mapper>
在上面的示例中,我们创建了一个名为UserMapper.xml
的映射文件,并定义了findByUsername
和save
两个SQL语句。
步骤6:编写Service和Controller
接下来,我们需要在src/main/java
目录下创建一个名为com.example.service
的包,并在该包中创建一个名为UserService
的类,添加以下内容:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User findByUsername(String username) {
return userMapper.findByUsername(username);
}
public void save(User user) {
userMapper.save(user);
}
}
在上面的示例中,我们创建了一个名为UserService
的服务类,并定义了findByUsername
和save
两个方法。我们还使用了@Service
注解标记这个类,并使用了@Autowired
注解注入UserMapper
对象。
接下来,我们需要在src/main/java
目录下创建一个名为com.example.controller
的包,并在该包中创建一个名为UserController
的类,添加以下内容:
@Controller
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/login")
public String login() {
return "login";
}
@PostMapping("/login")
public String login(String username, String password, HttpSession session) {
User user = userService.findByUsername(username);
if (user != null && user.getPassword().equals(password)) {
session.setAttribute("user", user);
return "redirect:/home";
} else {
return "login";
}
}
@GetMapping("/register")
public String register() {
return "register";
}
@PostMapping("/register")
public String register(User user) {
userService.save(user);
return "redirect:/login";
}
@GetMapping("/home")
public String home(HttpSession session) {
User user = (User) session.getAttribute("user");
if (user != null) {
return "home";
} else {
return "redirect:/login";
}
}
}
在上面的示例中,我们创建了一个名为UserController
的控制器,并定义了login
、register
和home
三个方法。我们还使用了@Controller
注解标记这个类,并使用了@Autowired
注解注入UserService
对象。我们还使用了@GetMapping
和@PostMapping
注解来定义请求方法。我们还使用了HttpSession
对象来保存用户信息。
示例1:登录功能
以下是一个示例,演示如何实现登录功能:
<form action="/login" method="post">
<div>
<label for="username">用户名:</label>
<input type="text" id="username" name="username">
</div>
<div>
<label for="password">密码:</label>
<input type="password" id="password" name="password">
</div>
<div>
<button type="submit">登录</button>
</div>
</form>
在上面的示例中,我们创建了一个名为login
的HTML表单,并使用了<form>
元素来定义表单。我们还使用了<input>
元素来定义输入框,使用了<button>
元素来定义提交按钮。
示例2:注册功能
以下是一个示例,演示如何实现注册功能:
<form action="/register" method="post">
<div>
<label for="username">用户名:</label>
<input type="text" id="username" name="username">
</div>
<div>
<label for="password">密码:</label>
<input type="password" id="password" name="password">
</div>
<div>
<button type="submit">注册</button>
</div>
</form>
在上面的示例中,我们创建了一个名为register
的HTML表单,并使用了<form>
元素来定义表单。我们还使用了<input>
元素来定义输入框,使用了<button>
元素来定义提交按钮。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring MVC+mybatis实现注册登录功能 - Python技术站