JAVASE进阶之jdbc(Java Database Connectivity)

JAVASE进阶之jdbc(Java Database Connectivity)

本文章使用的开发工具为idea2020.1.1,JDK为1.8,驱动管理包为mysql-connector-java-5.0.8-bin.jar

1.1.JDBC简介

(作者是这样理解的“SUN公司”为了把程序员当看,不想人程序员学习这么多数据库,所定出一系列的规定),JDBC是什么?JDBC英文名为:Java Data Base Connectivity(Java数据库连接),官方解释它是Java编程语言和广泛的数据库之间独立于数据库的连接标准的Java API,根本上说JDBC是一种规范,它提供的接口,一套完整的,允许便捷式访问底层数据库。可以用JAVA来写不同类型的可执行文件:JAVA应用程序、JAVA Applets、Java Servlet、JSP等,不同的可执行文件都能通过JDBC访问数据库,又兼备存储的优势。简单说它就是JAVA与数据库的连接的桥梁或者插件,用JAVA代码就能操作数据库的增删改查、存储过程、事务等。

1.2.JDBC的工作原理

​ JDBC有什么用?我们用JAVA就能连接到数据库;创建SQL或者MYSQL语句;执行SQL或MYSQL的查询数据库;查看和修改结果记录。

我们思考一下?数据库是由不同生产产商决定的,例如Mysql、Oracle、SQL Server,而如果JAVA JDK不可能说提供对不同数据库的实现吧?还有,JAVA具备天生跨平台的优势,它就提供了JDBC的接口API,具体的实现由不同的生产产商决定。这样,数据库生产产商都根据JAVA API去实现各自的应用驱动,这问题就迎刃而解了。
在这里插入图片描述

1.3.jdbc常用接口

URL

//调用mysql的驱动//mysql端口编号为3306,这里有些情况会链接不了,建议使用127.0.0.1/数据库名?支持中文编码&设置他的字符薇UTF-8&使用安全的链接
private static String url="jdbc:mysql://localhost:3306/autosys?useUnicode=true&&characterEncoding=UTF-8&userSSL=true";

DriverManager //驱动类—用于获取Connection Connection链接对象接口

//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//链接数据库对象=驱动用户.获取链接(链接地址,数据库用户,数据库用户密码)--connection==代表代码数据库里的电脑管理员
Connection connection = DriverManager.getConnection(url, "root", "123456");
		//事务回滚
        connection.rollback();
        //事务提交
        connection.commit();
        //事务自动提交
        connection.setAutoCommit();

Statement //执行SQL对象 prepareStatement()

String sql="select * from autoTables";
//执行SQL语句------执行SQL的对象
Statement statement = connection.createStatement();
//执行任何SQL语句--返回值会进行一个判断,相对于效率变低
statement.execute();
//查询方法(select)--返回一个结果集ResultSet--封装了结果集
statement.executeQuery();
//更新,删除,插入(Update,delete,insert)--返回一个受影响的行数
statement.executeUpdate();

ResultSet 查询结果集对象–封装所有查询结果

要获得指定的数据类型

 //5.执行SQL对象,去执行SQL
 String sql="select * from autoTables";
ResultSet resultSet = statement.executeQuery(sql);//返回结果集,
// 在不知道数据类型的时候使用
resultSet.getObject();
//知道使用以下
resultSet.getString();
resultSet.getInt();
resultSet.getDate();
resultSet.getDouble();

遍历数据,指针

resultSet.beforeFirst();//移动到最前面
resultSet.afterLast();//移动到最后面
resultSet.next();//移动到下一个
resultSet.previous();//移动到前一行
resultSet.absolute();//移动到指定行

释放资源–必须要做

//6。释放链接
resultSet.close();
statement.close();
connection.close();
1.4.jdbc基础链接
package com.Get.demo01;

import com.mysql.jdbc.Driver;
import java.sql.*;
import org.apache.log4j.Logger;

//我的第一个jdbc程序
public class jdbcdemo {
   /**
    * @Author Nil
    * @Date 9:59 2020/5/29
    **/
    private static Logger logger=Logger.getLogger(jdbcdemo.class);
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.用户信息,url
        //useUnicode=true&&characterEncoding=UTF-8&userSSL=true
        //支持中文编码&设置他的字符薇UTF-8&使用安全的链接
        String url="jdbc:mysql://localhost:3306/autosys?useUnicode=true&&characterEncoding=UTF-8&userSSL=true";
        String username="root";
        String pwd="ljl123";
        //3.链接数据库对象
        Connection connection = DriverManager.getConnection(url, "root", "ljl123");

        //4.执行SQL语句------执行SQL的对象
        Statement statement = connection.createStatement();

        //5.执行SQL对象,去执行SQL
        String sql="select * from autoTables";
        ResultSet resultSet = statement.executeQuery(sql);//返回结果
        //遍历,指针
        while(resultSet.next()){
            logger.info("id="+resultSet.getObject("id"));
            logger.info("name="+resultSet.getObject("name"));
        }
        //6。释放链接
        resultSet.close();
        statement.close();
        connection.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值