e).newInstance());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Object getInstance(String key) {
return objectMap.get(key);
}
}
事务管理接口
package pers.jason.market.transaction;
/** *@Title Transaction.java *@description TODO 事务管理接口 *@ time 2018-8-18 下午11:50:51 *@author Anderson *@version 1.0 */
public interface Transaction {
/** * * @Title : begin * @Description:事务开启 * @return void * @author Anderson * @data 2018-8-18 下午11:51:21 */
public abstract void begin();
/** * * @Title : commit * @Description:事务提交 * @return void * @author Anderson * @data 2018-8-18 下午11:51:26 */
public abstract void commit();
/** * * @Title : rollback * @Description:事务回滚 * @return void * @author Anderson * @data 2018-8-18 下午11:51:30 */
public abstract void rollback();
}
事务管理接口实现类
package pers.jason.market.transaction.impl;
import java.sql.Connection;
import java.sql.SQLException;
import pers.jason.market.transaction.Transaction;
import pers.jason.market.util.JDBCUtil;
/** *@Title TransactionImpl.java *@description TODO 事务管理接口实现类 *@ time 2018-8-18 下午11:52:59 *@author Anderson *@version 1.0 照抄完毕 */
public class TransactionImpl implements Transaction{
/** * 事务开启 */
@Override
public void begin() {
Connection conn = JDBCUtil.getConnection();
try {
conn.setAutoCommit(false);
} catch (SQLException e) {
e.printStackTrace();
}
}
/** * 事务提交 */
@Override
public void commit() {
Connection conn = JDBCUtil.getConnection();
try {
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.closeConnection(conn);
}
}
/** * 事务回滚 */
@Override
public void rollback() {
Connection conn = JDBCUtil.getConnection();
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.closeConnection(conn);
}
}
}
加载数据库的连接类
package pers.jason.market.util;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
/** *@Title JDBCUtil.java *@description TODO 加载数据库的连接类 *@ time 2018-8-18 下午11:58:34 *@author Anderson *@version 1.0 照抄完毕 */
public final class JDBCUtil {
private static DataSource dataSource =null;
private static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();
static {
Properties properties = new Properties();
try {
properties.load(new FileInputStream("database.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
dataSource = BasicDataSourceFactory.createDataSource(properties);
} catch (Exception e1) {
e1.printStackTrace();
}
}
/** * 获取连接 * @return */
public static Connecti