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

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


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

随着互联网技术的飞速发展,Java Server Pages(JSP)和MyBatis作为Java Web开发中常用的技术,已经广泛应用于各种企业级应用中。JSP作为服务器端技术,用于生成动态网页;而MyBatis则是一个优秀的持久层框架,能够简化数据库操作。本文将围绕JSP通过MyBatis操作数据库这一主题,详细讲解相关技术。

JSP 简介

JSP(Java Server Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码。JSP页面由HTML标签和Java代码组成,服务器在请求到达时,会自动将JSP页面转换为Servlet,然后执行其中的Java代码,最后将结果生成HTML页面返回给客户端。

MyBatis 简介

MyBatis是一个优秀的持久层框架,它对JDBC操作数据库的过程进行了封装,简化了数据库操作。MyBatis使用XML或注解的方式配置SQL映射,将SQL语句与Java代码分离,使得代码更加简洁易读。

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

1. 环境搭建

我们需要搭建JSP和MyBatis的开发环境。以下是所需的基本软件:

- JDK:Java开发工具包,版本建议为1.8及以上。

- Tomcat:Java Web服务器,用于运行JSP页面。

- MySQL:关系型数据库,用于存储数据。

- MyBatis:持久层框架,用于操作数据库。

2. 创建项目

使用IDE(如Eclipse、IntelliJ IDEA等)创建一个Java Web项目,并添加以下依赖:

xml

<dependencies>


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


<dependency>


<groupId>javax.servlet</groupId>


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


<version>4.0.1</version>


<scope>provided</scope>


</dependency>


<!-- MySQL驱动 -->


<dependency>


<groupId>mysql</groupId>


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


<version>8.0.22</version>


</dependency>


<!-- MyBatis依赖 -->


<dependency>


<groupId>org.mybatis</groupId>


<artifactId>mybatis</artifactId>


<version>3.5.7</version>


</dependency>


</dependencies>


3. 配置数据库连接

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

properties

driver=com.mysql.cj.jdbc.Driver


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


username=root


password=root


4. 创建MyBatis配置文件

在`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>


5. 创建实体类

在项目中创建一个名为`com.example.entity`的包,用于存放实体类。例如,创建一个`User`类:

java

package com.example.entity;

public class User {


private Integer id;


private String name;


private String email;

// 省略getter和setter方法


}


6. 创建Mapper接口

在项目中创建一个名为`com.example.mapper`的包,用于存放Mapper接口。例如,创建一个`UserMapper`接口:

java

package com.example.mapper;

import com.example.entity.User;

public interface UserMapper {


User getUserById(Integer id);


}


7. 创建Mapper XML文件

在`src/main/resources`目录下创建一个名为`com/example/mapper/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="getUserById" resultType="com.example.entity.User">


SELECT FROM user WHERE id = {id}


</select>


</mapper>


8. 创建JSP页面

在项目中创建一个名为`WEB-INF/jsp`的目录,用于存放JSP页面。例如,创建一个名为`user.jsp`的页面:

jsp

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


<html>


<head>


<title>User Information</title>


</head>


<body>


<%


// 获取用户ID


String userId = request.getParameter("id");


// 获取UserMapper实例


UserMapper userMapper = sqlSession.getMapper(UserMapper.class);


// 获取用户信息


User user = userMapper.getUserById(Integer.parseInt(userId));


if (user != null) {


%>


<h1>User Information</h1>


<p>ID: <%= user.getId() %></p>


<p>Name: <%= user.getName() %></p>


<p>Email: <%= user.getEmail() %></p>


<%


} else {


%>


<h1>User Not Found</h1>


<%


}


%>


</body>


</html>


9. 配置Spring整合MyBatis

为了简化MyBatis的使用,我们可以使用Spring框架来整合MyBatis。在项目中添加Spring依赖:

xml

<dependency>


<groupId>org.springframework</groupId>


<artifactId>spring-context</artifactId>


<version>5.3.10</version>


</dependency>


<dependency>


<groupId>org.springframework</groupId>


<artifactId>spring-jdbc</artifactId>


<version>5.3.10</version>


</dependency>


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

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"


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">

<!-- 配置数据源 -->


<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">


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


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


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


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


</bean>

<!-- 配置SqlSessionFactory -->


<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">


<property name="dataSource" ref="dataSource"/>


<property name="configLocation" value="classpath:mybatis-config.xml"/>


</bean>

<!-- 配置SqlSessionTemplate -->


<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">


<constructor-arg index="0" ref="sqlSessionFactory"/>


</bean>

<!-- 扫描Mapper接口 -->


<context:component-scan base-package="com.example.mapper"/>


</beans>


在JSP页面中,我们可以通过Spring容器获取`SqlSessionTemplate`实例:

jsp

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


<%@ page import="org.mybatis.spring.SqlSessionTemplate" %>


<html>


<head>


<title>User Information</title>


</head>


<body>


<%


// 获取用户ID


String userId = request.getParameter("id");


// 获取SqlSessionTemplate实例


SqlSessionTemplate sqlSessionTemplate = (SqlSessionTemplate) application.getAttribute("sqlSessionTemplate");


// 获取UserMapper实例


UserMapper userMapper = sqlSessionTemplate.getMapper(UserMapper.class);


// 获取用户信息


User user = userMapper.getUserById(Integer.parseInt(userId));


if (user != null) {


%>


<h1>User Information</h1>


<p>ID: <%= user.getId() %></p>


<p>Name: <%= user.getName() %></p>


<p>Email: <%= user.getEmail() %></p>


<%


} else {


%>


<h1>User Not Found</h1>


<%


}


%>


</body>


</html>


总结

本文详细介绍了JSP通过MyBatis操作数据库的相关技术。通过以上步骤,我们可以轻松地在JSP页面中实现数据库操作。在实际开发中,我们可以根据需求对MyBatis进行扩展,例如添加分页、缓存等功能,以提高应用性能。希望本文对您有所帮助。