1、为了使Java编写的程序不依赖于具体的数据库,Java提供了专门用于操作数据库的API,即JDBC(Java Data Base Connectivity)。JDBC操作不同的数据库仅仅是连接方式的上的差异而已,使用JDBC的应用程序一旦和数据库建立连接,就可以使用JDBC提供的API操作数据库
2、程序经常使用JDBC进行如下操作:
- 与一个数据库建立连接
- 向已连接的数据库发送SQL语句
- 处理SQL语句返回的结果
3、使用JDBC-数据库驱动方式和数据库建立连接两个步骤
- 加载JDBC-数据库驱动
- 和指定的数据库建立连接
4、连接数据库
1)
应用程序--->JDBC--->1、JDBC-Oracle驱动 2、JDBC-SQL Server驱动 3、JDBC-MySQL驱动 |
--->Oracle数据库
--->SQL Server数据库
--->MySQL数据库
2)下载JDBC-MySQL数据库驱动
应用程序为了能访问MySQL数据库服务器上的数据库,必须保证应用程序所驻留的计算机上安装有相应的JDBC-MySQL数据库驱动,可以登录MySQL官方网站www.mysql.com,下载JDBC-MySQL数据库驱动。
3)加载JDBC-MySQL数据库驱动
try{Class.forName("com.mysql.jabc.Driver");
}
catch(Exception e){}
4)连接数据库
java.sql包中的DriverManager类有两个用于建立连接的类方法(static方法)
- Connection getConnection(java.lang.String,java.lang.String,java.lang.String)
- Connection getConnection(java.lang.String)
这两个方法都可能抛出SQLException异常,DriverManager类调用上述方法可以和数据库建立连接,即可以返回一个Connection对象。
5)注意汉字问题
如果数据库的表中的记录有汉字,那么在建立连接时需要额外多传递一个参数characterEncoding,并取值gb2312或utf-8
String eri = "jdbc:mysql://localhost/students?useSSL=true&characterEncoding=utf-8";
con = DriverManager.getConnection(uri,"root","");//连接代码
5、查询操作
1)向数据库发送SQL查询语句
使用Statement声明一个SQL语句对象,让创建的连接对象con调用方法createStatement()创建这个SQL语句对象
try{ Statement sql = con.createStatement();}
catch(SQLException e ){}
2)处理查询结果
有了sql语句对象后,该对象可以调用相应的方法实现对数据库中表的查询和修改,将结果存放在一个ResultSet类声明的对象中。ResultSet对象由按“列”(字段)组织的数据行构成。ResultSet对象一次只能看到一个数据行,使用next()方法移动到下一个数据行,可以使用getXxx方法获得字段值,例如:getDouble(int columnIndex)
注:无论字段是何种属性,都可以使用getString(int columnIndex)或getString(String columnName)方法返回字段值的串显示
3)关闭连接
ResultSet对象和Connection连接对象绑定,一旦连接对象关闭,ResultSet对象中的数据立刻消失。