简单了解JDBC

来源:互联网 发布:阿里云技术支持 编辑:程序博客网 时间:2024/06/03 19:55


首先我们通过下面这张图来了解JDBC操作数据库的过程并熟悉下过程中用到的几个常用类。  



如图所示,java程序通过加载DriverManager和sql数据库建立connection之后,通过Statement或者通过PreparedStatement携带sql语句到sql数据库执行,并返回ResultSet集合给java程序。下面简单说下这几个常用的类。


DriverManager :
管理一组JDBC 驱动程序的基本服务,作用与用户和驱动程序之间。可以通过getConnection()方法获取Connection实例。
Connection:
数据库链接的实例,获取数据库链接后才能对数据进行操作。
Statement/PreparedStatement:
PreparedStatement继承了statement,都用于执行动态SQL语句。通过PreparedStatement执行,将会预编译,并保存到PreparedStatement实例中,可反复执行。
ResultSet:
用来临时存放数据库查询的结果集

简单例子:

1.创建JDBC建立connection的配置文件jdbc.properties 

jdbc.dirver = com.mysql.jdbc.Driverjdbc.url =  jdbc:mysql://10.158.224.15:32759/test?useUnicode=true&characterEncoding=utf-8jdbc.username = rootjdbc.password = 123456
2.创建读取配置文件的PropertyUtil文件:

package utils;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.Properties;/** * Created by fengxinzi on 17-9-25. */public class PropertyUtil {    public  static  final  String   PATH_File = "/jdbc.properties";    private static  Properties prop;    static{        init();    }    private  static  void init ()  {        try(            InputStream resourceAsStream = PropertyUtil.class.getResourceAsStream(PATH_File);            InputStreamReader inputStreamReader = new InputStreamReader(resourceAsStream, "utf-8");        ) {            prop = new Properties();            prop.load(inputStreamReader);        }catch (IOException e){            e.printStackTrace();        }    }    public  static  final  String JDBC_DIRVER = prop.getProperty("jdbc.dirver");    public  static  final  String JDBC_URL    = prop.getProperty("jdbc.url");    public  static  final  String JDBC_USERNAME =prop.getProperty("jdbc.username");    public  static  final  String JDBC_PASSWORD =prop.getProperty("jdbc.password");}

3.创建JDBC client 用于注册驱动和获取jdbc的connetion实例

package utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;/** * Created by fengxinzi on 17-9-25. */public class JdbcClient {    static {        try {            Class.forName(PropertyUtil.JDBC_DIRVER);        } catch (ClassNotFoundException e) {            e.printStackTrace();        }    }    public static  Connection getConnection() throws ClassNotFoundException, SQLException {        return DriverManager.getConnection(                PropertyUtil.JDBC_URL, PropertyUtil.JDBC_USERNAME, PropertyUtil.JDBC_PASSWORD);    }}
4.创建简单的测试例子,用获取的connection创建statement 操作数据库,并返回resultSet,通过遍历resultSet获取具体参数:

@Testpublic void test20()  {    try (Connection connection = JdbcClient.getConnection()){        String sql = "select * from name";        Statement statement = connection.createStatement();        ResultSet resultSet = statement.executeQuery(sql);        while (resultSet.next()){            int id = resultSet.getInt("id");            String name = resultSet.getString("name");            System.out.println(name+"ID"+id);        }    } catch (ClassNotFoundException e) {        e.printStackTrace();    } catch (SQLException e) {        e.printStackTrace();    }}

打印结果如下

ruirui的ID为0
pengpeng的ID为2
baobao的ID为3
xinxin的ID为4
zhouzhou的ID为5


Process finished with exit code 0
原创粉丝点击