静态代理是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。静态代理的实现只需要三步:首先,定义业务接口;其次,实现业务接口;然后,定义代理类并实现业务接口;最后便可通过客户端进行调用。
动态代理是在程序运行期间根据需要动态创建代理类及其实例来完成具体的功能,具体主题类与其代理类是一一对应的,这也是静态代理的特点。但是,也存在这样的情况:有N个主题类,但是代理类中的“预处理、后处理”都是相同的,仅仅是调用主题不同。动态代理可以简单地为各个主题类分别生成代理类,共享“预处理,后处理”功能,这样可以大大减小程序规模,这也是动态代理的一大亮点。
JDBC七大原生操作步骤
JDBC是Java数据库连接,java可以操作各种关系型数据库
本质就是一个普通的java类,数据库厂商提供的驱动jar包,来实现sun公司提供一套"应用程序接口规范"
java.sql.Drvier 驱动接口
java.sql.DriverManager:驱动管理类(管理jdbc的驱动服务)
java.sql.Connection:与特定数据库的一种会话连接
java.sql.Statement:执行静态sql语句 (执行对象,操作数据库)
JDBC的7大操作步骤;
//1 导包并且注册驱动
Class.forName("com.mysql.jdbc.Driver") ; //mysql5.5 /5.7---对应的jar包5.1
//Class.forName("com.mysql.cj.jdbc.Driver") ;//mysql8.0 --对应jar包 8.0的jar包
//2 写sql语句
String sql =“sql语句”;
//3创建数据库连接对象
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/库名",
"root",
"密码"
) ;
//4 通过连接对象获取执行象
Statement st = conn.createStatement() ;
//5 执行sql语句
DML语句:
int i= st.executeUpdate(sql);
Dql语句:
Java.sql.ResultSet:表示数据库结果集的数据表
ResultSet rs = st.executeQueery(sql);
// 6 输出结果
Dml语句:
System.out.println(i)
Dql语句:
//next()方法在没有调用之前,处在有效数据第一行的前一行
while(rs.next()){
//getXXX方法:(列的索引值:从1开始)
//getXXX方法:(String 列的名称) XXX为当列的数据类型
System.out.println(rs.get(),.....)
}
//7 释放资源
rs.close();//Dql语句
st.close();
conn.close();