咱们有时须要更换数据库,应用程序跨平台也是常常的需求,JDBC基本上就是用来解决这些问题的。JDBC是Java联机数据库的标准规范。具体而言,它定义了一组标准类与接口,应用程序须要联机数据库时调用这组标准API,而标准API中的接口由数据库厂商操做,一般称为JDBC驱动程序。
html
JDBC标准主要分为两个部分:JDBC应用程序开发者接口以及JDBC驱动程序开发者接口。若是应用程序须要联机数据库,就是调用JDBC应用程序开发者接口,相关API主要在java.sql
与javax.sql
两个包中,JDBC驱动程序开发者接口是数据库厂商操做驱动程序时的规范。
java
java.sql.DataSource
接口中,实际如何取得Connection则由操做接口的对象来负责。Connection是数据库链接的表明对象,接下来要执行SQL的话,必须取得java.sql.Statement
操做对象,它是SQL描述的表明对象。java.sql.PreparedStatement
。可使用Connection的PreparedStatement()方法创建好预先编译的SQL语句,当中参数会变更的部分,先指定“?”这个占位字符。在JDBC里要表示日期,是使用java.sql.Date
,其日期格式是“年、月、日”,要表示时间的话则是使用java.sql.Time
,其时间格式为“时、分、秒”,若是要表示“时、分、秒、微秒”的格式,你可使用java.sql.Timestamp
。mysql
javax.sql.rowset
包中。java.lang.Class
的实例表明Java应用程序运行时载入的.class文档,Class类没有公开(public)构造函数,实例是由JVM自动产生,能够经过Object的getClass()方法,或者是透过.class常量取得每一个对象对应的Class对象。ClassNotFoundException
异常。Class对象加载的.class文档,取得Class对象后,就能够取得.class文档中记载的信息,每一个类型都会有对应的类型,若是事先不知道类名称,能够利用Class.forName()动态加载.class文档,取得Class对象以后,利用其newInstance()方法创建类实例。git
Bootstrap Loader、Extended Loader与System Loader在程序启动后,就没法再改变它们的搜索路径。若是在程序运行过程当中,打算动态决定从其余路径加载类,就要产生新的类加载器,新的类加载器创建后,父加载器会设为System Loader。sql
若是B是A的子类,而Node(B)可视为一种Node(A),则称Node具备逆变性。Java泛型并不支持逆变性,可使用类型通配字符?与super来声明,以达到相似逆变性的效果。数据库
定义enum时能够自定义构造函数,条件是不得为公开(public)构造函数,也不能够在构造函数中调用super(),定义enum时有个特定值类本体语法,可用于操做接口或从新定义父类方法。网络
Java提供了一些标准注释,咱们常常看到的@Override就是标准注释。举个例子来讲,如今有Son和Parent两个类,且类型Son将会重写类型Parent的getName函数,可是因为咱们的马虎,一不当心写成了下面的代码:less
public class Parent{ public String getName(){ return "Parent"; } } public class Son extends Parent{ public String getNames(){ return "Son"; } }
当咱们用上@Override注释时,就不会再发生这样的问题,子类函数添加 @Override 后,该函数重写父类中签名相同的函数,不然将会编译失败。ide
一开始运行代码,发现抛出异常:
函数
进入下载页面以后找到JDBC Driver for MySQL
,点击Download
接着选择下面那个,即下载ZIP压缩包
直接下载便可
mysql-connector-java-5.1.38-bin.jar
放到你的JDK中lib目录下接着,在IDEA中导入这个jar包,选中External Libraries< 1.8 >,而后右键打开Open Library Settings
点击右边的绿色"+",找到mysql-connector-java-5.1.38-bin.jar
添加进来
这时,再次运行程序会发现抛出了新的异常,这是由于咱们尚未安装MySQL,数据库天然也就没法联机了
setup_xampp.bat
进行配置,这样能使配置文件中的路径信息获得更新。接着打开xampp-control.exe
,点击start打开MySQL
一开始我原本想点击admin,直接建立数据库,可是点开以后发现没法访问网页
因而,只好点开Shell命令窗口,先输入指令mysql -uroot
(ps:因为个人代码中没有设密码,所以,在这里输入指令时也不须要输入密码,若是有密码的话能够用指令mysql -uroot -p
)
为了防止出现乱码问题,咱们还要设置数据库使用UTF-8进行编码,因而输入指令SET NAMES utf8;
而后输入指令CREATE DATABASE lesson
,建立数据库
这时再运行程序,便能成功开启数据库联机
在此你们能够参考一下常见的MySQL数据库命令
本周学习的重点在于MySQL的学习,刚刚接触的时候感受有点无从下手,中间花了比较长的时间去摸索XAMPP软件,后来经过在网上搜集资料慢慢对XAMPP有所了解,而且创建起了一个简单的数据库。一开始我想不太明白Java和数据库之间到底有什么联系,可是我慢慢意识到Java应用的主流应该是在网络方向,尤为是大规模的企业级应用,这必然致使要与大批量的数据发生关系,所以用数据库来对这些数据进行管理对于一些用Java开发的大规模应用来讲是很是有必要的,这也就更加说明了数据库对Java的重要性,若是咱们可以学好数据库,那么对于从此一些项目的开发也会很是有帮助。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | 编写了Hello Java代码 |
第一周 | 100/100 | 2/2 | 12/12 | 编写了Hello Java代码 |
第二周 | 200/300 | 2/4 | 15/27 | 理解了printf和println的区别 |
第三周 | 450/750 | 1/5 | 22/49 | 对对象有了更深层次的理解 |
第四周 | 869/1619 | 1/6 | 28/77 | 对对象的三大特征有了更全面的认识 |
第五周 | 1123/2742 | 1/7 | 25/102 | 学会了异常处理 |
第六周 | 863/3605 | 2/9 | 30/132 | 理解了线程 |
第七周 | 505/4110 | 2/11 | 28/160 | 掌握了日期和时间的运用 |
第八周 | 490/4600 | 2/13 | 26/186 | 掌握了git托管的节奏 |
第九周 | 591/5191 | 2/15 | 30/216 | 初步学会使用MySQL |
【附1】本周学习的代码已经成功托管,截图以下:
【附2】利用wc统计代码行数,截图以下: