mybatis的namespace可以绑定接口,如果不写接口,直接用session进行操作的话,这
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis的namespace可以绑定接口,如果不写接口,直接用session进行操作的话,这相关的知识,希望对你有一定的参考价值。
mybatis的namespace可以绑定接口,如果不写接口,直接用session进行操作的话,这个还是要写的,此时又是什么作用,该怎么写?
首先,要明确namespace的作用,是mapper.xml中配置的作为唯一标识的名称,并没有什么特别的要求,只需要保证所有的mapper中名称空间唯一即可。注意必须有~再其次明确你所说的绑定接口,也就是使用动态代理Mapper,不需要再书写接口的实现类。这时对namesapce就有要求了,要书写对应mapper接口的全路径,也就是包名.类名这种格式。无需多言,这个也必须有~
忘采纳~追问
等我回去思考一下你的回答,这会饥饿状态没精力思考。
参考技术A 你面向接口编程的时候namespace必须要和接口完全限定名(绝对路径)一致,面向接口编程用的就是session.getMapper()这种方式,实际上调用的还是什么session.selectOne()、selectList()等方法,使用session.selectList()等方法的时候就不是绑定接口的方式进行操作,这个时候namespace就可以胡乱写,只要和你session.selectList()等方法中提供的字符串一致即可MyBatis之sql映射文件
MyBatis的强大之处就在于它的sql映射文件,下面介绍sql映射文件的几个顶级元素配置
1)mapper:映射文件的根元素节点,只有一个namespace(命名空间)
* 用于区分不同的mapper,全局唯一
* 绑定dao接口,即面向接口编程, 当,namespace绑定某一接口之后,可以不用写该接口的实现类,MyBatis会通过接口的完整的限定名查找到对应的mapper配置来执行sql语句,应此namespace的命名必须要跟接口同名。
2)cache:配置给定的命名空间的缓存
3)cache——ref:从其他冥冥空间的引用缓存配置
4)resultMap:用来描述数据库结果集和对象的对应关系
5) sql : 可以重用的sql块,也可以被其他语句引用
6) insert:映射插入语句
7) update :映射更新语句
1.使用select完成单条件查询
1〉dao曾方法
public List<User> findAll();
2〉xml文件
<select id="findAll" resultType="User"> SELECT * FROM user </select>
3〉测试方法
public void findAll(){ Logger logger = Logger.getLogger(UserTest.class); SqlSession sqlSession = null; try { //3.创建sqlSession sqlSession = MyBatisUtil.createSqlSession(); List<User> list = sqlSession.getMapper(IUserDao.class).findAll(); for (User user : list){ logger.debug("list---------->"+user.getUserName()+"\t"+user.getUserCode()); } } catch (Exception e) { e.printStackTrace(); }finally { MyBatisUtil.closeSqlSession(sqlSession); } }
以上是关于mybatis的namespace可以绑定接口,如果不写接口,直接用session进行操作的话,这的主要内容,如果未能解决你的问题,请参考以下文章