Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

cara mengonversi sesi hibernasi baca saja menjadi menulis selama transaksi (Master/Slave DB)

Kami membuka transaksi dalam mode hanya baca dan kemudian mengubahnya menjadi mode tulis karena koneksi hanya baca tidak akan menjadi masalah seperti halnya dengan DB salve.

Kami mengganti HibernateTemplate kelas dan buat metode untuk membuat sesi dalam mode tulis

 public final void writeEnabled(){
    getSession().doWork(jdbcWorkWriteEnabled);
}

public final void writeDisabled(boolean flush){
    if(flush)
        flush();
    getSession().doWork(jdbcWorkWriteDisabled);
}

public static final void writeEnabled(Session session){
    session.doWork(jdbcWorkWriteEnabled);
}

public static final void writeDisabled(boolean flush,Session session){
    if(flush)
        session.flush();
    session.doWork(jdbcWorkWriteDisabled);
}

final static Work jdbcWorkWriteEnabled = new Work(){
    public void execute(Connection connection) throws SQLException {
        connection.setReadOnly(false);
    }
};

final static Work jdbcWorkWriteDisabled = new Work(){
    public void execute(Connection connection) throws SQLException {
        connection.setReadOnly(true);
    }
};

Dalam logika aplikasi sebelum menulis kami memeriksa
Koneksi dalam mode tulis kemudian tulis saja.
jika koneksi hanya baca maka pertama buat dalam mode tulis, lakukan operasi tulis dan kembalikan kembali ke hanya baca




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. KIRI JOIN pesanan dan batas

  2. Tidak dapat membuat tabel di MySQL karena sudah ada

  3. PDOSstatement - Gunakan aksen kuburan (`) di kolom?

  4. Bagaimana cara menangani sesi di berbagai perangkat?

  5. Data tidak dikirimkan ke Database SQL menggunakan MySQLi dan PHP