sql >> データベース >  >> RDS >> Mysql

1回のショットですべてのMySQLSelectクエリに列を追加します

    カスタムDBインターセプターを作成する

    package com.felix.dao.interceptor;
    import org.hibernate.EmptyInterceptor;
    
    public class CustomDBInterceptor extends EmptyInterceptor {
    
      @Override
      public String onPrepareStatement(String sql) {
        String commentStr = "/*Comment*/"
        return super.onPrepareStatement(commentStr+sql);
      }
    
    }
    

    Spring Contextファイルで、セッションファクトリのインターセプターを構成します。

    <bean id="customDBInterceptor" class="com.felix.dao.interceptor.CustomDBInterceptor"/>
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="datasource" />
        <property name="entityInterceptor">
            <ref bean="customDBInterceptor"/>
        </property>
        ...
    </bean>
    

    カスタムDBインターセプターがsessionFactoryに循環依存関係にないことを確認してください。上記の場合、セッションファクトリを介して発生するすべてのクエリがインターセプトされ、変更されてから、onPrepareStatementに渡されます。 メソッド。



    1. ライブMySQLデータベースをアーカイブするための最良の方法

    2. データベース-イベントテーブルの設計

    3. oraclejdbcドライバーバージョンの狂気

    4. MySQL-この表にあるものを除いてすべて選択