sql >> Databasteknik >  >> RDS >> Mysql

Lägg till en kolumn till alla MySQL Select Queries i en enda bild

Skapa en anpassad DB Interceptor

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);
  }

}

I Spring Context-filen konfigurerar du Interceptor för sessionsfabriken:

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

Se till att Custom DB Interceptor inte har ett cykliskt beroende av sessionFactory. Med ovanstående fångas alla frågor som skickas genom sessionsfabriken upp, modifieras och skickas sedan till onPrepareStatement metod.



  1. Det finns problem med att lägga till ett nytt ID (automatisk ökning) efter tabellen

  2. SQL Välja från två tabeller med inre koppling och limit

  3. MySQL Host '::1' eller '127.0.0.1' får inte ansluta till denna MySQL-server

  4. Laravel db-migrering - byt namn på kolumnfel - Okänd databastyp enum begärd