java如何连接数据库并对其操作(以PostgreSQL为例)

  • 相关概念

    JDBC(Java Data Base Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它是一组用java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序

    数据库驱动:我们安装好数据之后,我们的应用程序不能直接使用数据库,必须通过相应的数据库驱动程序,通过驱动程序去和数据库打交道。其实也就是数据厂商的JDBC接口实现,即对connection等接口的实现类的jar文件

  • 常用接口

    1. Driver接口

      Driver接口由数据库厂家提供,作为java开发人员,只需要使用Driver接口就可以了。在编程中要连接数据库,必须先装载特定的数据库驱动程序,以PostgreSQL驱动装载为例:

    Class.forName("org.postgresql.Driver");

    1. Connection接口

      Connection与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果,DriverManager.getConnection(url,user,password)方法建立在JDBC URL中定义的数据库Connection连接上,以连接PostgreSQL为例:

    Connection connection=DriverManager.getConnection("jdbc:postgresql://172.16.55.190:5432/thingsboard",user,password);(设置自己的ip地址,端口号,thingsboard为数据库名称)

    1. Statement接口

      用于执行静态sql语句并返回它所生结果的对象

      三种Statement类:
    • Statement:由CreateStatement创建,用于发送简单的SQL语句
    • PreparedStatement:可以防止sql注入
    • CallableStatement:

    常用Statement方法:

    • execute(String sql):运行语句,返回是否有结果集
    • executeQuery(String sql):运行select语句,返回ResultSet结果集
    • executeUpdate(String sql):运行insert/update/delete操作,返回更新的行数
    1. ResultSet接口

      ResultSet提供检索不同类型字段的方法,常用有:getString(int index/String columnName),getFloat(int index/String columnName),getBoolean(int index/String columnName),getObject(int index/String columnName)--获取数据库中任意类型的数据

      ResultSet还提供了对结果进行滚动的方法:
    • next();移动到下一行
    • Previous();移动到前一行
    • absolute(int row);移动到指定行
    • beforeFirst();移动到最前面
    • afterLast();移动到最后面
    

####实现步骤:
+ 下载驱动(jar包)
驱动的下载地址:[jar包](https://jdbc.postgresql.org/download.html)
+ eclipse导入jar包
右键点击创建的项目新建文件夹,文件夹命名为“lib",将下载的jar包复制到lib文件夹中,右键点击导入的jar包,找到构建路径,点击添加构建路径
+ 实现代码:
```
package Test; import java.sql.Connection; import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement; public class SelectTest { public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
try {
String url = "jdbc:postgresql://172.16.55.190:5432/thingsboard";//换成自己PostgreSQL数据库实例所在的ip地址,并设置自己的端口
String user = "postgres";
String password = "123456"; //在这里我的密码为空,读者可以自己选择是否设置密码
Class.forName("org.postgresql.Driver");
connection= DriverManager.getConnection(url, user, password);
//System.out.println("是否成功连接pg数据库"+connection);
String sql ="select * from public.syuser";
statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
while(resultSet.next()){
//取出列值
String id = resultSet.getString(2);
String name = resultSet.getString(8);
System.out.println(id+"\t\t"+name);
} resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
} }
}
```
###语句解析:
> String url = "jdbc:postgresql://172.16.55.190:5432/thingsboard";
jdbc:协议 postgresql:子协议 172.16.55.190:主机 5432:端口 thingsboard:数据库 创建执行语句的statement
String sql="insert into user(name,pwd) values(?,?)";
PrearedStatement ps = conn.preparedStatement(sql);
ps.setString(1,"col_value");//占位符从第一位开始
ps.setString(2,"123435")
ps.executeQuery(); 处理执行结果的ResultSet
ResultSet rs=ps.executeQuery();
While(rs.next()){
rs.getString("col_name");
rs.getInt(1);
} 释放资源
resultSet.close();
statement.close();
connection.close(); [常用Sql语句查询](https://www.yiibai.com/html/postgresql/2013/080442.html) 本博客部分内容参考自https://www.cnblogs.com/erbing/p/5805727.html

java如何连接数据库并对其操作(以PostgreSQL为例)的更多相关文章

  1. Java通过JDBC 进行MySQL数据库操作

    转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...

  2. 【Mybatis源码解析】- JDBC连接数据库的原理和操作

    JDBC连接数据库的原理和操作 JDBC即Java DataBase Connectivity,java数据库连接:JDBC 提供的API可以让JAVA通过API方式访问关系型数据库,执行SQL语句, ...

  3. Java实现单链表的各种操作

    Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素   4.实现链表的反转   5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ...

  4. Java Servlet(七):JavaWeb MVC 操作(jdk7+tomcat7+eclipse)

    之前一段时间一直忙于毕业设计,也没有空学习了,本篇继续学习. 本篇将开始学习java web下使用servlet下来操作数据库,并展示到界面上的使用方法. 新建工程ServletMvc001. 目录结 ...

  5. Java 字符流实现文件读写操作(FileReader-FileWriter)

    Java 字符流实现文件读写操作(FileReader-FileWriter) 备注:字符流效率高,但是没有字节流底层 字节流地址:http://pengyan5945.iteye.com/blog/ ...

  6. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作

    在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...

  7. 【小白的java成长系列】——java ide 开发工具eclipse的操作

    今天看了一下自己的博客文章,里面的内容还是比較杂的,有好多技术,有好多语言,都没有突出自己的强项,能够说,从博客里面,看不出我究竟是做哪块的..加上今天被授予了博客准专家勋章,自己想了一下,还是得梳理 ...

  8. Java进阶(三十九)Java集合类的排序,查找,替换操作

    Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对 ...

  9. 有关java的引用传递,直接操作对象本身。直接删除BE的value中某值

    HashSet<String> refRegions = BE.get(regionName);    HashSet<String> values = new HashSet ...

随机推荐

  1. CF13C Sequence(DP+离散化)

    题目描述 给定一个序列,每次操作可以把某个数+1-1.要求把序列变成非降数列.求最少的修改次数. 输入输出样例 输入 #1 - 输出 #1 4 输入 #2 输出 #2 1 解题思路 这题是一道非常好题 ...

  2. Linux(ubuntu)软件的安装

    通过apt安装/卸载软件 apt是advanced packaging tool,是Linxu下的一款安装包管理程序 可以在终端中方便的安装/卸载/更新软件包 # 安装软件 sudo apt inst ...

  3. JavaTCP粘包、拆包

    import java.nio.ByteBuffer; import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.ByteBu ...

  4. Bean管理学习笔记

    1.BeanFactory 介绍 1.1 首先什么是Bean? 1.Bean在Spring技术中是基于组件 2.他是Spring容器管理的最基本最常见的单元.在spring的应用场合中,bean可以是 ...

  5. java之单元测试

    这篇主要简单讲下java的单元测试 目录结构如下: 如图,其中1是需要被测试的功能:2是测试模块:3是单元测试需要的引入包: 1. 功能模块1中 Calculator 的代码: package cn. ...

  6. js将文字填充与canvas画布再转为图片

    需求:封装consul服务的webUI: 原因:展示consul的服务信息时,需要嵌套动画,由于其没有内置的icon,所以将服务name放于图片位: 分析:展示信息时采用了卡片式的服务布局,缩放式的服 ...

  7. bootstrap 模态

    <script type="text/javascript" src="js/jquery-ui-custom.min.js"></scrip ...

  8. 导航条按钮的设置UIBarButtonItem

    1.目的 2.代码 // 设置导航栏的按钮 UIButton *leftNavBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35, 35 ...

  9. js 数组 数组 最大值、最小值 算法(转载)

    一:https://www.cnblogs.com/zhouyangla/p/8482010.html 1.排序法 首先我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一个 ...

  10. mysql启动过程

    MYSQL启动过程经过以下顺序 1.mysql读取配置文件的顺序 读取顺序 /etc/my.cnf>/etc/mysql/my.cnf>/usr/etc/my.cnf ~/.my.cnf ...