当前位置:   article > 正文

了解JDBC_flink 连接 drivermanager.getconnection(clickhouseurl

flink 连接 drivermanager.getconnection(clickhouseurl, username, password);

一,JDBC

就是Java语言操作关系型数据库的一套API
官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口
各个数据库厂商去实现这套接口,提供数据库驱动jar包
我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

二,相关API

1、DriverManager

用来注册驱动和获取数据库连接
获取数据库连接:DriverManager.getConnection(url,username,password);返回一个Connection对象
其中url="jdbc:mysql://127.0.0.1:3306/数据库名?参数键值对1&参数键值对2..."

2、Connection

获取执行SQL的对象和管理事务
createStatement() 返回Statement对象,获取Statement对象
preparedStatement(sql) 返回PreparedStatement对象,预编译SQL的执行SQL对象:防止SQL注入
prepareCall() 返回CallableStatement对象
管理事务的方法
setAutoCommit(boolean autoCommit)true为自动提交,false为手动提交即开启事务
提交事务:commit()
回滚事务:rollback()

3、Statement

执行SQL语句
executeUPdate(sql):执行DML和DDL语句
executeQuery(sql):执行DQL,返回ResultSet结果集对象

4、ResultSet

封装了DQL查询语句的结果
boolean next()把光标从当前位置向前移动,判断当前行是否为有效行
xxx getXxx(参数):Xxx数据类型,参数是int表示列的编号,是String表示列的名称

  1. String sql="select * from student"
  2. ResultSet rs=stmt.executeQuery(sql)
  3. while(rs.next){
  4. int id=rs.getInt(1);
  5. String name=rs.getInt(2);
  6. }

5、PreparedStatement

接口,继承了Statement,用于预防SQL注入(与字符串的拼接有关)

  1. //获取PreparedStatement对象
  2. String sql="select * from user where username=? and password=?"
  3. PreparedStatement ps=conn.preparedStatement(sql)
  4. //设置参数值
  5. 给?赋值用setXxx(参数1,c参数2):Xxx-数据类型,如setInt(参数1,参数2)
  6. 参数1是?的位置编号,参数2是?的值
  7. //执行SQL
  8. executeUpdate()或executeQuery()不需要传入sql语句进来

预编译

在获取PreparedStatement对象时,将SQL语句发送给mysql服务器进行检查,编译
执行时就不需要再检查,编译了,如果SQL模板一样,则只需要进行一次检查,编译
使用预编译需要在url中加入键值对:useServerPrepStmts=true;

三,数据库连接池

是个容器,负责分配、管理数据库连接
允许应用程序重复使用一个现有的数据库连接,而不是在建立一个
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库链接遗漏

标注接口是DataSourse,官方提供的数据库标准连接池,有第三方组织实现此接口
Connection getConnection()获取连接

Druid连接池
需要先导入jar包
获取连接池对象:DruidDataSourceFactory.createDataSource(prop)
prop是相关配置信息,可以通过Properties读配置文件获得

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/692582
推荐阅读
相关标签
  

闽ICP备14008679号