java连接数据库(java DataBase Connectivity,JDBC)用于在Java程序中实现数据库操作功能,它提供了执行SQL语句、访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口,java.sql包含了JDBC操作数据库的所有类。通过JDBC访问数据库一般有如下几个步骤:
(1) 加载JDBC驱动器。将数据库的JDBC驱动器加载到classpath中,在基于JaEE的Web应用开发过程中,通常要把目标数据库产品的JDBC驱动复制到WEB-INF/lib下。
(2) 加载JDBC驱动,并将其注册到DriverManger中。一般使用反射Class.forname(String drivername)。
(3) 建立数据库连接,取得Connection对象。一般通过DriverManger.getConnection(url,username,password)方法实现,其中,url表示链接数据库的字符串,username表示连接数据库的用户名,password表示连接数据库的密码。
(4) 建立Statement对象或是PreparedStatement对象。
(5) 执行Sql语句。
(6) 访问结果集ResultSet对象。
(7) 依次将ResultSet、Statement、PreparedStatement、Connection对象关闭,释放掉所占的资源,例如rs.close(),con.close()等。为什么要这么做呢?原因在于JDBC驱动在底层通常都是通过网络IO实现SQL命令与数据库传输。
常见笔试题:
1、举出一个用JDBC访问MySql的例子。
首先,创建Employee表。
creat table Employee(
id int primary key,
name varchar(20),
age int
);
其次,创建一个示例程序,如下所示:
import java sql.*;
public class Test{
public static void main(String[] args) throws Exception{
//驱动器名
String driver="com.mysql.jdbc.Driver";
//url指向要访问的数据库名Test
String url="jdbc:mysql://localhost:3306/Test";
/*String url="jdbc:mysql://licalhost:3306/Test?user=root & password=123456 & useUnicode=true & characterEncoding=UTF-8"
*/
//mysql配置时的用户名
String user="root";
//mysql配置时的密码
String password="123456";
try{
//加载驱动程序
Class.forname(driver);
//连接数据库
Connection conn=DriverManger.getConnection(url,user,password);
//用Statement来执行Sql语句
Statement stmt=conn.createStatement();
//执行插入语句
stmt.execute("insert into Employee values(1,'zhangsan',23)");
stmt.execute("insert into Employee values(2,'lisi',25)");
//定义结果集rs,并将将查询结果放入结果集中
ResultSet rs=stmt.executeQuery("select * from Employee");
//输出结果集中的数据
while(rs.next()){
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getInt(3));
}
}catch(SQLException e1){
e1.printStackTrace();
}finally{
try{
if(rs!=null){
rs.close();
}
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}catch(SQLException e){
System.out.println(e.getMessage());
}
}
}
}
2、JDBC的主要功能有:
a) 创建与数据库的连接
b)发送SQL语句到数据库中
c)处理数据并查询结果
3、提供Java存取数据库能力的包为:java.sql