MyBatis Generator Generated Java Client Objects
MyBatis Generator (MBG) generates Java client objects that
are used to make interaction with the generated XML elements much easier.
For each table in the configuration, MBG generates a MyBatis mapper interface.
Generating Java client objects is optional, and is controlled by the
<javaClientGenerator>
configuration element.
Every field and method generated includes the non-standard JavaDoc tag
@mbg.generated
. When run from the Eclipse plugin,
on subsequent runs every field and method that
includes this JavaDoc tag will be deleted and replaced. Any other field or method in the
class will be untouched.
With this in mind, you can add other fields and methods to the classes without fear of losing them in
subsequent runs - simply DO NOT include the @mbg.generated
JavaDoc tag on anything that you add to the class.
Outside of the Eclipse plugin, Java files need to be merged by hand, but you can use the
@mbg.generated
JavaDoc tag to know what is safe to delete from a prior
version of a file.
Note: in the following descriptions, the term "BLOB" is used to refer to any column with a data type of BLOB, CLOB, LONGVARCHAR, or LONGVARBINARY.
Client Methods
Depending on the specifics of the table, and the configuration options, the Java client generator will generate these methods:
- countByExample
- deleteByPrimaryKey
- deleteByExample
- insert
- insertSelective
- selectByPrimaryKey
- selectByExample
- selectByExampleWithBLOBs
- updateByPrimaryKey (with an override to specify whether or not to update BLOB columns)
- updateByPrimaryKeySelective (will only update non-null fields in the parameter class)
- updateByExample (with an override to specify whether or not to update BLOB columns)
- updateByExampleSelective (will only update non-null fields in the parameter class)
MBG attempts to make it easier to deal with tables that contain BLOBs by generating different objects and methods so that you can use the BLOB fields, or ignore them, depending on the situation.
See the
Example Class Usage
page for an example of using the selectByExample
method.
Client Usage in MyBatis
MyBatis mappers are interfaces that will map to
methods in the generated XML mapper files (if you have chosen to generated XML). If you have chosen an annotated
mapper, then the mapper interface contains all the generated code within itself. For example, suppose that MBG generated
an interface called MyTableMapper
. You can use the interface as follows:
SqlSession sqlSession = sqlSessionFactory.openSession(); try { MyTableMapper mapper = sqlSession.getMapper(MyTableMapper.class); List<MyTable> allRecords = mapper.selectByExample(null); } finally { sqlSession.close(); }
See the standard MyBatis documentation for details on how to create the instance
of sqlSessionFactory
.