• java笔记38,JDBC


    Java DataBase Connectivity

    同一套Java代码,操作不同的关系型数据库

    Java:定义jdbc接口,我就定义sql操作,增删改查,创建等。。接口。具体如何实现我不管,交给其他数据库公司

    其他数据库公司,做实现,方法里具体如何操作数据库,也可以喊数据库驱动

    用户——>java——>不同的数据库实现

    演示

    注册驱动
    说明我们要使用哪个数据库的驱动?

    Class.forName(“com.mysql.jdbc.Driver”);

    获取连接

    Connection conn = DriverManager.getConnection(url, username, password);

    创建执行SQL的对象

    Statement stmt = conn.createStatement();

    执行

    String sql =“select. …” ;
    stmt.executeUpdate(sql);

    返回resulted,处理结果,然后逐步关闭resulted,statement,connection

    DriverManager

    驱动管理类:注册驱动,创建连接

    connection

    执行SQL,管理事务
    statement 普通执行sql对象
    preparedstatement预编译SQL的执行对象(防SQL注入)
    Callablestatement 执行存储过程的对象

    事物管理:
    setAutoCommit(真)真为自动提交事务,否为手动提交事物
    commit()提交
    rollback()回滚
    将多句sql作为一个事物,批处理

    statement

    就三种
    execute:增
    executeUpdate:删,改
    executeQuery:查

    resultedset结果集

    next()
    游标下移,若存在数据返回true,否则false
    移动后当前行是否有数据

    getxxx()
    int :列号1~n
    String:列名

    preparedstatement

    预编译:pstmt=conn.prepareStatement(sql);
    在执行完这句后,已经被预编译了,只需要等参数就可以,很快

    在MySQL配置文件中配置(ini),然后重启

    log-output=FILEgeneral-log=1
    general_log_file="D:\mysql.log"slow-query-log=1
    slow_query_log_file="D: \mysql_slow.log"long_query_time=2

    在连接的URL后面加上useServerPrepStmts=true,以开启预编译

    继承自statement

    // 将参数用?替代,作为占位符,检查?中是否有sql语句
            String sql= "select* from user where username=?;";
            PreparedStatement 
            // 已经在执行sql,在检查和编译,就等着参数
    		pstmt=conn.prepareStatement(sql);
            
            // 设置第一个问号的值为11234
            pstmt.setString(1,"11234");
            
            // 查询
            pstmt.executeQuery();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    预编译,把敏感字符进行转义,达到sql失效

    数据库连接池

    德鲁伊连接池

  • 相关阅读:
    动态SQL+分页
    2021年数学建模国赛A题优秀论文(Word)
    实例分割-二阶段模型-RCNN系列介绍
    Postgresql14安装及主从配置
    Python:实现rabin karp算法(附完整源码)
    Python 进阶 - 日常工作中使用过的简单Trick
    【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个响应式网站登陆页面|使用全屏可拖动图像滑块~手把手一步一步教学 ~快来收藏吧!
    企业级-精度计算
    视觉神经网络的工作机理,计算机视觉和神经网络
    MyBatis-Plus雪花算法实现源码解析
  • 原文地址:https://blog.csdn.net/qq_46664420/article/details/126054826