JDBC详解和相关组件详解

最近在从头看一些基础东西,重新看了下JDBC,详细复习整理了一下关于的知识

首先JDBC是什么

JDBC是java定义的一系列接口,然后由各厂商去实现,java是主导者定制标准,各大厂商去实现    独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。 

怎么使用

网上比较流行的口诀 贾琏欲执事 

具体步骤例子如下:

step1.加载驱动      
Class.forName("com.mysql.cj.jdbc.Driver"); 
     
step2.创建链接      
Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.0.0:3306/index?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai",  "index", "@index");        

step3.创建Statement对象,用于执行静态sql语句并返回其生成的结果的对象     
String sql="update dmsfull_day set create_stime='2022-01-27 02:21:49' where id=1100326";        
Statement statement=connection.createStatement();       

step4.执行sql     
int count = statement.executeUpdate(sql);       

step5.释放资源      
statement.close();      
connection.close();  

组建详解:

DriverManager详解:                                      
    1.注册驱动                                        
    2.创建数据库连接         
    注册驱动详解:                                       
        语句:Class.forName("com.mysql.cj.jdbc.Driver");                                                               
        因为从jdk1.5以后使用了jdbc4,不在需要显示调用Class.forName()注册驱动而是自动调用驱动jar包下META-INF\services\java.sql.Driver文本中的类名称去注册
  点开mysql-connector-java包->meta-inf->services->java.sql.Driver,会有加载的驱动名称om.mysql.cj.jdbc.Driver                                   
  点开代码Class.forName("com.mysql.cj.jdbc.Driver");的Driver,会发现静态代码中使用了DriverManager.registerDriver(new Driver());注册驱动            
    创建数据库连接详解:                                     
        Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.0.0:3306/ndex4?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai",   "index", "@index");                                    
        DriverManager.getConnection(连接,用户名,密码)                                  
        连接:                                 
            jdbc:数据库类型://ip或者域名:端口号/数据库名称?参数1=值1,参数2=值2                         本机可以省略ip/域名    

Connection详解:                            
    1.创建statement                         
    2.管理事务        
        创建statement                     
            statement   普通执行sql             
            prepareStatement(sql)       防止sql注入     prepareStatement.setString(参数顺序,参数值)   
            callableStatement(sql)      执行存储过程          
        管理事物                      
            开启事物    conneciton.setAutoCommit(true)  true自动提交,false手动提交,默认自动提交   
            提交事物    connection.commit()             
            回滚事物    connection.rollback()      

Statement详解:              
    执行sql           
        exexuteUpdate       
            执行DDL,DML等语句,DML返回影响条数,比如更新,DDL返回成功后也可能返回0  
        executeQuery        
            执行DQL语句,返回ResultSet结果集

ResultSet详解:                         
    封装了DQL语句的结果                     
        while(resultSet.next())     是否有下一行,并读取下一行           
        getXXX()    取得字段,根据不同类型,getString,getIn             
            参数是列编号或者列名 getStirng(1),getString("name")      

        
PrepareStatement详解:                            
    预编译sql并执行,防止sql注入                       
    在创建prepareStatement的时候就要传入sql                       
    String sql="update dmsday set create_stime='2022-01-27 02:21:49' where id=?";                     
    PreparedStatement preparedStatement=connection.prepareStatement(sql);                       
    preparedStatement.setString(1,"1100326");               设置参数,下标从1开始     
    preparedStatement.executeUpdate();                      
                                             

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值