SpringAOP实现多数据源切换
简单聊一下JDBC
直接上图
只要是第三方接口我们要做的就是引入jar包
Driver接口
首先java提供了一个Driver接口,由数据库厂商来实现Driver接口
package java.sql;
public interface Driver {
//用来获取一个数据库连接
Connection connect(String url, java.util.Properties info)
throws SQLException;
// 这个是 Driver实现类里的静态代码块
// Dirver被加载时会向DriverManager里创建一个Driver
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
}
DriverManager类与Connection接口
DriverManager类就是获取连接的,先看Connection接口
package java.sql;
public interface Connection extends Wrapper, AutoCloseable {
//创建一个可以执行静态sql的Statement对象
Statement createStatement() throws SQLException;
//创建一个可以执行带参数的sql预编译语句的PreparedStatement对象
PreparedStatement prepareStatement(String sql)throws SQLException;
//创建一个可以执行储蓄过程的CallableStatement对象
CallableStatement prepareCall(String sql) throws SQLException;
//开启或关闭自动提交
void setAutoCommit(boolean autoCommit) throws SQLException;
//获取自动提交状态
boolean getAutoCommit() throws SQLException;
//提交
void commit() throws SQLException;
//回滚
void rollback() throws SQLException;
//关闭连接
void close() throws SQLException;
}
Statement接口
Statement
Statement st= conn.createStatement();
//建立一个sql对象,一个sql对象对于一个Statement
String sql;
sql="select name from user ";
ResultSet ret= st.executeQuery(sql);//接收sql语句
while (ret.next()){
//判读是否有由数据
String name=ret.getString("name");
System.out.println(name);
}
PreparedStatement
String sql="insert into user(name,pwd) values(?,?)";
PreparedStatement st=conn.prepareStatement(sql);
st.setString(1,"lkkkk");
st.setString