jsp 语言 JSP 通过 MyBatis 操作数据库

JSP阿木 发布于 17 天前 6 次阅读


JSP 通过 MyBatis 操作数据库技术详解

随着互联网技术的飞速发展,Java Server Pages(JSP)作为Java Web开发的重要技术之一,被广泛应用于企业级应用开发中。MyBatis 作为一款优秀的持久层框架,能够简化数据库操作,提高开发效率。本文将围绕JSP通过MyBatis操作数据库这一主题,详细讲解相关技术。

JSP 简介

JSP(Java Server Pages)是一种动态网页技术,它允许开发者将Java代码嵌入到HTML页面中。JSP页面由HTML标签、JSP标签和Java代码组成。当用户请求JSP页面时,服务器会将其编译成Servlet,然后执行Java代码,并将结果生成HTML页面返回给用户。

MyBatis 简介

MyBatis 是一款优秀的持久层框架,它对JDBC操作数据库的过程进行了封装,简化了数据库操作。MyBatis 使用XML或注解的方式配置SQL映射,将SQL语句与Java代码分离,提高了代码的可读性和可维护性。

JSP 通过 MyBatis 操作数据库的步骤

1. 环境搭建

我们需要搭建JSP和MyBatis的开发环境。以下是环境搭建的步骤:

- 安装Java Development Kit(JDK)

- 安装Apache Tomcat

- 安装MySQL数据库

- 安装MyBatis

2. 创建项目

创建一个Maven项目,添加以下依赖:

xml

<dependencies>


<!-- JSP相关依赖 -->


<dependency>


<groupId>javax.servlet</groupId>


<artifactId>javax.servlet-api</artifactId>


<version>4.0.1</version>


<scope>provided</scope>


</dependency>


<dependency>


<groupId>org.apache.taglibs</groupId>


<artifactId>taglibs-standard-impl</artifactId>


<version>1.2.5</version>


</dependency>

<!-- MyBatis相关依赖 -->


<dependency>


<groupId>org.mybatis</groupId>


<artifactId>mybatis</artifactId>


<version>3.5.6</version>


</dependency>


<dependency>


<groupId>org.mybatis.caches</groupId>


<artifactId>mybatis-ehcache</artifactId>


<version>1.3.2</version>


</dependency>


<dependency>


<groupId>org.apache.commons</groupId>


<artifactId>commons-dbcp2</artifactId>


<version>2.8.0</version>


</dependency>

<!-- MySQL驱动 -->


<dependency>


<groupId>mysql</groupId>


<artifactId>mysql-connector-java</artifactId>


<version>8.0.22</version>


</dependency>


</dependencies>


3. 配置数据库连接

在项目的`src/main/resources`目录下创建一个名为`db.properties`的文件,用于配置数据库连接信息:

properties

driver=com.mysql.cj.jdbc.Driver


url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC


username=root


password=root


4. 创建实体类

创建一个实体类`User`,用于表示数据库中的用户表:

java

public class User {


private Integer id;


private String username;


private String password;


// 省略getter和setter方法


}


5. 创建Mapper接口

创建一个Mapper接口`UserMapper`,用于定义数据库操作方法:

java

public interface UserMapper {


List<User> findAll();


User findById(Integer id);


void save(User user);


void update(User user);


void delete(Integer id);


}


6. 创建Mapper XML

在`src/main/resources`目录下创建一个名为`UserMapper.xml`的文件,用于配置SQL映射:

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.example.mapper.UserMapper">


<select id="findAll" resultType="com.example.entity.User">


SELECT FROM user


</select>


<select id="findById" parameterType="int" resultType="com.example.entity.User">


SELECT FROM user WHERE id = {id}


</select>


<insert id="save" parameterType="com.example.entity.User">


INSERT INTO user(username, password) VALUES({username}, {password})


</insert>


<update id="update" parameterType="com.example.entity.User">


UPDATE user SET username = {username}, password = {password} WHERE id = {id}


</update>


<delete id="delete" parameterType="int">


DELETE FROM user WHERE id = {id}


</delete>


</mapper>


7. 创建SqlSessionFactory

在`src/main/resources`目录下创建一个名为`mybatis-config.xml`的文件,用于配置MyBatis:

xml

<?xml version="1.0" encoding="UTF-8" ?>


<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">


<configuration>


<environments default="development">


<environment id="development">


<transactionManager type="JDBC"/>


<dataSource type="POOLED">


<property name="driver" value="${driver}"/>


<property name="url" value="${url}"/>


<property name="username" value="${username}"/>


<property name="password" value="${password}"/>


</dataSource>


</environment>


</environments>


<mappers>


<mapper resource="com/example/mapper/UserMapper.xml"/>


</mappers>


</configuration>


8. 创建Service层

创建一个Service层`UserService`,用于封装业务逻辑:

java

public class UserService {


private final UserMapper userMapper;

public UserService(UserMapper userMapper) {


this.userMapper = userMapper;


}

public List<User> findAll() {


return userMapper.findAll();


}

public User findById(Integer id) {


return userMapper.findById(id);


}

public void save(User user) {


userMapper.save(user);


}

public void update(User user) {


userMapper.update(user);


}

public void delete(Integer id) {


userMapper.delete(id);


}


}


9. 创建Controller层

创建一个Controller层`UserController`,用于处理用户请求:

java

public class UserController {


private final UserService userService;

public UserController(UserService userService) {


this.userService = userService;


}

public List<User> findAll() {


return userService.findAll();


}

public User findById(Integer id) {


return userService.findById(id);


}

public void save(User user) {


userService.save(user);


}

public void update(User user) {


userService.update(user);


}

public void delete(Integer id) {


userService.delete(id);


}


}


10. 创建JSP页面

创建一个JSP页面`index.jsp`,用于展示用户列表:

jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>


<head>


<title>用户列表</title>


</head>


<body>


<h1>用户列表</h1>


<table border="1">


<tr>


<th>编号</th>


<th>用户名</th>


<th>密码</th>


<th>操作</th>


</tr>


<%


List<User> users = (List<User>) request.getAttribute("users");


for (User user : users) {


%>


<tr>


<td><%= user.getId() %></td>


<td><%= user.getUsername() %></td>


<td><%= user.getPassword() %></td>


<td>


<a href="update.jsp?id=<%= user.getId() %>">修改</a>


<a href="delete.jsp?id=<%= user.getId() %>">删除</a>


</td>


</tr>


<%


}


%>


</table>


</body>


</html>


总结

本文详细介绍了JSP通过MyBatis操作数据库的相关技术。通过以上步骤,我们可以轻松实现JSP与数据库的交互。在实际开发中,我们可以根据需求对代码进行优化和扩展。希望本文对您有所帮助。