MyBatis is a popular SQL Mapper framework.
And MyBatipse is an Eclipse plug-in which provids content assists and validations when editing MyBatis related files.
-
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.
-
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.
- To referenced resultMap/select/sql element. External reference is supported.
- From Java mapper interface to XML mapper element.
- From Java mapper method to XML mapper element.
- From XML statement id to Java mapper method.
- Result map id or select statement id specified in Java annotation.
- This feature is ported from MyBatis Editor plugin by @peterhendriks .
- Parameter properties : #{} and ${} in select/insert/udpate/delte annotations.
- Return type properties in
@Result
- keyProperty in
@Options
and@SelectKey
- javaType, jdbcType, typeHandler in #{} : See the XML example.
- Reference to resultMap in
@ResultMap
and resultMap attribute of@Arg
- select attribute of
@Arg
,@Many
and@One
Put the cursor on the statement method name and press cmd + 1 (or ctrl + 1) to trigger Quick Assist.
- You can add
@Param
to method parameters.
- You can copy annotation statement into the clipboard.
- You can move annotation statement to XML mapper.
- You can move
@Results
annotation to<resultMap />
in XML mapper.
@ResultMap
: invalid resultMap ID.select
attribute of@One
or@Many
: invalid statement ID.
- Renaming resultMap/statement/sql ID updates its references in Java and XML mappers.
- In XML mapper, right click -> Refactor -> Rename MyBatis element.
- In Java mapper, right click -> MyBatis Refactor -> Rename MyBatis element.
- Renaming a Java mapper method also updates its references.
-
Smart-copy menu in Console View to copy SQL statement in an executable form. For example, if you select and copy the following debug output ...
... and the following statement is copied to the clipboard (be sure to include the first==>
and<==
in the selection as the image above).insert into users values(2, 'User2')
- MyBatipse searches XML mapper files under your project's Source Folder. To make a directory Source Folder, right click the directory in the package explorer and choose Build Path -> Use as Source Folder from the menu.
- 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.
- To validate annotation value, you need to enable annotation processing. Open Project -> Properties and select Java Compiler -> Annotation Processing in the left column. Check both Enable annotation processing and Enable processing in editor.
- 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. You can use wildcard to specify multiple packages (e.g.com.example.*.domain
). - 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
- If 'Store information about method parameters' option is enabled in the Java Compiler -> Classfile Generation setting, MyBatipse proposes the declared method parameter names.
- 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.
There are several ways to install MyBatipse.
- Drag this button from browser to your Eclipse workbench (i.e. window).
- Choose Eclipse Marketplace... in Help menu of your Eclipse and search MyBatipse.
- Choose Install New Software... in Help menu and enter the following URL.
https://harawata.github.io/eclipse-site/ - For offline installation, see here.
Please use the issue tracker.
MyBatipse is licensed under Eclipse Public License 1.0.