2024/05/25
简单的增删改查
查询:
1、查询的标签select必须设置属性resultType
或resultMap
,用于设置实体类和数据库表的映射
关系
resultType
:自动映射,用于属性名和表中字段名一致的情况
resultMap
:自定义映射,用于一对多或多对一或字段名和属性名不一致的情况
- UserMapper
public interface UserMapper {
/**
* 添加用户信息
*/
int insertUser();
/**
* 删除用户信息
*/
void deleteUser();
/**
* 更新用户信息
*/
int updateUserById();
/**
* 根据id查询用户
*/
User findUserById();
/**
* 查询所有用户
*/
List<User> findUserAll();
}
- 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.qcby.mapper.UserMapper">
<!--书写sql语句-->
<!--insertUser()-->
<!--
mapper接口和映射文件要保证两个一致:
1. mapper接口的全类名和映射文件的命名空间(namespace)保持一致
2. mapper接口中的方法名和映射文件中编写SQL的标签的id属性保持一致
-->
<insert id="insertUser">
/*写sql语句*/
insert into user values(null,'kkk','12367',23,'男','12377@qq.com')
</insert>
<!--void deleteUser();-->
<delete id="deleteUser">
delete from user where id = 3;
</delete>
<!--int updateUser();-->
<update id="updateUserById">
update user set username = 'ttt',password = '456' where id=5;
</update>
<!--User findUserById();-->
<select id="findUserById" resultType="com.qcby.pojo.User">
select * from user where id = 5;
</select>
<!--List<User> findUserAll();-->
<select id="findUserAll" resultType="com.qcby.pojo.User">
select * from user;
</select>
</mapper>
- 测试类
/**
* 测试类
*/
public class MyBatisTest {
private SqlSession sqlSession = null;
private UserMapper mapper = null;
@Before
public void init() {
// 1.获取sqlsession对象
sqlSession = SqlSessionUtil.getSqlSession();
// 2.获取usermapper的代理实现类对象(因为接口是不能创建实例对象的,所以此处用的是代理实现类对象)
mapper = sqlSession.getMapper(UserMapper.class);
}
@After
public void destory() {
// 5.关闭资源
sqlSession.close();
SqlSessionUtil.closeInputStream();
}
@Test
public void testInsert() throws IOException {
// 3.调用mapper接口中的方法,实现添加用户信息的功能
int res = mapper.insertUser();
// 4.输出
System.out.println(res);
}
@Test
public void testDelete() {
mapper.deleteUser();
}
@Test
public void testupdateById() {
int res = mapper.updateUserById();
System.out.println(res);
}
@Test
public void testfindById() {
User user = mapper.findUserById();
System.out.println(user);
}
@Test
public void testfindAll() {
List<User> users = mapper.findUserAll();
//利用lambda表达式(适合复杂的遍历)
users.forEach(user -> System.out.println(user));
}
}
补充:遍历输出集合
1.增强for循环
List<User> users = mapper.findUserAll();
//1.增强for循环
for (User user : users) {
System.out.println(user);
}
2.使用集合的forEach方法
//2.使用集合的forEach方法
users.forEach(System.out::println);
3.利用lambda表达式(适合复杂的遍历)
//3.利用lambda表达式(适合复杂的遍历)
users.forEach(user -> System.out.println(user));