【学习记录】Windows下IDEA平台使用JDBC对MYSQL数据库编程

本文涉及的有帮助的参考博客

整个JDBC的代码学习参考了JAVA核心编程卷Ⅱ以及下面这篇博客

JDBC介绍

在使用MySQL的时候出现的相关问题的处理方法

mysql忘记密码的处理
Windows安装MySql时出现“Failed to find valid data directory”的错误
mysql.infoschema@localhost does not exist

JAVA数据库编程

本文主要记录了如何在windows环境的IDEA平台使用jdbc访问本地的mysql服务器。

一、环境配置

1、MySQL服务

  最常使用的是MySQL8.0版本和MySQL5.7版本。若未安装的可以根据网上的教程下载安装,下载地址如下:
  https://dev.mysql.com/downloads/
  安装好数据库后,考虑到是在本地使用的情况,还未实现远程连接,故ip地址可以不记(使用localhost即可),主要记住安装时使用的端口号,忘记了的可以通过在mysql使用SQL语句查询。
  具体步骤:登入mysql->输入"use mysql;"切换到mysql数据库->输入"SHOW VARIABLES WHERE VARIABLE_NAME=‘port’;"即可查看端口号。
在这里插入图片描述

2、相关jar包

  需要使用到mysql-connector-java.jar包,下载地址如下
https://mvnrepository.com/artifact/mysql/mysql-connector-java
  下载完毕后,在对应的IDEA项目下,添加一个目录,命名为lib,并设为Resources Directory,将下载得到的jar包放入该目录下,并右击该jar包,将其"add as library"。具体步骤如下图所示:
  创建目录
在这里插入图片描述
  将lib目录设为Resources Root
在这里插入图片描述
  将添加的jar包加入到library
在这里插入图片描述
  至此基本的配置已基本实现,接下来可以进行编程了。

二、JAVA程序框架

1、连接

(1)三个基本参数:URL、USERNAME、PASSWORD

  首先要通过java与本地的数据库建立起连接。连接会调用DriverManager类下的getConnection()方法,该方法返回一个Connection对象,这个对象将代表我们所建立的连接。调用getConnection方法,需要用到三个参数:url、username、password。
  url:这是有固定格式的,使用jdbc连接数据库,其url满足特定的格式,为
  jdbc:subprotocol:other stuff  
  subprotocol:用于选择连接到数据库的具体驱动程序。other stuff:随subprotocol不同而不同。
  对于mysql,url的格式为:
  jdbc:mysql://ip:port/db_name?parameter1=value1&parameter2=value2&…
  ip:所连接数据库服务器所在主机的ip,由于是连接本地的mysql服务器,可以为localhost。port:数据库监听的端口。db_name:所访问的数据库的名字。parameter:需要传入的参数。
  而username我们在此处使用root,password则是个人设置的。

(2)注册驱动器类

  这个许多JDBC的JAR文件会自动注册,对于需要手动注册的,可以输入
  Class.forname(strings); //strings:为驱动器类名
  即可实现驱动器类的注册。
上述(1)、(2)部分的代码如下所示:

        // 1.连接驱动类
        Class.forName("com.mysql.cj.jdbc.Driver");
        //驱动类的名字一般都是固定的
        // 2.获取连接
        // 数据库用户名
        String username = "root";
        // 数据库密码
        String password = "******";//填自己设定的password值
        String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai";
        Connection conn = DriverManager.getConnection(url,username,password);

2、SQL语句编写与发送

  主要的步骤就是:将所需要使用的SQL语句在代码中定义或者交互式地有使用者输入进来,主要是将相应的SQL语句定义为字符串,然后定义一个Statement对象,再调用executeQuery或executeUpdate方法将该语句发送到数据库服务器,并执行语句,再根据需求来决定是否处理返回的结果集。
  代码部分如下(不涉及处理结果集的):

        // 3.准备发送SQL
        String sql = "insert into t_person values(null,'Adair',25,'T','1383838381','硅谷');";
        PreparedStatement pstm = conn.prepareStatement(sql);
        // 4.发送执行SQL
        int update = pstm.executeUpdate();
        // 5.(如果是查询语句,需要处理结果集)
        // 6.关闭资源
        pstm.close();
        conn.close();

  涉及处理结果集的代码如下:

        String sql="select * from t_person";
        PreparedStatement pstm=conn.prepareStatement(sql);
        ResultSet rs =pstm.executeQuery();
        while(rs.next()){
            int personId1=rs.getInt("person_id");
            String personName1=rs.getString("person_name");
            int age1=rs.getInt("age");
            String sex1=rs.getString("sex");
            String mobile1 = rs.getString("mobile");
            String address1 = rs.getString("address");
            System.out.println("personId="+personId1+",personName="+personName1
                    +",age="+age1+",sex="+sex1+",mobile="+mobile1+",address="+address1);
        }
        rs.close();
        pstm.close();
        conn.close();

  分析:
  1、结果集的处理与否
  ·这取决于所输入的SQL指令,是否存在返回结果的情况。同时对于是否存在结果集这一事件,执行SQL语句调用的方法也需要注意:executeUpdate()方法不能用于会返回结果集的SQL语句,此时只能用executeQuety()方法
  2、结果集的处理方式
  ·当调用executeQuery()方法发送SQL语句,并存在返回的结果时,该方法会返回一个ResultSet类型的对象,对于此对象我们只能调用next()方法一条条地处理返回结果集中的表项。
  3、关于Statement还是PreparedStatement
  ·可以上网去搜索相关的知识。

之前朋友有个大作业,需要微信小程序模块,而微信小程序模块中调用数据时,需要访问数据库,那时候还没学jdbc这个东西,现在回想或许可以用jdbc访问本地数据库以实现传输数据到微信小程序的功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值