# Database Functions

The library supplies implementations for several common database functions. We do not try to implement a large set of functions. Rather, we supply some common functions as examples and make it relatively easy to write your own implementations of functions you might want to use that are not supplied by the library. See the page “Extending the Library” for information about how to write your own functions.

The supplied functions are all in the `org.mybatis.dynamic.sql.select.function`

package. In addition, there are static methods in the `SqlBuilder`

to access all functions.

In the following table…

- “Function Class” is implementing class in the
`org.mybatis.dynamic.sql.select.function`

package - “Example” shows the static method from the
`SqlBuilder`

class - “Rendered Result” shows the rendered SQL fragment generated by the function

Function Class | Example | Rendered Result |
---|---|---|

Add | add(column1, column2, constant(55)) | column1 + column2 + 55 |

Concatenate | concatenate(stringConstant("Name: ", column1) | 'Name: ' || column1 |

Divide | divide(column1, column2, constant(55)) | column1 / column2 / 55 |

Lower | lower(column1) | lower(column1) |

Multiply | multiply(column1, column2, constant(55)) | column1 * column2 * 55 |

OperatorFunction | applyOperator(“^”, column1, column2) | column1 ^ column2 |

Substring | substring(column1, 5, 7) | substring(column1, 5, 7) |

Subtract | subtract(column1, column2, constant(55)) | column1 - column2 - 55 |

Upper | upper(column1) | upper(column1) |

Note especially the `OperatorFunction`

- you can use this function to easily implement operators supported by your database. For example, MySQL supports a number of bitwise operators that can be easily implemented with this function.