写一个mybaits 增删改查
时间: 2024-05-12 16:20:23 浏览: 96
MyBatis 是一款开源的持久化框架,它支持自定义 SQL、存储过程以及高级映射。下面以一个简单的用户表格为例,介绍 MyBatis 的增删改查操作。
首先,需要创建一个 User 实体类,属性包括 id、name 和 age。
```java
public class User {
private int id;
private String name;
private int age;
// getter 和 setter 方法省略
}
```
然后,在 MyBatis 的配置文件中配置数据源和 SQL 映射文件的位置。
```xml
<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>
```
接下来,创建一个 UserMapper 接口,定义增删改查的方法。
```java
public interface UserMapper {
// 插入用户数据
void insertUser(User user);
// 根据 id 删除用户数据
void deleteUserById(int id);
// 更新用户数据
void updateUser(User user);
// 根据 id 查询用户数据
User getUserById(int id);
}
```
最后,编写 UserMapper.xml 文件,实现以上方法的 SQL 语句。
```xml
<mapper namespace="com.example.mapper.UserMapper">
<insert id="insertUser" parameterType="com.example.entity.User">
INSERT INTO user(name, age) VALUES (#{name}, #{age})
</insert>
<delete id="deleteUserById" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
<update id="updateUser" parameterType="com.example.entity.User">
UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
<select id="getUserById" parameterType="int" resultType="com.example.entity.User">
SELECT id, name, age FROM user WHERE id = #{id}
</select>
</mapper>
```
接下来就可以使用 MyBatis 的 SqlSession 对象调用以上方法进行增删改查操作了。
```java
// 初始化 SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 获取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 获取 UserMapper 接口实例
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 插入用户数据
User user = new User();
user.setName("张三");
user.setAge(20);
userMapper.insertUser(user);
// 根据 id 查询用户数据
User user = userMapper.getUserById(1);
System.out.println(user.getName() + "," + user.getAge());
// 更新用户数据
user.setAge(22);
userMapper.updateUser(user);
// 根据 id 删除用户数据
userMapper.deleteUserById(1);
// 提交事务
sqlSession.commit();
// 关闭 SqlSession
sqlSession.close();
```
阅读全文