在eclipse下使用mybatis时,编写sql的xml没有智能提示还是一件很麻烦的事情,同时在dao层的方法要去映射到xml中的id名,跳转也是一件操作繁琐的事情,最近在eclipse官网发现了一个比较还用的mybatis插件,可以解决我们在使用mybatis时不方便的问题。
插件地址:http://marketplace.eclipse.org/content/mybatipse
XML Editor Enhancements
Auto-completion
- Mapper namespace : Calculated from the path.
- Java class/Type alias : Propose Java classes and Type Aliases (translucent icons). Camelcase match is supported. [1] [2]
- Java property : Propose properties of the parent java class. Nested properties are supported.
- Statement ID : If corresponding mapper interface exists, propose the method name as a statement ID.
- Reference to resultMap/select/sql : Propose ID of the referenced resultMap/select/sql. External reference is supported (blue icons).
- Parameter properties : #{} and ${} in select/insert/udpate/delte statements. Also works in some attributes.
- javaType, jdbcType, typeHandler in #{}
Result elements in resultMap/collection/association : Generates elements for the parent java class properties.
[1] For better performance, classes in the application libraries (loaded as JARs) are listed only when at least one package segment is specified.
- [2] There is a limitation for the type alias support. Basically, if type aliases are registered using Java API, they are not automatically detected. As a workaround, you can register type aliases in MyBatipse's preference. See the Configuration section.
Hyperlinks
- To referenced resultMap/select/sql element. External reference is supported.
- To mapper interface method.
Validation
- Missing TypeAlias, Java class/property.
- Missing resultMap/select/sql ID.
- etc.
Java Editor Enhancements
Auto-completion
- Parameter properties : #{} and ${} in select/insert/udpate/delte annotations.
- javaType, jdbcType, typeHandler in #{} : See the XML example.
- Reference to resultMap in @ResultMap
Quick Assist
- Add @Param to method parameters : Put the cursor on the method name and press cmd + 1 (or ctrl + 1).
Configuration
MyBatis Nature
- By default, each file is validated when it's saved, but you would want to validate the XML mapper when the related Java classes are updated as well. For that purpose, MyBatipse provides a custom nature MyBatis Nature.
To add the nature, right click the project in the package explorer and choose Configure -> Add MyBatis Nature from the menu.
Type Alias
- Type alias are automatically detected if they are registered using XML config file (both mybatis and mybatis-spring config is supported).
If you register type aliases in Java code, MyBatipse cannot detect them. As a workaround, you can register custom type aliases in the project setting (Open Project -> Properties menu and select MyBatipse from the left column).
For example, with the above settings:- The first entry registers all the classes in
com.example.domain
package as type aliases.
- The second entry registers the single class
domain.Person
.
- The third entry registers the single class
domain.SomeLongNamedBean
under the aliasSomeBean
. - Note that, in any case, MyBatipse respects
@Alias
annotation if it exists.
- The first entry registers all the classes in
Tips
- To move MyBatis proposals to the top of the XML proposal list, quit Eclipse and open the following file in the workspace:
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.xml.ui.prefs
Find the line started withxml_content_assist_default_page_sort_order=
and insertnet.harawata.mybatis.proposalCategory.xml\u0000
right after the equal sign.