首页 > 编程语言 >Java的JDBC编程

Java的JDBC编程

时间:2024-05-31 18:30:51浏览次数:26  
标签:JDBC Java MysqlDataSource 数据库 编程 dataSource statement

 博主主页: 码农派大星.

    数据结构专栏:Java数据结构

 数据库专栏:MySQL数据库

关注博主带你了解更多数据结构知识


1. Java的数据库编程:JDBC

数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提 供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。

JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是 Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java 开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。

MySQL Connector Java下载链接

2. JDBC工作原理

JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包 含一些通用的接口类。

JDBC访问数据库层次结构:

JDBC优势:

Java语言访问数据库操作完全面向抽象接口编程

开发数据库应用不用限定在特定数据库厂商的API

程序的可移植性大大增强

3. JDBC使用

3.1准备数据库驱动包,并添加到项目的中:

在项目中创建文件夹lib,并将依赖包mysql-connector-java-5.1.47.jar复制到lib中。再配置该jar 包到本项目的中:

先选中lib,再Ctrl+v,再点击ok即可.

然后再右键lib,点击Add as library,最后点击ok即可.

此时添加完 "库" 之后,idea就能分析出jar包里有什么.

3.2创建数据源对象

 DataSource是Java标准库JDBC自带的一个接口,不能直接new,只能new它的子类

还要给这个对象创建必要的属性 :

1)数据库服务器在哪里

2)访问服务器账户是什么

3)访问服务器账户密码是什么

这几个部分都是子类具有

DataSource本身没有相关方法和属性.

DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl();
        ((MysqlDataSource) dataSource).setUser();
        ((MysqlDataSource) dataSource).setPassword();

        MysqlDataSource dataSource1 = new MysqlDataSource();
        dataSource1.setUrl();
        dataSource1.setUser();
        dataSource1.setPassword();

这里只是针对数据源对象初始化做的一些准备工作,并没有真正与数据库服务器进行网络通信.

3.3 和数据库服务器进行网络连接

  Connection connection = dataSource.getConnection();

3.4 构造SQL语句

//让用户输入id和name
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入id: ");
        int id = scanner.nextInt();
        System.out.println("请输入name: ");
        String name = scanner.next();
 String sql1 ="insert into student values(?,?) ";

        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1,id);
        statement.setString(2,name);

我们也可以手动输入来插入数据 

 String sql ="insert into student values(1,'张三') ";
        PreparedStatement statement = connection.prepareStatement(sql);

3.5把SQL语句发送到服务器上执行

int n = statement.executeUpdate();

3.6释放上述资源

statement.close();
        connection.close();

总结:

在实际开发中JDBC一般不会使用,因为写起来比较麻烦,后来就有了很多库和框架,针对JDBC进行封装和简化.

后续会带来MyBaits框架,就是针对JDBC简化后的组件.

标签:JDBC,Java,MysqlDataSource,数据库,编程,dataSource,statement
From: https://blog.csdn.net/jj666mhhh/article/details/139352895

相关文章

  • java多态——向下转型
    引入前面我尝试了一下这个代码packageb;publicclassmain_{ publicstaticvoidmain(String[]args){ //向上转型,父类的引用转向了子类的 father_animal=newgraduate(); Objectobj=newgraduate(); System.out.println(animal.name); System.out.print......
  • JavaScript语法(二):你知道哪些JavaScript语句?
    我们在上一节课中已经讲过了JavaScript语法的顶层设计,接下来我们进入到更具体的内容。JavaScript遵循了一般编程语言的“语句-表达式”结构,多数编程语言都是这样设计的。我们在上节课讲的脚本,或者模块都是由语句列表构成的,这一节,我们就来一起了解一下语句。在JavaScrip......
  • JavaScript语法(四):新加入的**运算符,哪里有些不一样呢?
    上一节我们已经给你介绍了表达式的一些结构,其中关于赋值表达式,我们讲完了它的左边部分,而留下了它右边部分,那么,我们这节课一起来详细讲解。在一些通用的计算机语言设计理论中,能够出现在赋值表达式右边的叫做:右值表达式(RightHandSideExpression),而在JavaScript标准中,规定了在等......
  • JavaScript执行(四):try里面放return,finally还会执行吗?
    在前面几篇文章中,我们已经了解了关于执行上下文、作用域、闭包之间的关系。今天,我们则要说一说更为细节的部分:语句。语句是任何编程语言的基础结构,与JavaScript对象一样,JavaScript语句同样具有“看起来很像其它语言,但是其实一点都不一样”的特点。我们比较常见的语句包括......
  • JavaScript执行(三):你知道现在有多少种函数吗?
    在前一篇文章中,我们大致了解了执行上下文是什么,也知道了任何语句的执行都会依赖特定的上下文。一旦上下文被切换,整个语句的效果可能都会发生改变。那么,切换上下文的时机就显得非常重要了。在JavaScript,切换上下文最主要的场景是函数调用。在这一课,我们就来讲讲函数调用切换......
  • 采用java18+vue语言+springboot开发的家政上门服务平台源码,(平台管理端+用户端+服务端
    采用java18+vue语言+springboot开发的家政上门服务平台源码,(平台管理端+用户端+服务端全套源码)家政管理平台系统是运用现代计算机和网络技术,集信息网、服务网为一体,对社区家政需求信息汇集整理、综合处理,发挥信息介绍、组织服务、资源共享的作用,向社区居民提供优质服务的网络......
  • 第二站:Java蓝——集合框架的深邃海洋
    Java蓝——集合框架的深邃海洋在Java的多彩旅程中,第二站“Java蓝”引领我们深入探索集合框架的深邃海洋。集合框架是Java提供的一套设计良好的API,用于存储、操作和管理数据集合,如列表、集合、映射等。它以高度抽象的方式,为开发者提供了极大的灵活性和高效的数据处理能力。下面......
  • JAVA基础_基本运算
    算数运算符操作符说明举例+加法:相加运算符两侧的值inta=10,b=20;(a+b等于30)-减法:左操作数减去右操作数inta=10,b=20;(a-b等于-10)*乘法:相乘操作符两侧的值inta=10,b=20;(a*b等于200)/除法:左操作数除以右操作数inta=10,b=20;(b/a等于2)%取余:左操作数除以右操作数的余数inta=10,......
  • java数据list写入文件
    /***生成数据文件**@paramdata数据*@paramfileName文件名*@return数据文件对象*@throwsIOException*/privateFilegenerateDataFile(List<List<String>>data,StringfileName)throwsIOException{......
  • 《Java练习题》Java编程题合集(全)
    《Java练习题》Java编程题合集(全) 前言:不仅仅要实现,更要提升性能,精益求精,用尽量少的时间复杂度和空间复杂度解决问题。初学者:《Java练习题》习题集一  https://www.cnblogs.com/jssj/p/11147566.html《Java练习题》习题集二  https://www.cnblogs.com/jssj/p/1122235......