JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

    1、数据库驱动

        要实现Java与数据库的交互,必须要有对应的驱动jar包,才能使得jdbc的正常工作,例如MySQL的驱动下载地址https://www.mysql.com/products/connector/


在MySQL的官网会有许多驱动,不仅仅是jdbc。当然oracle(亲生的)、sqlserver等等也都需要驱动的加持


    2、JDBC的类

            jdbc编程步骤:

                                    1、加载驱动程序:Class.forName(driverClass)例如:

                                            加载Mysql驱动:Class.forName("com.mysql.jdbc.Driver");

                                            加载Oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver");

                                    2、获得数据库连接:

                                            DriverManager.getConnection("jdbc:mysql://localhost:3306/labmem","root","pwd");

                                    3、创建Statement对象:conn.creeateStatement();

package com.labmem.db;
public class DBDemo{
    private static final String URL="jdbc:mysql://localhost:3306/labmem";
    private static final String USER="root";
    private static final String PASSWORD="pwd";
    private static Connection conn=null;
static{
    try{
    //1、加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    //2、获得数据库的连接
    conn=DriverManager.getConnection(URL,USER,PASSWORD);
    }catch(Exception e){
        e.printStackTrace();
    }    
}
publci static Connection get Connection(){
    return conn;
}

}

package com.labmem.dao;
import com.labmem.db;
import com.labmem.entity;
public class xxDao{
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
public list<Labmems> query() throws Exception{
try{
conn=DBDemo.getConnection();//调用db获取conn
stmt=conn.createStatement();
rs=stmt.executeQuery("sql");//查询语句
List<Labmems> labs=newArrayList<Labmems>();
while(rs.next()){
Labemms lab=new Lanmems();
lab.setLabmem_name(rs.getString("name"));
...
labs.add(lab);
}
rs.close();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
return labs;
}
//增删改查的方法也使用预编译执行sql语句
//String sql="insert into labmem (name,age) values(?,?)";//以增加为例
//PreparedStatement ptmt=conn.prepareStatement(sql);
//ptmt.setString(1,"labmem01");
//ptmt.setString(2,20);
//ptmt.execute();增删改执行
//ptmt.executeQuery();查询执行
}