JDBC 学习总结(Idea实现)

目录

前言

一、JDBC是什么?

二、JDBC编程步骤

(1)设计理念

(2)准备工作

(3)打开Idea

(4)代码部分步骤

三、总结




前言

本文记录了笔者通过对JDBC的学习,实现了java连接数据库,同时完成了对数据库数据的一些简单操作,代码以经过笔者验证,新手第一篇,欢迎大佬批评指正。



一、JDBC是什么?

JDBCJava DataBase Connectivity)Java数据库连接技术,它是java和数据库之间的一个桥梁,我们可以通过它连接各种不同的数据库,执行SQL(DML,DDL)语句。它可以理解为SUN公司制定的一套用Java连接数据库执行SQL语句的规范,而不是一个实现。(本篇文章代码都是针对SQLserver实现的)



二、JDBC编程步骤


(1)设计理念

java要想连接数据库,需要使用SUN的JDBC规范,但是SUN公司并没有提供JDBC连接各个数据库的实现,而是需要各个数据库厂商来完成,根据他们自己的数据库打造对应的实现接口

名称 类型        说明

Driver

接口 用来表示驱动程序类
Connection 接口 此接口用于连接数据库
Statement 接口 执行SQL语句并将数据检索到ResultSet中
ResultSet 接口             数据库结果集数据表,通常由执行查询数据库语句产生
PrepareStatement 接口 执行预编译SQL语句
DriverManager 驱动程序管理器,通过它来得到连接对象
CallableStatement 接口 用来执行存储过程

关系图:

JDBC 学习总结(Idea实现)_第1张图片


 


(2)准备工作

到对应数据库官方网站上下载驱动程序jar包,该jar包整合了所属数据库公司制作的JDBC接口的实现类(这里以SQLserver为例)

(3)打开Idea

JDBC 学习总结(Idea实现)_第2张图片 File->project Structure

                             

 

 

 

 

JDBC 学习总结(Idea实现)_第3张图片 选择Libraries,点击+号,添加下载的jar包

 

 

JDBC 学习总结(Idea实现)_第4张图片 选择上图中的Mudule,点击本图中的+号,选中刚刚添加的jar包,来为当前选中的项目添加驱动

 

 

最后点击确定,ctrl+N 输入SQLserverConnection,如果成功搜索到SQLserverConnection接口以及它的实现类,恭喜你添加成功

(4)代码部分步骤

1、加载驱动程序Class.forName("驱动程序类包名+类名")

        a)静态方法,类名.方法名

        b)抛出编译时异常ClassNotFoundException(alt+enter错误代码解决方案)

2、建立连接Connection  DriverMananger.getConnection(url)

        a)Connection con = DriverMananger.getConnection(url,uerName,pwd)

        b)抛出一个编译时异常SQLException(调用java.sql包中的任何一个方法都会抛出编译时异常SQLException)

        c)url统一资源定位符jdbc:type//ip:port;databaseName=dbName(localhost)

3、创建Statement对象 con.createStatement()

        a)执行sql:

       写一个sql语句用于测试: String sql = "delete from teacher where teanum = '12345678'";

        int 影响行数 = sta.executeUpdate(sql);

4、关闭资源

        a)关闭资源顺序与创建资源顺序相反

        b)当一个对象没有指向它的任何引用时,就是垃圾资源

package com.ming;

/*使用
1、得到对应数据库的驱动程序jar包
    (1)官网下载 mysql jdbc driver download
    (2)解压
2、模块引用jar包
    (1)项目建立libraries project structure->libraries->添加
    (2)模块引用libraries project structure->modules->添加lib

 */

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

public class TestJDBC {
    /*
    1、加载驱动程序
    Class.forName("包名+类名");
    (1) 驱动程序类一定实现了java。sql。driver
    (2) Class。forName()静态方法
    (3) 会抛出一个编译时异常ClassNotFoundException
    (4) 会去DriverManager那注册
    2、建立连接 ip地址:端口号(port);databaseName userName pwd
    (1)URL(统一资源定位符)
    (2)getConnection()静态方法
    (3)抛出编译时异常SQLException
        调用java。sql包中的任何一个方法都会抛出编译时异常SQLException
    3、创建Statement对象
    4、执行sql(DML insert update delete/ select)
        int executeUpdate(insert update delete )sql语句影响的行数
        ReultSet executeQuery(select)

     */
    public static void main(String[] args) {
        Statement sta = null;
        Connection con = null;
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=PAS";
            con = DriverManager.getConnection(url,"sa","610521");
            System.out.println(con);
            sta = con.createStatement();
           // String sql = "insert into teacher (teanum, teaName, teatitle, teatypeid, teabtd, pwd, static) values ('12345678', '刘伊茗', '教授', 1, '1981-7-5', 1, 1)";
            String sql = "delete from teacher where teanum = '12345678'";
            int rows = sta.executeUpdate(sql);
            if(rows==1){
                System.out.println("操作成功");
            }else{
                System.out.println("操作失败");
            }


        } catch (ClassNotFoundException e) {
            System.out.println("驱动程序加载失败");
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            try {
                if (sta != null){
                    sta.close();
                    sta = null;
                }
                if (con != null){
                    con.close();
                    con = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

三、总结

本文只涉及java连接数据库进行增删改操作,查询操作暂时没有涉及到

你可能感兴趣的:(数据库,java,intellij,idea,jdbc)