数据库系统本身就是一个服务器,客户端需要按照数据库协议进行通信。通常数据库厂商提供一种用于和数据库通信的程序,即数据库驱动程序。为Java开发的驱动就是是JDBC驱动程序,它实现了JDBC接口规范。应用程序只需按照JDBCAPI编程,就可以通过JDBC加载具体的驱动,访问各种类型的数据库。
顾名思义mysql-connector-java是数据库与java之间的连接者。事实也确实如此,mysql-connector-java-5-xx.xx.jar是MySQL 5 对应的JDBC(Java Database Connectivity)驱动程序。
JDBC的类和接口都在java.sql、javax.sql包中。它有四个核心对象:
java.sql.DriverManager:JDBC驱动程序的管理类,用于注册驱动。可以根据指定的数据库连接url、用户名、密码获得一个新的数据库连接。
java.sql.Connection:数据库的连接类,表示与数据库创建的连接。
java.sql.Statement/PreparedStatement:用于执行SQL语句的对象(最好使用java.sql.PreparedStatement)。
java.sql.ResultSet:查询请求返回的结果类。
程序为例:(掌握jdbc的就不用看了)
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCdemo01 {
public static void main(String[] args) throws SQLException {
Connection con =null;
Statement stmt =null;
ResultSet rs =null;
try {
//1、加载和注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2、创建连接 con=DriverManager.getConnection(url,user,password)
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo01", "root", "root");
//3、得到执行sql语句的Statement对象
stmt = con.createStatement();
//4、执行sql语句,并返回结果
String sql = "select id,name,password,email,birthday from employee";
rs = stmt.executeQuery(sql);
//5、处理结果 从数据库demo01中的employee表查找id,name,password,email,birthday信息并输出
while(rs.next()) {
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("name"));
System.out.println(rs.getString("password"));
System.out.println(rs.getString("email"));
System.out.println(rs.getDate("birthday"));
System.out.println("--------------------");
}
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
finally {
rs.close();
stmt.close();
con.close();
}
}
}
以上是运用jdbc的一个例子。
JDBC使用中最常见的一个错误是:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
原因一般在于mysql-connector-java包的导入,下面介绍包的导入:
1、在java项目中导入:
复制mysql-connector-java文件(后缀为jar的哈!)到项目的src内
右键 Build Path——>Add to Build Path
OK!
2、在javaweb项目中导入:
同在java中导入,不过复制到WEB-INF——>lib中。