上一篇博客我讲了JDBC的概述以及JDBC的工作原理,这一篇博客我开说说程序开发人员真正用JDBC去连接数据库的步骤。
JDBC连接数据库需要4个步骤:
1):加载数据库的驱动;前提是你要有驱动;给项目里添加外来驱动有两种方式:
第一种:在项目名字上右键项目名字--->build path--->configure build path--->libraries--->add external JARS找到你下载的数据库驱动,点击打开,选择OK就可以了进行一系列确认。
第二种是在项目所在的子文件下建立一个目录,把你下载的数据库驱动找到复制进去,点击build path --->add to build path就能完成了;这样你可以在你的项目下面的referenced Libraries子目录下找到这个驱动。mysql的驱动名字是:com.mysql.jdbc.Driver;加载的方式Class.forName(驱动名)。
2):连接数据库:DriverManager驱动管理类,主要负责获取一个数据库的连接;
static Connection getConnection(String url, String user, String password)试图去建立连接。
url:代表mysql数据库的地址连接格式。jdbc:mysql://IP地址:端口号/数据库名字;jdbc协议:jdbc URL中的协议总是jdbc;子协议:驱动程序名或数据库连接机制的名称,如mysql。子名称:一种标示数据库的方法。必须遵循“//主机名:端口/子协议”的标准URL命名约定。如://localhost:3306/db_user;
例子连接数据库中db_user(前提数据库中有db_user这个数据库(create database db_user))代码如下:
/**
* 连接db_user数据库
* /
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConDB {
//数据库驱动名
private static String jdbcName="com.mysql.jdbc.Driver";
//数据库协议地址
private static String dbUrl = "jdbc:mysql://localhost:3306/db_user";
//数据库用户名
private static String dbUser = "root";
//数据库密码
private static String dbPassword="123456";
public static void main(String[] args) {
try {
Class.forName(jdbcName);
System.out.println("数据库驱动加载成功!");
Connection conn = null;
try {
//建立数据库连接
conn = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
System.out.println("数据库连接成功!");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("数据库连接失败!");
}finally{
try {
conn.close();//关闭数据库连接
System.out.println("数据库关闭成功!");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("数据库关闭失败!");
}
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("数据库驱动加载不成功!");
}
}
}
3):使用语句操作数据库(在后面博客会慢慢讲到,今天就讲了一下入门的连接数据库);
4):关闭数据库,释放连接资源。
Ps注:如果遇到这样的错误提示:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.panli.chap02.sec03.Demo2.main(Demo2.java:19)
如果见到这样的错误提示,需看一下你的项目是否导入了mysql的Jar包。一般发生这样的错误提示都为没有Jar包的导入