写点什么

JDBC 数据库链接的那些事

用户头像
卢卡多多
关注
发布于: 1 小时前
JDBC数据库链接的那些事

1.关于 JDBC:

本质是 java 连接数据库使用的 Api,


三个 w:


 ①what:

java Database Connectivity:  数据库的连接技术;

   java 语言的连接数据库的技术(别的语言也可以;)

jdbc:sun 公司的对于数据库连接的公共接口;

②how:

所有的数据库的增删改查,都是在利用的是 SQL 语句来实现,

这些所谓的 SQL Server 和 MySql,以及和这个 ORACLE,

  1.都是数据库的管理系统(DBMS)--通过区域来管理数据,

 2. 操作数据的是 ----->SQL

3.  数据库的可视化工具:--->SQL loy,navicat,等

  这些可以可视化工具,不用和 cmd 的 doc 环境下去写命令连接, 可以实例化的操控,但是实现还是 SQL 语句,建表,就可以实际操 作;

4.将这些数据取出,去使用这些数据,必须要从这个数据仓库中去连接,快递去取,这个连接,(在 java 程序上,就是 jdbc)


③why:为什么要有这个 jdbc;

sun 公司制定出接口,(连接的方法,连接的准备什么的)

各个 DBMS 去,根据自己的产品去实现类,去实现连接的(驱动类)

这个驱动类,说白了就是讲 sun-java 制定接口,(use 的),但是众多的手机厂商,去传输数据的,(去由这个手机厂商去制定实现这个接口,通过这个 usb 获取连接)

如何使用的是 java 程序员应该是根据这个公共接口,面向接口编程,

但是要运行的时候,要驱动类去连接;


2.JDBC:


jDBC 中的这些公共的接口和 DBMS 的实现类(驱动 jar),都为了实现 java 代码可以连接 DBMS,并且操作它里面的数据而声明的

(java)--->Sql-->某个数据库-

但是连接的任务---就是驱动类;底层实现的;

包:java.sql 包和扩展包 javax.sql 包

常用的接口:

 ①Connection:连接

 ②Statement 和 PreparedStatement:增删改查:

③ResultSet:接受和处理查询结果--结果集

常见的辅助的类:

①DriverManager:驱动管理类


3.JDBC 的连接步骤:


   ①注册驱动类:(导包 mysql-connection-5.0.8.jar)

    这里,要是没有注册驱动,编译不会报错误,运行时会报错误,

②连接数据库:

  Connection 的接口和 DriverManager 的驱动管理;

③数据库的操作:

      -----增删改: Statement 或者是 PrepareStatement

       -----查询:(会有结果)Statement 或者是 PrepareStatement

   加上 ResultSet 的接口;

④关闭数据库的连接:

 关闭资源:

  各种关闭:


package day_29JDBC.atguigui;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import org.junit.Test;
/* * 实例化操作JDBC的对象,并且得到JDBC的连接对象; * 要点一:注册驱动:加载到内存(导jar包之后,加载内存忠的Driver的驱动类) * 要点二:连接数据库:连接数据库url---getConnection的方法; * 要点三:操作:增删该查; * 先要创建这个Statement接口的对象 * 然后是excuteUpate(sql)的一个方法 * * 要点四:关闭资源:st.close(); * connection.close(); * */public class JdbcConnection {

@Test//单元测试junnit---方法前面加上的是public,到junit就不用啦; public void connection() throws Exception{ /* * 未注册驱动的错误 * java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/storebook4 * * 数据库名写错误: * com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'storebook4' * * mysql的异常: * java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) * 这个是密码和账户名错误引起的; * * 其中这个主机号或者端口号错误:(连接错误) * Communications link failure due to underlying exception: * * */ //1.注册驱动: /* * 三部曲: * 首先,将mysql-connection的jar导进来; * 将这个jar如添加到运行的类中;build path一下; * 将这个类--加载到内存中,(注册) * * * * */ //注册驱动将驱动,加载到内存; Class.forName("com.mysql.jdbc.Driver"); /*类加载的方式---将Driver---全类名---要用这个类去注册驱动 * com.mysql.jdbc.Driver---在我们添加的mySql-Connection的jar包中的 * */ //2.建立连接, /* <☆>通过DriverManager的getConnection的方法获取连接 * ①获取连接到url- * url:统一资源定位符--(网址),通过这个可以确定, * 哪个电脑上的,哪个DBMS软件;在哪个主机号和端口号启动: * * url的格式:协议:dbms的名字://主机号:端口号/资源路径 * * 比如在写这个Tomcat的时候,虚拟路径,以及启动的是; * Http://localhost:8080:/路径名(hello.html) * http://localhost:8080/day05_Tomcat/hello.html * * DriverManager.getConnection(url, user, password) * * */ String url="jdbc:mysql://localhost:3306/bookStore4"; Connection connection = DriverManager.getConnection(url, "root", "123456"); /* * Connection是一个接口,接口类型的,后面是DriverManager创建的实现类 * * */ System.out.println(connection);//获取的connection的对象 //com.mysql.jdbc.Connection@4361bd48 System.out.println(connection.getClass());//获取的是运行时类型 //class com.mysql.jdbc.Connection //3.操作数据库: /* * 增加,用的接口是Statement,然后用这个对象去upadate; * ①创建Statement接口的createStatement 的对象(注意这个接口的包是import java.sql.Statement;) * Statement st=connection.createStatement(); * * * */ Statement st=connection.createStatement(); //去执行这个sql语句 String sql="INSERT INTO lable VALUES(3,'微博')"; int count=st.executeUpdate(sql); //这里为了验证成功,这个executeUpdate(sql)的方法返回值是一个整数, //数据库中经过会遇见,添加之后,几行受到影响;这就是哪个数值 System.out.println(count>0?"添加成功":"添加失败"); /* * *com.mysql.jdbc.Connection@36aa7bc2 *class com.mysql.jdbc.Connection *添加成功 * * */ //4.关闭连接: st.close(); //关闭这个增删改的对象 connection.close();//关闭连接 } }
复制代码


发布于: 1 小时前阅读数: 6
用户头像

卢卡多多

关注

努力寻找生活答案的旅途者 2020.04.12 加入

公众号:卢卡多多,欢迎一起交流学习

评论

发布
暂无评论
JDBC数据库链接的那些事