Mybatisで正規表現を使用する方法
MyBatisで正規表現を使用する方法
MyBatisでは、selectなどで正規表現を使用することで、動的なSQLクエリを構築できます。
特に、where句やif条件で正規表現を使うことが一般的です。
例: testUserテーブルに対する検索
以下は、testUserテーブルでnameカラムに特定のパターンを持つレコードを取得する例です。
<mapper namespace="com.example.testUserMapper"> <select id="selectByPattern" resultType="com.example.testUser"> SELECT * FROM testUser WHERE name REGEXP #{pattern} </select> </mapper>
例: 動的に正規表現を使用する
正規表現を使って、特定のパターンに基づいて検索条件を動的に変更する場合の例です。
<mapper namespace="com.example.testUserMapper"> <select id="selectByDynamicPattern" resultType="com.example.testUser"> SELECT * FROM testUser WHERE 1=1 <if test="namePattern != null"> AND name REGEXP #{namePattern} </if> <if test="emailPattern != null"> AND email REGEXP #{emailPattern} </if> </select> </mapper>
Java側での使用例
上記のMyBatisマッパーを使用するJavaのコード例です。
public class TestUserService { private TestUserMapper testUserMapper; public List<TestUser> getUsersByPattern(String namePattern, String emailPattern) { return testUserMapper.selectByDynamicPattern(namePattern, emailPattern); } }
この方法で、正規表現を用いた柔軟な検索条件を実現できます。