欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java通过jdbc连接数据库

程序员文章站 2022-05-18 19:36:22
...

1、什么是jdbc

  1. jdbc(Java DataBase Connectivity)一种用于执行SQL语句的Java API
    简单的概括来说,就是java外拓的功能包,你可以通过调用它创建访问对象,通过创建、使用jdbc所提供的对象,进行传递sql语句来实现对于数据库的增删改查。

  2. 怎么使用jdbc
    由于jdbc(功能包)是java自身的jdk中所没有的,所以我们需要去官网下载jdbc这个Java拓展包。
    下载完成后:

    1. 在项目中导入该拓展包

      具体操作:
      -》将下载完成的包放置项目目录下,为了方便管理这里建议创建一个lib的folder文件夹来管理各种java的外部包
      -》右击该jdbc的jar包,选中Build Path(创建引用路径) 点击Add to BuildPath,即可完成能使该项目使用jdbc驱动(调用jdbc中所提供的类,使用方法)

    2. jdbc连接数据库(测试)
      src文件目录下创建class,编写入口函数main( public static void main(String [] args) )
      -》使用反射获取jdbc驱动(验证jdbc驱动包是否存在?)

      Class.forName(“com.mysql.cj.jdbc.Driver”);(编者这里用的是8.0的jdbc版本,如果是5.7及以下的版本驱动类名则为"com.mysql.jdbc.Driver")

      -》创建数据库连接对象 Connection conn
      此处的操作与正常连接数据库一致,不过数据库所在的地址要自己填写

      Connection conn = DriverManager.getConnection(url,username,password);
      String url = "你的mysql数据库地址";
      

      比如:

      		   String url = "jdbc:mysql://localhost:3306/**ishop**?**characterEncoding=utf8**&**serverTimezone=GMT%2B8**&useSSL=false";
      

      注意!
      由于我使用的是8.0版本的jdbc驱动,所以填写连接地址时,必须规定mysql的时区,即serverTimezone=GMT%2B8,ishop是我的数据库名,characterEncoding=utf8规定数据库传递数据的编码为utf-8

    3. jdbc操作数据库
      -》上步操作完成后一个conn数据库的连接对象便被我们获取到了,接下来即是创建Statement对象来创建数据库操作平台对象来实现对sql语句的接收,数据库数据的查询,数据库数据的反馈。

        Statement state = conn.createStatement();
        String sql = "输入你想要执行的sql语句";
      

      此处,state调用的方法不同,其执行的sql返回数据也不同
      执行select查询语句时,使用executeQuery方法,即:

       state.executeQuery(sql);
      

      它所返回的是一个ResultSet对象,它所保存了我们所要查询的所有信息,所以我们要创建一个ResultSet对象去接收它,这里我创建的对象为rs。
      对于rs对象,我们要使用它当中的next方法去遍历它的每一行数据,由于每一次的next执行后,它所对应的数据都是指向下一行,所以我们这里要使用while循环来遍历它的每一行数据。即:

       	while(rs.next()){
       		//如果你的查询结果第一列为int 类型的数据
       		rs.getInt(1);
       		//如果你的查询结果第二列为String类型的数据
       		rs.getString(2);
       		//....依次类推
       		总结而言,在第几列,获取到的是什么类型的数据就输入
       		rs.get(数据类型)(第几列)
       	}
      

      sql语句为添加、修改、删除时:
      均使用

      state.executeUpdate(sql);
      

      其返回值均为int 类型的数据,来反馈执行的sql语句影响了数据库中多少行数据

至此,Java通过jdbc对于数据库的简单操作就完成了,有什么理解有误的地方望指出、交流