以下给大家介绍几个比较有用的mybatis的使用小技巧
使用map来进行参数的传递。
-
为什么需要使用map来进行参数的传递呢?
-
前提:再传参的时候,原本的参数列表较多,而且很多的属性都是用不上的。
-
虽然说可以创建一个无构造参数的实体类(例如new User()),然后再使用每个属性的set方法,来进行每个值的set。但是因为重新再new一个实体类。这样子是比较消耗内存空间的。所以说可以使用map集合来自定义需要传递属性。然后再到sql语句中去一一对应即可。
-
具体的配置文件解析(mybatis-config.xml)
-
事务管理器(transactionManager)
-
在mybatis中有两种类型的事务管理器(也就是type="[JDBC|MAAGED]")
-
-
数据源(dataSource)
-
在mybatis中有三种类型的数据源类型(也就是type=[UNPOOLED|POOLED|JNDI])
-
unpooled:就是没有连接池的概念。
-
pooled:有池的连接,一般来讲默认用的就是pooled。
-
jndi:只在之前EJB的时代里使用较多。(目前很少用的)
-
-
-
configuration中的一些配置替换
//引入外部配置文件
<properties resource="jdbc.properties">
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
-
其中的<property name="username" value="${user}"/>这句话中的name="username"是不能变的,并且例如${user}这个名字要和jdbc.properties文件中的key值是一样的,即user->username是可以的。
-
类型别名(typeAliases)
-
这个东西有神马作用呢?
-
类型别名视为Java类型设置一个短的名字。它只和xml配置有关,存在的意义完全用来减少类的全限定名的过度冗余。
-
-
举例代码块
-
<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>
-
-
给全限定类型取别名,但是注解的过度使用会导致后期维护困难,所以在类较少的时候,最好还是使用全限定名。
-
-
数据库中的字段命名,例如用户名称,数据库中会是user_name,而java的驼峰式命名法,会将其称为userName。
-
为什么呢?
-
因为在之前的Oracle数据中,例如userName会自动的全部大写为USERNAME,这样子就导致了属性名的可读性极差。所以后面惯用了user_name的属性名写法。
-
-
-
映射器(mappers)
<mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="org/mybatis/builder/BlogMapper.xml"/> <mapper resource="org/mybatis/builder/PostMapper.xml"/> <mapper resource="com/huazai/dao/UserMapper.xml"/> </mappers>
-
一般来讲建议以这种方式来写,上述四种是把.xml文件都放在了java的目录下。如果说想要在resources目录下进行分层的话,则需要这样写。
-
<mapper resource="com/huazai/dao/UserMapper.xml"/>
-
这次就先分享到这里吧。先告一段落啦。。。