1.课程介绍
1.介绍JDBC;(理解)
2.使用JDBC完成CRUD(掌握)
3.DAO层介绍(Dao层)(掌握)
4.DAO层实现;(掌握)
5.代码重构;(掌握)
2.什么是JDBC
2.1 JDBC引入
现在目前所学的知识,很散,很乱,很多,但是其实是有条线把所学的知识连接起来。
①HTML,CSS,JS – 前端页面,静态网页;
②Java加强 – 反射,单例,读取资源文件(解除硬编码),测试(JUtil),XML;
1,处理数据
2,执行流程
3,面向对象
③MySQL数据库;
后面所要学习:
JSP+Servlet(会使用反射,单例,注解,XML(存放数据,读取数据,修改数据,删除数据))
Java代码操作数据库的唯一技术:-- JDBC
这两天学习内容:JDBC (会使用单例,读取资源文件,测试)
2.2 持久化介绍
学习JDBC之前,需要了解一个概念----- 持久化
做软件需要保存很多数据,而数据保存到什么地方去?
①保存内存;(问题:一断电就没有了)
②保存到磁盘;(一直都存在,永久)
什么是持久化(persistence):
持久化(persistence):把数据保存到可掉电式存储设备(断电之后,数据还在,比如硬盘,U盘)中以供之后使用。
大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,
而持久化的实现过程大多通过各种关系数据库来完成。 mysql oracle
哪些可以做持久化?
记事本(通过流保存到记事本里面,但是记事本里面删除数据不容易,很少使用),
XML(把数据存在XML,但是XML查找,删除,修改 也是比较麻烦),
数据库(把数据存在数据库,可以直接通过SQL取到,比较容易)
结论:持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中,只是比较麻烦。
要把数据保存到数据库—通过JAVA代码去操作数据库(通过JDBC访问数据库)
在Java中,数据库存取技术只能通过JDBC访问数据库:
JDBC访问数据库的形式主要有两种:
1).直接使用JDBC的API去访问数据库服务器(MySQL/Oracle).
2).间接地使用JDBC的API去访问数据库服务器.(以后学习框架去替换JDBC)
第三方O/R Mapping工具,如Hibernate, MyBatis等.(底层依然是JDBC)
JDBC是java访问数据库的基石,其他技术都是对jdbc的封装.
持久化到数据库的技术,唯一的只有JDBC 其他的所有的实现都是基于jdbc
2.3 JDBC规范介绍
为什么要使用JDBC?
因为把要数据持久化,持久化数据的最好方式就是把数据保存到数据库,而Java要数据保存到数据,就需要使用JDBC;
什么是JDBC?
JDBC(Java DataBase Connectivity(Java数据库的连接)):
是一种用于执行SQL语句(DML,DDL,DQL)的Java API,可以为多种关系数据库(oracle,mysql,SQL server)提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序.
图示解释:
①JAVA 通过 JDBC 访问数据库
②数据库有很多 Mysql,Oracle,SqlServer等 – 不同的数据库由不同的公司开发,所以数据库的内部结构不同,由于内部结构不同,其他的程序操作数据库的方式都不一样,比如操作mysql,需要mysql的方式操作,而操作oracle,需要使用oracle的方式操作;
③JDBC都可以操作这些数据库–怎么做到的?
JDBC是接口,基准,工具-- 说明Java做了一组规范,它本身不实现这组规范。
为什么不去实现规范?
原因:如果需要实现, 则需要写一套Mysql,写一套Oracle,写一套SqlServer,
并且你需要访问MySql,Oracle,SqlServer的源码;
所以它不去实现规范,而且让各大厂商去实现这组规范;
④各大厂商怎么实现这组规范?–写Java代码,这些Java代码JDK中没有,所以它们准备自己的Jar包,所以每种数据库厂商 都需要提供Jar包,这样才能Java代码通过jar包就能访问对应的数据库.
结论:以后我们不管使用哪一种数据库,都需要去导入这个数据库给我们提供的jdbc实现的jar包;
2.3.1 JDBC版本介绍
JDBC的版本:
JDBC隶属于JavaSE的范畴,伴随着JavaSE的版本升级.
Java分成3块 -JavaSE(基础),JavaME,JavaEE
为什么不直接学习JaveEE?
不管学习JavaME还是JavaEE,都必须先学习JavaSE;
JDBC的API在哪里?
①JDK的API中. java.sql包装的就是JDBC的API.
②各大数据库厂商就会对JDBC的API提供实现类.—>(jar包)驱动包
2.4小结
1.什么是JDBC
JDBC是接口 是规范,本身sun公司没有实现 需要各大数据库厂商实现;
2.持久化概念
把数据保存到可掉电的设备里面存储;
3.JDBC版本认识
3.使用JDBC完成CRUD
3.1 获取数据库连接
3.1.1 第一步:导包
3.1.2 第二步:注册驱动
知道驱动的单词Driver 就可以开始了
操作数据库之前,第一步:注册驱动
什么是驱动:操作系统要用电脑上面的硬件(声卡,显卡,网卡),必须安装注册驱动,
现在很多操作系统,自动集成了各种万能驱动,简单理解,一个东西操作另外一个东西,需要驱动,就比如说 进入一个门,需要钥匙一样;
因此,Java要操作数据库,也需要注册驱动,这样才能建立联系
结论:必须注册驱动,Java才能和数据库建立联系;
怎么注册驱动?
==通过Driver – DriverManager(驱动管理) ==
能通过new DriverManger() 注册一个驱动吗?
new DriverManger()没有用,因为DriverManger 里面的方法全是静态的;
通过registerDriver(Driver driver)方法 向DriverManger注册给定驱动程序
代码:
//创建一个mysql驱动 Driver driver = new com.mysql.jdbc.Driver(); //注册mysql驱动 DriverManger.registerDriver(driver)
已经注册了驱动
②建驱动
②注册驱动
方式二:注册驱动:
Class.forName(“com.mysql.jdbc.Driver”) 使用反射注册mysql驱动;
拿到类的方法 – 注册驱动
源码: – static 静态代码块,只有类加载的时候,就执行,并且只执行一次;
@Test public void testCreate() throws Exception { // 注册驱动 //Class.forName("com.mysql.jdbc.Driver"); Driver driver=new com.mysql.jdbc.Driver(); DriverManager.registerDriver(driver); Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); // System.out.println(connection); Statement statement = connection.createStatement(); String sql = "create table employee (id int(8) ,name varchar(20),sex int(2))"; statement.executeUpdate(sql); // 事:关闭事物 statement.close(); connection.close(); }
javaweb实训第四天上午——JDBC入门(2)https://developer.aliyun.com/article/1414843?spm=a2c6h.13148508.setting.46.6e1a4f0eQzpjQW