大家好,快半年没有发CSDN博客了,这段时间过了一个暑假,现在又快放寒假了,陆陆续续的自学完了JAVA、MYSQL、JDBC。我现在相对大家分享一下我学习JDBC的心得和方法以及一般在开发中所要使用的具体的技术。据我了解,JDBC这项技术是被目前大多数互联网公司所采用的一项技术,我用了一个星期的时间自学了全部的内容,我个人的学习能力比较差,所以花费的时间比较长,具体的掌握时间还得看个人。
好,废话不多说,我们直接进入正题!首先先来对JDBC这个名词要有所理解,它是什么意思?有什么作用?这些我们都需要深入去了解。首先我们来看JDBC的概念。
什么是 JDBC?
JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。
概念上来看没有什么难理解的,纯粹的理解就是使用Java代码对数据库进行增删改查的操作,所以要想学好JDBC就首先要学好Java基础和SQL。
JDBC其实是一个接口,各大厂商为了能融合Java应用程序的调用,进而相继做出了规范,以接口的形式存在于Java API中。
不同的数据库厂商,需要针对这套接口,提供不同实现。不同的实现的集合,即为不同数据库的驱动。
————面向接口编程
连接数据库所需要的有Driver接口实现类。
java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。
在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现。
下面我会给大家简单的介绍如何通过JDBC这项技术来连接数据库:
一、
①得到相对应的数据库jar包,也可以叫驱动,指名我们所要连接的数据库。
将上述jar包拷贝到Java工程的一个目录中,习惯上新建一个lib文件夹。
注意:如果是Dynamic Web Project(动态的web项目)话,则是把驱动jar放到WebContent(有 的开发工具叫WebRoot)目录中的WEB-INF目录中的lib目录下即可。
②加载驱动:加载 JDBC 驱动需调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名。
③使用DriverManager.registerDriver(com.mysql.jdbc.Driver)来注册驱动。
二、
-
JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。
-
JDBC URL的标准由三部分组成,各部分间用冒号分隔。
jdbc:子协议:子名称-
协议:JDBC URL中的协议总是jdbc
-
子协议:子协议用于标识一个数据库驱动程序
-
子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息。包含主机名(对应服务端的ip地址),端口号,数据库名
-
主意啊! 这个test可不是固定的的格式啊,它是指你所连接的数据库名称。我i这里就用test举个栗子。我在这里只举连接MYSQL的例子,想要了解其他数据库的小伙伴可以去baidu。我就不过多的介绍啦。
三、
用户名和密码
user,password可以用“属性名=属性值”方式告诉数据库
可以调用 DriverManager 类的 getConnection() 方法建立到数据库的连接
四、
连接
连接的方式有很多种,我们直接放大招!介绍开发最常用的。
①首先我们需要配置文件,用来对连接进行封装,以后我们只需要调用JDBCUtil方法来连接,使代码看起来简便,让人舒服。
package Util;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils {
private static String url;
private static String username;
private static String password;
private static String driver;
static {
//读取文件,获取值
try {
//创建Properties集合类
Properties pro = new Properties();
//获取src路径下的文件--->ClassLoader类加载器
ClassLoader classLoader = JDBCUtils.class.getClassLoader();
URL resource = classLoader.getResource("jdbcUtil.properties");
String path = resource.getPath();
//加载文件
pro.load(new FileReader(path));
//获取数据
url = pro.getProperty("url");
username = pro.getProperty("username");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
//注册驱动
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
Connection connection = DriverManager.getConnection(url, username, password);
return connection;
}
public static void close(ResultSet rs, Statement st,Connection connection){
if (rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(st != null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
运行结果如上所示。至于我所注释的是对数据库进行操作的相关代码,现在可以不需理会,我在后面会和大家分享。 我们的连接终于获取成功了,没有成功的朋友可以参考我的代码改进,如果碰到了什么bug,欢迎和我一起讨论,共同进步。我也会在几天后更新用一种新的方式去连接数据库。
我知道关于这种帖子数不胜数,可能还没有很多人做的好,但是我相信通过我的学习,会使自己的编程水平进步,看到我帖子的人,希望对你有所帮助,帖子的哪里如果有说的不对的地方,请提出来,我们一起进步!
朋友们,下期见。