1.使用Mapper代理方式
- 定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
- 设置SQL映射文件的namespace属性为Mapper接口全限定名
- 在 Mapper 接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
- 编码 通过 SqlSession 的 getMapper方法获取 Mapper接口的代理对象 调用对应方法完成sql的执行
1.1定义与SQL映射文件同名的Mapper接口
1.用maven编译,寻找路径文件
1.2将Mapper接口和SQL映射文件放置在同一目录下
1.不太好的方式,不利于管理
1.1.可以这样
2.1注意resources创建文件时分隔符是/ 不是.
正确
效果图
2.设置SQL映射文件的namespace属性为Mapper接口全限定名
namespace="com.itheima.mapper.UserMapper"就是Mapper接口全限定名
3.在 Mapper 接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
3.1UserMapper接口 ——> 在UserMapper.xml调用同名的方法 mapper namespace="com.itheima.mapper.UserMapper"> <!--Mapper接口全限定名-->
3.2
selectAll() 对应: sql语句的id
User 对应:参数类型和返回值类型一致
List<> 表示集合 select * from tb_user;
3.3 修改sql映射文件
4.编码 通过 SqlSession 的 getMapper方法获取 Mapper接口的代理对象 调用对应方法完成sql的执行
4.1入门代码
//3.执行sql
List<User> users = sqlSession.selectList("test.selectAll"); //一句就搞定所有
4.2Mybatis 代理开发
//3.1 获取UserMapper接口的代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> users = userMapper.selectAll();
-
userMapper.selectAll() 调用UserMapper接口中的 List<User> selectAll(); UserMapper接口中selectAll() 对应着UserMapper.xml中 select id="selectAll" 的id
- 通过id在
select * from tb_user;中查询,外加上UserMapper接口中的 List<User> 就相当于是
//3.执行sql List<User> users = sqlSession.selectList("test.selectAll"); //一句就搞定所有
5.执行结果