实验内容(附源代码和运行结果的截图) 自行设计一个数据库项目,分别采用Druid、Mybaties、JDBCTemplate的整合技术,通过定义xml依赖文件和properties属性配置文件,定义实体类,编写持久层、Service层、controller层,完成系统的CRUD功能。
时间: 2024-01-21 11:17:31 浏览: 72
Web开发技术实验1(应用JDBC进行数据库开发)
抱歉,作为一个 AI 并没有运行环境和权限进行实验操作,但我可以给您提供一个大致的实验思路和步骤:
1. 设计数据库结构,创建数据库和表。
2. 在 pom.xml 中添加相关依赖,如 druid、mybatis、spring-jdbc 等。
3. 在 resources 目录下创建数据库配置文件和 mybatis 配置文件,并在其中配置数据库连接信息、数据源等。
4. 编写实体类,根据数据库表结构创建对应的 JavaBean 类,并添加相关注解,如 @Table、@Column、@Id 等。
5. 编写 DAO 层,使用 Mybatis 或 JDBCTemplate 进行数据库操作,包括增删改查等。
6. 编写 Service 层,调用 DAO 层提供的方法,进行业务逻辑处理。
7. 编写 Controller 层,接收用户请求,调用 Service 层提供的方法,返回结果给用户。
8. 在 web.xml 中配置 DispatcherServlet,将请求分发给对应的 Controller。
9. 运行项目,测试 CRUD 功能是否正常实现。
以下是代码示例:
1. 数据库配置文件 db.properties:
```
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=root
```
2. Mybatis 配置文件 mybatis-config.xml:
```
<configuration>
<typeAliases>
<package name="com.example.entity"/>
</typeAliases>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
```
3. User 实体类:
```
package com.example.entity;
@Table(name = "user")
public class User {
@Id
@Column(name = "id")
private Long id;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
// getter and setter
}
```
4. UserMapper.xml:
```
<mapper namespace="com.example.dao.UserMapper">
<select id="findById" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="insert" parameterType="com.example.entity.User">
INSERT INTO user (id, username, password) VALUES (#{id}, #{username}, #{password})
</insert>
<update id="update" parameterType="com.example.entity.User">
UPDATE user SET username = #{username}, password = #{password} WHERE id = #{id}
</update>
<delete id="deleteById" parameterType="Long">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
```
5. UserDao 接口:
```
package com.example.dao;
import com.example.entity.User;
public interface UserDao {
User findById(Long id);
void insert(User user);
void update(User user);
void deleteById(Long id);
}
```
6. UserDaoImpl 使用 Mybatis 实现:
```
package com.example.dao.impl;
import com.example.dao.UserDao;
import com.example.entity.User;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
@Override
public User findById(Long id) {
return sqlSessionTemplate.selectOne("findById", id);
}
@Override
public void insert(User user) {
sqlSessionTemplate.insert("insert", user);
}
@Override
public void update(User user) {
sqlSessionTemplate.update("update", user);
}
@Override
public void deleteById(Long id) {
sqlSessionTemplate.delete("deleteById", id);
}
}
```
7. UserServiceImpl:
```
package com.example.service.impl;
import com.example.dao.UserDao;
import com.example.entity.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User findById(Long id) {
return userDao.findById(id);
}
@Override
public void insert(User user) {
userDao.insert(user);
}
@Override
public void update(User user) {
userDao.update(user);
}
@Override
public void deleteById(Long id) {
userDao.deleteById(id);
}
}
```
8. UserController:
```
package com.example.controller;
import com.example.entity.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User findById(@PathVariable Long id) {
return userService.findById(id);
}
@PostMapping("/")
public void insert(@RequestBody User user) {
userService.insert(user);
}
@PutMapping("/")
public void update(@RequestBody User user) {
userService.update(user);
}
@DeleteMapping("/{id}")
public void deleteById(@PathVariable Long id) {
userService.deleteById(id);
}
}
```
阅读全文