jsp利用mybatis读取数据库
时间: 2023-09-14 11:10:15 浏览: 137
要在 JSP 中使用 MyBatis 读取数据库,需要遵循以下步骤:
1. 配置 MyBatis
在 MyBatis 的配置文件中配置数据源和 SQL 映射文件的路径。
2. 创建 SQL 映射文件
在 SQL 映射文件中编写 SQL 语句,并使用 MyBatis 提供的标签进行 SQL 语句的拼接和参数的设置。
3. 在 JSP 中调用 MyBatis
在 JSP 中使用 JSTL 或 EL 表达式调用 MyBatis 读取数据库,可以使用 JSTL 的 `<sql:setDataSource>` 标签设置数据源,然后使用 `<sql:query>` 标签执行 SQL 语句,也可以使用 EL 表达式调用 MyBatis 的 Mapper 接口执行 SQL 语句。
以下是一个简单的示例:
1. MyBatis 配置文件 mybatis-config.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="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
```
2. SQL 映射文件 UserMapper.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.model.User">
select * from user where id=#{id}
</select>
</mapper>
```
3. JSP 页面:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MyBatis JSP Demo</title>
</head>
<body>
<sql:setDataSource
var="dataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
user="root"
password="123456"/>
<sql:query var="user" dataSource="${dataSource}">
SELECT * FROM user WHERE id = ${param.id}
</sql:query>
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
<c:forEach var="row" items="${user.rows}">
<tr>
<td>${row.id}</td>
<td>${row.name}</td>
<td>${row.age}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
```
这个示例展示了如何使用 JSTL 和 MyBatis 读取数据库,其中 `<sql:setDataSource>` 标签设置了数据源,`<sql:query>` 标签执行了 SQL 语句,EL 表达式 `${param.id}` 传递了参数。
阅读全文