Mybatipse Save

Eclipse plugin adding support for MyBatis SQL Mapper Framework.

Project README

MyBatipse : Eclipse plugin for MyBatis

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.

Features

XML Editor Enhancements

Auto-completion

  • Mapper namespace : Calculated from the path.
    autocomplete namespaceautocomplete namespace

  • Java class/Type alias : Propose Java classes and Type Aliases (translucent icons). Camelcase match is supported. [1] [2]
    autocomplete class autocomplete class

  • Java property : Propose properties of the parent java class. Nested properties are supported.
    autocomplete property autocomplete property

  • Statement ID : If corresponding mapper interface exists, propose the method name as a statement ID.
    autocomplete statement id

  • Reference to resultMap/select/sql : Propose ID of the referenced resultMap/select/sql. External reference is supported (blue icons).
    autocomplete reference

  • Parameter properties : #{} and ${} in select/insert/udpate/delte statements. Also works in some attributes.
    autocomplete properties autocomplete properties 2

  • javaType, jdbcType, typeHandler in #{}
    autocomplete jdbcType

  • Result elements in resultMap/collection/association : Generates elements for the parent java class properties.
    autocomplete results

  • setting name and value in XML config.
    autocomplete setting autocomplete setting

  • [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.
    link to external reference
  • From Java mapper interface to XML mapper element.
    link to xml mapper
  • From Java mapper method to XML mapper element.
    link to xml statement
  • From XML statement id to Java mapper method.
    link to java method
  • Result map id or select statement id specified in Java annotation.

Validation

  • Missing TypeAlias, Java class/property.
  • Missing resultMap/select/sql ID.
  • etc.
    refid error problem view

Mapper Declaration View

Java Editor Enhancements

Auto-completion

  • Parameter properties : #{} and ${} in select/insert/udpate/delte annotations. autocomplete properties in java
  • Return type properties in @Result
    autocomplete return type properties in java
  • keyProperty in @Options and @SelectKey
    autocomplete return type properties in java
    autocomplete return type properties in java
  • javaType, jdbcType, typeHandler in #{} : See the XML example.
  • Reference to resultMap in @ResultMap and resultMap attribute of @Arg
    autocomplete resultmap annotation
  • select attribute of @Arg, @Many and @One
    autocomplete select

Quick Assist

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.
    param-annotation1
    param-annotation2
  • You can copy annotation statement into the clipboard. param-annotation1
  • You can move annotation statement to XML mapper.
    move-statement
  • You can move @Results annotation to <resultMap /> in XML mapper.
    move-resultmap

Validation

  • @ResultMap : invalid resultMap ID.
  • select attribute of @One or @Many : invalid statement ID.

Rename Refactoring

  • Renaming resultMap/statement/sql ID updates its references in Java and XML mappers.
  • In XML mapper, right click -> Refactor -> Rename MyBatis element. param-annotation1
  • In Java mapper, right click -> MyBatis Refactor -> Rename MyBatis element. param-annotation1
  • Renaming a Java mapper method also updates its references.

Miscellaneous

  • Wizard to create a new XML mapper file.
    wizard-xml-mapper

  • 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 ...
    smart-copy-console
    ... 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')
    

Configuration

XML mapper location

  • 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.

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.
    nature

Annotation Processing

  • 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

  • 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).
    type aliases
    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 alias SomeBean.
    • Note that, in any case, MyBatipse respects @Alias annotation if it exists.

Java 8 -parameters compiler option support

  • If 'Store information about method parameters' option is enabled in the Java Compiler -> Classfile Generation setting, MyBatipse proposes the declared method parameter names.
    xml proposal order

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 with xml_content_assist_default_page_sort_order= and insert net.harawata.mybatis.proposalCategory.xml\u0000 right after the equal sign.
    xml proposal order

Installation

There are several ways to install MyBatipse.

  • Drag this button drag-to-install 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.

Bugs, questions, suggestions, etc.

Please use the issue tracker.

License

MyBatipse is licensed under Eclipse Public License 1.0.

Open Source Agenda is not affiliated with "Mybatipse" Project. README Source: mybatis/mybatipse
Stars
331
Open Issues
7
Last Commit
10 months ago
Repository

Open Source Agenda Badge

Open Source Agenda Rating