1. 如何设计一个主从表的结构:
通常是一对多的设计,即在多的一端加入一个外键,指向一个一的一端。
2. 底层通常是粗粒度的,而service层通常是细粒度的。
3. ThreadLocal可以保证线程的安全问题,但是在ThreadLocal中的东西,只能是一个线程共用,非常的不好哦!底层的实现是在HashMap中放了一个connection。
其实就是在一个线程中共享这个蛋糕。其它的线程不能共用。
4. 注意事务的提交与回滚,保证原子性。
5. 批量的执行,可以提高性能。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBUtilPromote {
private static ThreadLocal<Connection> holder = new ThreadLocal<Connection>();
public static Connection getConnection(){
Connection conn = holder.get();
if(conn==null){
try{
JdbcInfo jdbcInfo = ConfigReader.getInstance().getJdbcInfo();
Class.forName(jdbcInfo.getDriverName());
conn = DriverManager.getConnection(jdbcInfo.getUrl(), jdbcInfo.getUsername(), jdbcInfo.getPassword());
holder.set(conn);
}catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
public static void close(Connection conn){
if(conn!=null){
try {
conn.close();
holder.remove();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}