mybatis框架实现增删改查系统
时间: 2023-12-26 19:03:41 浏览: 28
MyBatis 是一个开源的持久化框架,可以帮助我们简化数据库操作的编写。下面是一个使用 MyBatis 实现增删改查系统的示例:
1. 配置 MyBatis
首先需要在项目中引入 MyBatis 的依赖,然后在项目中配置 MyBatis 的配置文件,例如:
```
<?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/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
```
其中,配置文件中需要配置数据库的连接信息和映射文件的位置。
2. 创建数据表
在数据库中创建一个用户表,例如:
```
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
3. 创建实体类
创建一个 User 实体类,例如:
```
public class User {
private Integer id;
private String name;
private Integer age;
// getter and setter
}
```
4. 创建映射文件
在项目中创建一个 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="findAll" resultType="User">
SELECT * FROM user
</select>
<!-- 根据 id 查询用户 -->
<select id="findById" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 新增用户 -->
<insert id="insert" parameterType="User">
INSERT INTO user (name, age) VALUES (#{name}, #{age})
</insert>
<!-- 修改用户 -->
<update id="update" parameterType="User">
UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
<!-- 删除用户 -->
<delete id="delete" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
```
其中,映射文件中定义了对应的 SQL 语句和参数类型。
5. 创建 DAO 层
创建一个 UserDAO 接口和实现类,例如:
```
public interface UserDAO {
List<User> findAll();
User findById(Integer id);
void insert(User user);
void update(User user);
void delete(Integer id);
}
public class UserDAOImpl implements UserDAO {
private SqlSessionFactory sessionFactory;
public UserDAOImpl(SqlSessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public List<User> findAll() {
try (SqlSession session = sessionFactory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
return mapper.findAll();
}
}
public User findById(Integer id) {
try (SqlSession session = sessionFactory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
return mapper.findById(id);
}
}
public void insert(User user) {
try (SqlSession session = sessionFactory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
mapper.insert(user);
session.commit();
}
}
public void update(User user) {
try (SqlSession session = sessionFactory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
mapper.update(user);
session.commit();
}
}
public void delete(Integer id) {
try (SqlSession session = sessionFactory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
mapper.delete(id);
session.commit();
}
}
}
```
其中,UserDAO 接口中定义了增删改查的方法,UserDAOImpl 实现了 UserDAO 接口,并且调用了对应的映射文件中的 SQL 语句。
6. 使用 DAO 层
在项目中使用 UserDAO 接口和实现类来进行数据库的操作,例如:
```
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
UserDAO userDAO = new UserDAOImpl(sessionFactory);
// 查询全部用户
List<User> userList = userDAO.findAll();
// 根据 id 查询用户
User user = userDAO.findById(1);
// 新增用户
User newUser = new User();
newUser.setName("Tom");
newUser.setAge(20);
userDAO.insert(newUser);
// 修改用户
user.setName("Jerry");
user.setAge(30);
userDAO.update(user);
// 删除用户
userDAO.delete(1);
```
这样就可以使用 MyBatis 框架来实现增删改查系统了。