java学习第三十七天内容

1.前一天重点内容复习

        什么是JDBC,本质是什么

                JDBC就是Java操作数据库的连接器,本质是实现sun公司提供的数据库连接接口的类,这些实现类在数据库厂商提供的驱动包中

        jdk动态代理,描述以及代码实现

                描述:就是让代理角色帮助真实角色完成特定功能,对真实角色的功能进行增强,在程序运行的过程中,通过反射的方式产生类的实例

                代码实现:

                        1.创建真实角色的接口

                        2.创建真实角色的实现类,实现真实角色的接口

                        3.创建真实角色对象,类型为真实角色接口类型

                        4.创建一个继承自InvocationHandler接口的子实现类,定义一个私有的Object类型的变量,给出有一个参数的构造方法并将参数赋值Object类型的变量,重写invoke方法进行权限校验和产生日志操作,通过对method的对象的invoke方法传入真实对象和此方法参数返回一个Object类型变量作为返回值

                        5.创建InvocationHandler接口的子实现类对象

                        6.使用Proxy类的静态方法来产生代理对象public static Object newProxyInstance (ClassLoader loader,Class<?>[]  interfaces,InvocationHandler h) throws IllegalArgumentException,传入真实对象的类加载器,真实对象的接口和InvocationHandler接口的子实现类对象

                        7.通过代理对象来调用真实对象方法

        JDBC原生操作步骤

                导入驱动jar包

                加载驱动

                        Class.forName("Driver类的全限定名称");

                获取数据库的连接对象

                    DriverManager.getConnection("jdbc:数据库名称://域名:端口号/库名","用户名","密码");

                准备静态sql语句

                        String sql = "sql语句";

                通过数据库连接对象获得执行数据库的对象

                        数据库连接对象.createStatement();

                数据库执行对象执行sql语句并返回结果

                        数据库执行对象.executeUpdate(sql);

                释放资源    

        反射获取Method类对象并去调用成员方法

                获取该类字节码文件对象

                        Class.forName("类的全限定名称");

                通过字节码文件对象来创建一个该类的实例对象

                        字节码文件对象.newInstance();

                通过字节码文件对象来获取该对象的成员方法对象

                        字节码文件对象.getMethod(”方法名“,参数.class、、、);

                成员方法对象调用执行方法,传入实例对象和方法参数,以此来访问成员方法

                        成员方法对象.invoke(实例对象,"参数",、、、);

2.JDBC操作中核心接口及类

        java.sql.DriverManager类:管理一组驱动服务

                public static synchronized void registerDriver(java.sql.Driver driver):注册驱动的方法

        注册驱动时为何需要写Class.forName("驱动类的全限定名称");目的是加载驱动类的字节码文件,向下保证兼容性,并且在此类的静态代码块中已经注册驱动,只要类加载立即注册驱动,写此代码原因就是为了向下兼容,加载Driver类

        java.sql.Connection接口:与特定数据库的会话连接

                com.mysql.cj.jdbc.ConnectionImpl实现Connection接口并且实现Connection接口里面的抽象方法Statement createStatement()

         java.sql.Statement接口:执行对象,执行的都是静态sql语句

                int executeUpdate(String sql) throws SQLException;:执行更新操作

                ResultSet executeQuery(String sql) throws SQLException;:执行查询工作

        ResultSet:表示数据库结果集的数据表

                Boolean next()  throws SQLException;:将光标从当前位置向前移动一行,返回值为true表示存在有效数据,光标移动,false为没有数据

                get数据类型(数据类型 变量):获得当前行指定列的值

        ResultSetData getMetaData():获取结果集数据表数据

                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值