用mybatis框架实现数据库的增删改查
1.引入依赖:
在Maven项目的pom.xml文件中添加以下依赖:
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.11</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
2. 添加MyBatis的配置文件(mybatis-config.xml),配置数据库连接等信息:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://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.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSl=true"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 加载sql映射文件 -->
<mappers>
<mapper resource="org/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
3. 创建UserEntity.java,对应数据库中表的结构:
package com.example.entity;
public class UserEntity {
private Integer id;
private String name;
// getters and setters
}
4. 创建Mapper接口(UserMapper.java)
package com.example.mapper;
import com.example.entity.UserEntity;
public interface UserMapper {
UserEntity selectById(Integer id);
void insert(UserEntity entity);
void update(UserEntity entity);
void delete(Integer id);
}
5. 创建UserMapper.xml,实现SQL语句:
<!-- org.example.mapper.UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
<resultMap id="UserEntityMap" type="com.example.entity.UserEntity">
<id property="id" column="id"/>
<result property="name" column="name"/>
</resultMap>
<select id="selectById" resultMap="userEntityMap">
select * from user where id = #{id}
</select>
<insert id="insert">
insert into user (name) values (#{name})
</insert>
<update id="update">
update user set name = #{name} where id = #{id}
</update>
<delete id="delete">
delete from user where id = #{id}
</delete>
</mapper>
6. 创建数据库表user,并插入数据:
CREATE TABLE user (
id int primary key auto_increment,
name varchar(50)
);
insert into user (name) values ('Tienyooo');
insert into user (name) values ('Lucy');
7. 编写代码,使用MyBatis实现增删改查(UserMapperTest.java):
package com.example.test;
import com.example.entity.UserEntity;
import com.example.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class UserMapperTest {
public static void main(String[] args) throws IOException {
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//查询 输出:UserEntity{id=1, name='Tienyooo'}
UserEntity entity = mapper.selectById(1);
System.out.println(entity);
// 插入
UserEntity newEntity = new UserEntity();
newEntity.setName("Whh");
mapper.insert(newEntity);
sqlSession.commit();
// 更新
UserEntity updateEntity = new UserEntity();
updateEntity.setId(1);
updateEntity.setName("Tienyooo Updated");
mapper.update(updateEntity);
sqlSession.commit();
// 删除
mapper.delete(2);
sqlSession.commit();
sqlSession.close(); // 关闭
}
}