☆☆☆★☆☆☆

唯有努力才能活成自己想要活成的样子

导航

JDBC的操作数据库

* JDBC:Java DataBase Connective    Java连接数据库
    * 概念:
        * 使用Java代码操作数据库
        * JDBC其实就是一套操作数据库的规范(接口)
    * 快速入门:
        1.导入驱动jar包
        2.注册驱动
        3.创建连接对象 Connection
        4.定义sql  String sql = "insert into stu values('zhangsan',23,'男');
        5.获取执行sql的对象  Statement
        6.执行sql
        7.处理结果
        8.释放资源。
        
        
    * 详解各个类:
        * DriverManager:驱动管理类
            * 功能:
                * 注册驱动:
                    * Class.forName("com.mysql.jdbc.Driver");
                      在Driver类中有静态代码块,随着类的加载而执行。
                      static {
                            try {
                                java.sql.DriverManager.registerDriver(new Driver());//注册驱动
                            } catch (SQLException E) {
                                throw new RuntimeException("Can't register driver!");
                            }
                      }
                      
                      * 拓展:mysql5之后的驱动jar包,注册驱动这行代码可以省略
                      
                      
                * 获取Connection对象:
                    * Connection conn = DriverManager.getConnection(url,user,password);
                        * url:访问数据库的路径
                            jdbc:     mysql://    192.168.3.100:     3306     /day04
                            主协议    子协议        ip地址            端口号      数据库名称
                        
                            * 细节:如果连接的是本地的数据库,则ip和端口可以省略
                                jdbc:mysql:///day04
                        
        
        * Connection:数据库连接对象
            * 创建执行sql的对象
                * createStatement:创建Statement对象
                * prepareStatement:创建preparedStatement对象
                    * 可以防止sql注入,提高执行效率
                * prepareCall: 创建preparedCall对象
                    * 执行存储过程的。
        
        
            * 管理事务:事务指一件事,这件事一般包含多个步骤,这些步骤要么同时成功,要么同时失败。
                * setAutoCommit():开启事务
                * commit():提交事务
                * rollback():回滚事务
                
                try{
                    开启事务setAutoCommit(false):
                    1.查询
                    2.-我卡里的钱
                    3.+张三卡里的钱
                    提交事务 commit()
                }catch(Exception e){
                    回滚事务rollback()
                }
                
                
        
        * Statement:执行sql的对象
            * 方法:
                * executeUpdate(sql):执行DML语句  (增、删、改)
                    * 返回值:int,代表影响的行数
                * executeQuery(sql):执行DQL语句 (查询)
                    * 返回值:ResultSet对象  结果集对象,对结果集的封装
                        
                * execute(sql):执行任意语句
                    * 返回值:boolean,执行成功与否
                
        * ResultSet:结果集对象
            * 方法:
                * next():判断是否有下一条记录,如果有,则将游标向下移动一行
                * getXxx(参数):获取数据
                    * 参数类型:
                        String:列的名称
                        int:列的序号  从1开始
        
        * PreparedStatement:执行sql的对象
            * 登陆:
                如果使用statement,可能发生sql注入。
            
            * 功能:
                * 预防sql注入
            
            * 使用方式:
                1.定义sql时,所有的参数位置 需要 使用 ? 作为占位符
                2.Connection对象获取执行sql 对象 prepareStatement(sql)
                3.给占位符 ? 赋值
                    * setXxx(参数1,参数2):
                        * 参数1:?出现的位置 从1开始
                        * 参数2:?对应的值
                4.执行sql时,使用不带参数的方法

            
            * 注意:一般都采用该对象来执行sql

 

posted on 2022-08-01 14:11  Yr-Zhang  阅读(128)  评论(0编辑  收藏  举报