目录
前言
本篇博文介绍如何在IDEA中使用Mybatis实现单表的增删改查操作,不涉及原理讲解,只说明操作步骤。
1、创建表
在Mysql中创建User表
2、创建Maven工程
3、导入相关依赖
<!-- mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!-- 日志组件 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
4、编写Mybatis-config.xml文件
<?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>
<properties resource="JDBC.properties"></properties>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/articleMapper.xml"/>
</mappers>
</configuration>
5、bean层
public class User {
private int id;
private String name;
private String account;
private String password;
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", account='" + account + '\'' +
", password='" + password + '\'' +
'}';
}
}
6、dao层
public interface UserDao {
//增加
void add(User user);
//通过id删除
void delete(int id);
//更新
void update(Map map);
//查询所有
List<User> query();
}
7、配置userMapper.xml
<mapper namespace="com.ff.dao.UserDao">
<!--增加-->
<insert id="add" parameterType="com.ff.bean.User">
insert into user(name,account,password) values(#{name},#{account},#{password})
</insert>
<!--查询所有-->
<select id="query" resultType="com.ff.bean.User">
select * from user
</select>
<!--更新-->
<update id="update" parameterType="com.ff.bean.User">
update user set name = #{name} where id = #{id}
</update>
<!--删除-->
<delete id="delete">
delete from user where id = #{id}
</delete>
</mapper>
9、在总配置文件中注册映射文件
10、测试
@Test
public void add() {
//获取sqlsession对象
SqlSession sqlSession = MyBatisUtil.getSqlSession();
//动态代理获取userdao对象
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = new User();
user.setName("王五");
user.setAccount("123456");
user.setPassword("123456");
//调用方法进行数据库操作
userDao.add(user);
//提交事务
sqlSession.commit();
//关闭sqlsession
sqlSession.close();
}
==> Preparing: insert into user(name,account,password) values(?,?,?)
==> Parameters: 王五(String), 123456(String), 123456(String)
<== Updates: 1
@Test
public void query() {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
List<User> userList = userDao.query();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
==> Preparing: select * from user
==> Parameters:
<== Total: 1
User{id=14, name='王五', account='123456', password='123456'}
@Test
public void update() {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = new User();
user.setName("测试");
user.setId(14);
userDao.update(user);
sqlSession.commit();
sqlSession.close();
}
==> Preparing: update user set name = ? where id = ?
==> Parameters: 测试(String), 14(Integer)
<== Updates: 1
@Test
public void delete() {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
userDao.delete(11);
sqlSession.commit();
sqlSession.close();
}
==> Preparing: delete from user where id = ?
==> Parameters: 14(Integer)
<== Updates: 1
o = sqlSession.getMapper(UserDao.class);
userDao.delete(11);
sqlSession.commit();
sqlSession.close();
}
==> Preparing: delete from user where id = ?
==> Parameters: 14(Integer)
<== Updates: 1