如何创建一个JDBC程序(IDEA版)

在学习Java的过程中我们必然会接触到JDBC的使用,我也和大家一样,刚开始学习JDBC,JDBC虽然很少使用,但是将来学习的大多操作也是对JDBC代码的封装而已。
此篇文章用于记录初学JDBC的一些坑和知识。
使用工具——IDEA2019、MySQL8.0.19

第一步,你需要按照惯例,创建一个Java程序。

在这里插入图片描述
第二步,我们在这个类里新建一个方法,暂时命名它为getCon();

public static void getCon(){}

第三步,在getCon方法里完成四个步骤:注册驱动——建立连接——创建语句——执行语句——处理结果。

我们先来看看如何注册驱动
关于MySQL的jar包导入请看:查看CSDN博客

注册驱动有很多种方法,我们这里选择Class类的这种方法

Class.forName("com.mysql.cj.jdbc.Driver");

如果你使用的是MySQL5.0系列的版本,forName();中内容改为

com.mysql.jdbc.Driver

下面是创建连接

//设置数据库的地址  支持汉字 设置编码
String url = "jdbc:mysql://localhost:3306/1.3test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
//url格式:JDBC:子协议:子名称(mysql无子名称)//主机名:端口号/数据库名?属性名=属性值&……
//jdbc:mysql:///mysql111意为本机的数据库名为mysql111
String user="root";//用户名
String password = "root123";//用户密码
//一般JDBC和数据库不在一台电脑上,所以这里的localhost:3306就是根据TCP/IP协议来连接数据库的地址,只不过这里的localhost是本机地址而已。
//最后把这三个参数传入函数getConnection();
Connection conn = DriverManager.getConnection(url, user, password);

下面是创建语句

 //创建语句
 Statement st = conn.createStatement();

下面是执行一个SQL语句(这里建议先写查询测试)

//执行语句
ResultSet rs = st.executeQuery("SELECT * from `s`");

最后,处理查询出来的结果

 while(rs.next()){//也可以用列名如getObject("SNAME");//getObject(n);n为列数(n从1开始而非0开始),getObject(n);中Object应该和数据库表对应列相关
                System.out.println("S#="+rs.getObject("S#"));
                System.out.println("SNAME="+rs.getObject("SNAME"));
                System.out.println("SEX="+rs.getObject("SEX"));
                System.out.println("AGE="+rs.getObject("AGE"));
                System.out.println("D#="+rs.getObject("D#"));
                System.out.println("-------");
                }
            //释放资源//注意顺序从后到前
rs.close();//必关
st.close();//必关
conn.close();//必关

注意最后注释“必关”的三句代码,是释放刚刚申请的资源的,也是必须有的。

然后就可以调用了。

public class Demo01 {
	    public static void main(String[] args) {
	        getCon();
	    }
    }

下面是完整代码(try/catch部分因为整体才能体现,所以未在上面指出)

package com.wz.www;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * 我的第一个JDBC程序
 */
public class Demo01 {
    public static void main(String[] args) {
        getCon();
    }
    public static void getCon(){
        try {
            //注册驱动
			Class.forName("com.mysql.cj.jdbc.Driver");            
			//建立连接
            //1.3test是数据库名,而mysql111是连接名
            String url = "jdbc:mysql://localhost:3306/1.3test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";//设置数据库的地址  支持汉字 设置编码
            //url格式:JDBC:子协议:子名称(mysql无子名称)//主机名:端口号/数据库名?属性名=属性值&……
            //jdbc:mysql:///mysql111。意为本机的数据库mysql111
            String user="root";//用户名
            String password = "root123";//用户密码
            //一般JDBC和数据库不在一台电脑上,所以这里的localhost:3306就是根据TCP/IP协议来连接数据库的地址,只不过这里的localhost是本机地址而已。
            Connection conn = DriverManager.getConnection(url, user, password);//使用mysql驱动当中的连接数据库的API//尽量晚的去做这一步,用于减轻数据库负担
            //创建语句
            Statement st = conn.createStatement();
            //执行语句
            ResultSet rs = st.executeQuery("SELECT * from `s`");
            //处理结果
            while(rs.next()){
                //也可以用列名如getObject("SNAME");//getObject(n);n为列数(n从1开始而非0开始),getObject(n);中Object应该和数据库表对应列相关
                System.out.println("S#="+rs.getObject("S#"));
                System.out.println("SNAME="+rs.getObject("SNAME"));
                System.out.println("SEX="+rs.getObject("SEX"));
                System.out.println("AGE="+rs.getObject("AGE"));
                System.out.println("D#="+rs.getObject("D#"));
                System.out.println("-------");
            }
            //释放资源//注意顺序从后到前
            rs.close();//必关
            st.close();//必关
            conn.close();//必关
        }
        catch(Exception e) {
            e.printStackTrace();//异常处理
        }
    }
}

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君去何方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值