View Javadoc
1   /*
2    * Copyright 2004-2025 the original author or authors.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *    https://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package com.ibatis.sqlmap.engine.transaction.external;
17  
18  import com.ibatis.sqlmap.engine.transaction.BaseTransactionConfig;
19  import com.ibatis.sqlmap.engine.transaction.Transaction;
20  import com.ibatis.sqlmap.engine.transaction.TransactionException;
21  
22  import java.sql.SQLException;
23  import java.util.Properties;
24  
25  /**
26   * The Class ExternalTransactionConfig.
27   */
28  public class ExternalTransactionConfig extends BaseTransactionConfig {
29  
30    /** The default auto commit. */
31    private boolean defaultAutoCommit = false;
32  
33    /** The set auto commit allowed. */
34    private boolean setAutoCommitAllowed = true;
35  
36    @Override
37    public Transaction newTransaction(int transactionIsolation) throws SQLException, TransactionException {
38      return new ExternalTransaction(dataSource, defaultAutoCommit, setAutoCommitAllowed, transactionIsolation);
39    }
40  
41    /**
42     * Checks if is default auto commit.
43     *
44     * @return true, if is default auto commit
45     */
46    public boolean isDefaultAutoCommit() {
47      return defaultAutoCommit;
48    }
49  
50    /**
51     * Sets the default auto commit.
52     *
53     * @param defaultAutoCommit
54     *          the new default auto commit
55     */
56    public void setDefaultAutoCommit(boolean defaultAutoCommit) {
57      this.defaultAutoCommit = defaultAutoCommit;
58    }
59  
60    /**
61     * Checks if is sets the auto commit allowed.
62     *
63     * @return true, if is sets the auto commit allowed
64     */
65    public boolean isSetAutoCommitAllowed() {
66      return setAutoCommitAllowed;
67    }
68  
69    /**
70     * Sets the sets the auto commit allowed.
71     *
72     * @param setAutoCommitAllowed
73     *          the new sets the auto commit allowed
74     */
75    public void setSetAutoCommitAllowed(boolean setAutoCommitAllowed) {
76      this.setAutoCommitAllowed = setAutoCommitAllowed;
77    }
78  
79    @Override
80    public void setProperties(Properties props) throws SQLException, TransactionException {
81      String dacProp = props.getProperty("DefaultAutoCommit");
82      String sacaProp = props.getProperty("SetAutoCommitAllowed");
83      defaultAutoCommit = "true".equals(dacProp);
84      setAutoCommitAllowed = "true".equals(sacaProp) || sacaProp == null;
85    }
86  
87  }