美文网首页
0319-maven语句映射/mybatis: namespac

0319-maven语句映射/mybatis: namespac

作者: 小咕咕coco | 来源:发表于2020-03-19 13:12 被阅读0次

maven映射语句:参数解析与转换

:传入对象,参数引用对象的属性,名字保持一致

<select id="setWish" resultType="com.pojo.User" parameterType="com.pojo.User">
        update students set Wish=#{Wish} where StuNum=#{StuNum}
</select>

Mybatis: mapper文件开头的namespace属性

<!-- mapper 为根元素节点, 一个namespace对应一个dao -->
<!-- 
Mapper元素只有一个属性namespace,它有两个作用:
一是用于区分不同的mapper(在不同的mapper文件里,子元素的id可以相同,mybatis通过namespace和子元素的id联合区分)
二是与接口关联(应用程序通过接口访问mybatis时,mybatis通过接口的完整名称查找对应的mapper配置,因此namespace的命名务必小心一定要某接口同名)。
-->
<mapper namespace="com.dy.dao.UserDao">    

之前dao层负责数据库交互,dao接口定义方法,dao实现中即成sql语句
现在mybatis中可以只写接口,实现实际上已经在映射文件中了,只需

  1. 在mapper的namespace中指明对应的dao接口类
  2. 保证接口类中方法与mapper中映射语句的id相同
    然后就不用写实现类了,用到的时候直接按id调用方法就好
  3. 在mybatis中这个Dao层接口的作用,

就是作为mapper的接受类

UserDao mapper = session.getMapper(UserDao.class);

(然后最为一个实现类使用):

User user = mapper.findById(20);

更多配置文件相关的信息(参数们:
https://www.jianshu.com/p/d356d0ba6298

bugs:仔细看打印的错误啊

关于:

### Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating interface com.pojo.UserDao with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.pojo.UserDao.<init>()
### The error may exist in mapper/User.xml
### The error may involve com.pojo.UserDao.findById
### The error occurred while handling results
### SQL: select * from students where StuNum=?

因为第一句我就一直在UserDao和映射文件里找,没仔细看下面那几句:
The error occurred while handling results
!!!是结果映射出的问题啊!dao层没问题!
然后发现是<typeAlias type="com.pojo.UserDao" alias="User"/>
……别名设置这里笔误了……(因该是com.pojo.User的

junit单元测试

目前:pojo那几个不用,dao接口也是简单的sql映射,也不用测
真要用单元测试的话,要写一些更复杂的业务逻辑吧(怪不得有人说java干了几年就写了CRUD
但是为了联系测试而写逻辑,emmm,不跟以前看的例子差不多嘛……
算辽

收藏夹junit里有几个找好的网页,啥时候想写了可以参考

相关文章

网友评论

      本文标题:0319-maven语句映射/mybatis: namespac

      本文链接:https://www.haomeiwen.com/subject/snskyhtx.html