CRUD
namespace
namespace的包名要和Dao/Mapper名字一致
select
- id:就是和namespce中的方法对应的
- resultType:Sql语句执行的返回值
- parameterType 参数的类型
使用mybatis的流程
-
通过MybatisUtils来获得一个sqlSession
-
sqlSession通过getMapper这个方法来获得userMapper这个接口的class对象,由此可以操作这个接口
-
在UserMapper.xml中配置select语句,写好相应的参数,需要注意的是where中所需要的#{id}是UserMapper这个接口中设置的函数的参数
-
获得class对象之后,通过调用UserMapper中设置的函数进行查询
增删改和查的区别
增删改还需要提交事务
万能的Map
假如我们的实体类,或者数据库的表的参数或者字段过多,我们应该考虑使用Map
假如字段过多的话,因为在使用的时候,需要声明一个对象,那么就需要将所有的字段全部写进去,如果使用map,则只需要写入特定的字段
类型别名
用于减少类完全限定名的冗余
这里有两种方法
一种是使用
<typeAliases>
<package name="domain.blog"/>
</typeAliases>
这样会把包目录下的所有东西都概括进去
另外一种是使用直接指定
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
<typeAlias alias="Comment" type="domain.blog.Comment"/>
<typeAlias alias="Post" type="domain.blog.Post"/>
<typeAlias alias="Section" type="domain.blog.Section"/>
<typeAlias alias="Tag" type="domain.blog.Tag"/>
</typeAliases>
第一种适合包中有很多东西的,第二种适合少一点的,可以自定义名字