idea中的Javaweb项目实现Mybatis和ajax调用数据库并显示在页面中
时间: 2024-05-11 20:13:41 浏览: 127
以下是一个基于Mybatis和Ajax的JavaWeb项目实现,可以从数据库中获取数据并将其显示在页面中。
1. 首先,需要创建一个数据库表,例如“user”,包含id、name和age字段。
2. 接下来,需要创建一个JavaBean类User,用于将数据库表中的数据映射到Java对象中。
```java
public class User {
private int id;
private String name;
private int age;
// getter and setter
}
```
3. 然后,需要创建一个Mybatis的映射文件UserMapper.xml,用于定义SQL语句以及与JavaBean类的映射关系。
```xml
<mapper namespace="com.example.mapper.UserMapper">
<select id="getAllUsers" resultType="com.example.model.User">
SELECT id, name, age FROM user
</select>
</mapper>
```
4. 接下来,需要创建一个UserDao接口,用于定义数据访问操作。
```java
public interface UserDao {
List<User> getAllUsers();
}
```
5. 然后,需要创建一个UserDaoImpl类,实现UserDao接口,并注入Mybatis的SqlSessionFactory对象。
```java
public class UserDaoImpl implements UserDao {
private SqlSessionFactory sessionFactory;
public void setSessionFactory(SqlSessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Override
public List<User> getAllUsers() {
SqlSession session = sessionFactory.openSession();
try {
UserMapper mapper = session.getMapper(UserMapper.class);
return mapper.getAllUsers();
} finally {
session.close();
}
}
}
```
6. 接下来,需要创建一个Servlet类UserServlet,用于处理Ajax请求并调用UserDao获取数据。
```java
public class UserServlet extends HttpServlet {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<User> userList = userDao.getAllUsers();
Gson gson = new Gson();
String json = gson.toJson(userList);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}
}
```
7. 最后,需要在页面中使用Ajax调用Servlet并将获取到的数据显示在页面中。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Mybatis and Ajax Example</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$.ajax({
url : "user",
type : "GET",
dataType : "json",
success : function(data) {
var table = $("<table></table>").addClass("table");
var header = $("<tr></tr>").append(
$("<th></th>").text("ID"),
$("<th></th>").text("Name"),
$("<th></th>").text("Age")
).appendTo(table);
$.each(data, function(index, user) {
$("<tr></tr>").append(
$("<td></td>").text(user.id),
$("<td></td>").text(user.name),
$("<td></td>").text(user.age)
).appendTo(table);
});
$("#userList").append(table);
}
});
});
</script>
</head>
<body>
<h1>Mybatis and Ajax Example</h1>
<div id="userList"></div>
</body>
</html>
```
以上就是一个基于Mybatis和Ajax的JavaWeb项目实现,可以从数据库中获取数据并将其显示在页面中。
阅读全文