1.Mybatis基本操作
1.1 查询
1.1.1查询demo_user表中ID=1的数据
//根据ID查询数据
public User findUserById(Integer id);
select * from demo_user where id=#{id};
@Test
public void testUser() {
int id=1;
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.findUserById(id);
System.out.println(user);
sqlSession.close();
1.2 新增
1.2.1 查询demo_user表中ID=1的数据
//根据user对象实现新增操作
public Integer saveUser(User user);
insert into demo_user(id,name,age,sex)
VALUES (null,#{name },#{age},#{sex});
@Test
public void testUserinsert() {
User user=new User(null, "西王母", 30000, "女");
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Integer rows=userMapper.saveUser(user);
System.out.println(rows);
sqlSession.commit();//提交事务
sqlSession.close();
}
1.3 修改
1.3.1 将demo_user表中的嫦娥修改为嫦娥姐姐,年龄改为99
//根据user对象实现修改操作
Integer updateUser(User user);
update demo_user set name=#{name},age=#{age}
where id=#{id};
@Test
public void testUserupdate() {
User user=new User(232, "嫦娥姐姐", 99, "女");
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Integer rows=userMapper.updateUser(user);
if(rows>0){
sqlSession.commit();//提交事务
}
System.out.println("影响的行数为:"+rows);
sqlSession.close();
}
1.4 删除
1.4.1 将demo_user表中的嫦娥姐姐删除
Integer deleteUser(String user);
delete from demo_user where name=#{name};
@Test
public void testUserdelete() {
String name="嫦娥姐姐";
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Integer rows=userMapper.deleteUser(name);
if(rows>0){
sqlSession.commit();//提交事务
}
System.out.println("影响的行数为:"+rows);
sqlSession.close();
}
1.5 利用Map集合封装数据
1.5.1 查询demo_user表中age>100和age<1000的数据
List UserSelectAge(Map map);
@Test
public void testUserSelect1() {
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Map map=new HashMap();
map.put("minage", 100);
map.put("maxage",1000);
List user=userMapper.UserSelectAge(map);
System.out.println(user);
sqlSession.close();
}
1.6 利用Param集合封装数据
- 1.规则Mapper中的方法,不能重名
- 2.关于mybatis参数封装的说明
- 只支持单值传参
- 单值可以使具体的数字,字符串,对象
- 多值转化为单值
a.首选Map集合
b.@Param(“min”) int min 将参数封装为map
解析:Map={minAge=100,maxAge=1000}
1.6.1 查询demo_user表中age>100和age<1000的数据
List UserParamAge(@Param("min") int min,@Param("max") int max);
@Test
public void testParam() {
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int min=100;
int max=1000;
List userList=userMapper.UserParamAge(min,max);
System.out.println(userList);
sqlSession.close();
}
1.7 模糊查询
1.7.1 查询name中包含"乔"的用户
List userSelectMohu(String name);
@Test
public void testLike() {
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
String name="乔";
List userList=userMapper.userSelectMohu(name);
System.out.println(userList);
sqlSession.close();
}
2.简化mybatis配置
2.1 简化mapper中的resultType
- 在mybatis-config.xml文件中进行配置(方法1:typeAlias)
- mybatis-config.xml文件中有顺序
typeAliases应该写在最前面
- 在mybatis-config.xml文件中进行配置(方法2:package)
2.1 简化mapper中的sql