1:namespace 命名空间
Namespace 中的包名要和Dao/Mapper接口的包名一致
2:Select
选择查询语句:
1: id: 就是对应的namespace中的方法名
2: resultType: Sql语句的返回值
3: paramentType: 参数的类型!
编写接口
// 查询全部用户;
List getUserList();
编写对应的Mapper语句
测试:
@Test
// 查询全部用户;
public void test(){
//获得sqlSession 对象
SqlSession sqlSession = MyBatisUtils.getSqlSession();
//方式一 执行sql
UserMapper userDao = sqlSession.getMapper(UserMapper.class);
List userList = userDao.getUserList();
//方法二;
//List objects = sqlSession.selectList("com.kuang.dao.UserDao.getUserList");
for (User user : userList) {
System.out.println(user);
}
//关闭sqlSession
sqlSession.close();
}
1:分别编写一个插入,修改,删除的接口;
// insert into插入一个用户
int addUser(User user);
//修改用户;
int upDateUser(User user);
//删除用户;
int deleteUser(int id);
分别对应的插入,修改,删除的Mapper.xml配置文件;
测试结果:insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd}); update mybatis.user set name= #{name},pwd = #{pwd} where id = #{id}; delete from mybatis.user where id = #{id};
@Test
// insert into插入一个用户
public void addUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int result = userMapper.addUser(new User(4, "狗蛋", "123456"));
if (result > 0){
System.out.println("插入成功!");
}
//提交事务;
sqlSession.commit();
sqlSession.close();
}
//修改用户
@Test
public void upDateUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int result = mapper.upDateUser(new User(4, "狗娃", "654321"));
if(result > 0){
System.out.println("数据修改成功!");
}
//提交事务;
sqlSession.commit();
System.out.println("数据修改成功");
sqlSession.close();
}
//删除用户
@Test
public void deleteUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUser(4);
//提交事务;
sqlSession.commit();
System.out.println("删除成功!");
sqlSession.close();
}
注意: 增删改都需要提交事务的操作。
2:万能Mapper
创建一个接口:
//万能的Map; int addUser02(Mapmap);
编写一个实现接口的Mapper.xml文件
-- map的属性可以和数据库 的属性不是一一对应的 insert into mybatis.user (id, name, pwd) values (#{userId},#{userName},#{password});
测试:
// Map插入用户
@Test
public void addUser02(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map map = new HashMap();
map.put("userId",4);
map.put("userName","狗蛋");
map.put("password","124231");
mapper.addUser02(map);
//提交事务;
sqlSession.commit();
System.out.println("添加成功!");
sqlSession.close();
}
Map传递参数,直接在SQL中取出Key即可;【paramentType=”map”】
对象传递参数,直接在SQL中取对象的属性即可【paramenType=”Object”】
只有一个基本类型参数的类型下,可以直接在SQL中取到;
多个参数用Map,或者注解
3:模糊查询
接口
//模糊查询
List getUserlike(String value);
mapper.xml
select * from mybatis.user where name like #{value};
测试:
@Test
public void getUserlike(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List userList = mapper.getUserlike("%李%");
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}



