0.JDBC 
        是一套sun公司提供的接口, 这个接口由数据库厂商编写实现类, 这个厂商编写实现类称为数据库的驱动 
        jdbc作用:平复数据库数据的差异 
1.操作的步骤 
        1.导入驱动jar包 
        2.注册驱动 
        3.获取连接 
        4.通过连接得到执行者对象 
        5.使用执行者对象执行sql语句 
        6.得到结果,并处理 
        7.释放资源 
2.jdbc相关的api 
        DriverManager 
                1.注册驱动 
                        registerDriver的方法,但是我们不用,我们使用Class.forName("com.mysql.jdbc.Driver"); 
                        原因是因为在Driver这个类中有静态方法,这个方法随之类的字节码加载而加载,只加载一次, 
                        静态代码块中里面帮我们注册了驱动 
                2.获取连接 
                        Connection        getConnection(url,用户名,密码); 
                        url的编写: "jdbc:mysql://ip地址:端口/数据库的名字" 
                        注意: 如果我们连接本机, 可以省略: "jdbc:mysql:///数据库的名字" 
        Connection 
                1.获取执行者对象 
                        Statement createStatement(); 
                        PreparedStatement preparedStatement(String sql);//100%都是用的这个!!!!!!!! 
                2.管理事务 
                        1.开始事务:  setAutoCommitted("false"); --->将自动提交关闭 
                                注意:这里关闭自动提供, 只针对这一次操作 
                        2.回滚: rollback() 
                        3.提交: commit() 
        Statement(以后不会用!!!!会出现sql注入的问题) 
                        1.执行DML 
                                int excuteUpdate(String sql);淘汰了!!!!! 
                                返回值: int 代表影响的行数, 我们通过这个行数判断是否执行成功 
                        2.执行DQL 
                                ResultSet excuteQuery(String sql);淘汰了!!!!! 
                                返回值:ResultSet这个对象封装了所有的结果!!!! 
                        3.可以执行任何sql 
                                boolean excute(); ----> 如果 true代表是"查询语句", 如果false代表是"增删改"  
        PreparedStatement(以后都用这个, 不仅效率高,还可以解决sql注入问题) 
                        1.执行DML 
                                int excuteUpdate();//这里不能传入sql语句了 
                        2.执行DQL 
                                ResultSet excuteQuery();//这里不能传入sql语句了 
                        注意事项: 所有的需要拼接的参数都用"?"来占位, 千万不要对?进行赋值, ?从1开始编号 
        ResultSet 
                        1.next(); 可以是指针向下移动一行 
                        2.getXxx(参数)的方法得到其对应的数据 
                                参数: 1.int(没人用!!!!!)2.String(建议使用!!!!) 
3.sql注入问题: 
        为什么会出现? 因为在sql拼接,会将关键识别 
        通过PreparedStatement来解决, 他的参数用?来占位, 将来赋值的时候, 即使有关键字也不会识别!!!!!! 
         |   
        
 
    
    
    
     
 
 |