Java jdbc 数据库
开发数据库应用程序的JAVA API称为JDBC
提供了一个访问和操作大规模数据库的统一接口
在JAVA中执行SQL语句
可以用于分布式环境
4个主要接口:
Driver 用于装载一个合适的驱动器
Connection 连接到数据库
Statement 创建和执行SQL语句
ResultSet 如果语句返回结果的话,ResultSet接口处理结果
1、安装驱动器:
Class.forName("JDBCDriverClass");
驱动器是一个实现了接口java.sql.Driver的具体类JDBC驱动器
数据库 驱动器类
Access sun.jdbc.odbc.JdbcOdbcDriver
MySQL com.mysql.jdbc.Driver
Oracle oracle.jdbc.driver.OracleDriver
sqlserver com.microsoft.jdbc.slqserver.sqlserverdriver
2、建立连接:
为了连接一个数据库,需要使用DriverManager类的静态方法getConnection(databaseURL)建立连接
URL是数据库在Internet上的惟一标记
Connection con=DriverManager.getConnection(DataBaseURL,"sa","sa");
数据库 URL
Access jdbc:odbc:dataSource
MySQL jdbc:mysql://hostname/dbname
Oracle jdbc:oracle:thin:@hostname:port:OracleDBSID
sqlserver jdbc:microsoft:sqlserver://localhost:1521;databasename="";
3、创建语句:Statement对象或它的子类为数据库传输SQL语句,并把结果返回程序
Statement stam=connection.createstatement();
4、执行语句:
SQL的DDL语句和数据库更新语句(update)语句可以使用方法executeUpdate(String SQL)来执行
SQL查询语句可以使用executeQuery(String SQL)来执行
查询结果在ResultSet中返回
statement.executeUpdate("create table test(id int)");
ResultSet resultSet=statement.executeQuery("select * from emp");
5、处理结果:结果集ResultSet存有一个表,该表的当前行可以访问。当前行的初始位置是null,使用next方法
能够移动到下一行,可以使用各种get方法从当前行检索。
while(resultSet.next())
System.out.println(resultSet.getString(1)+" "+resultSet.getString(2)+" "+resultSet.getString(3));
基本示例
import java.sql.*;
public class tianby{
public static void main(String a[]) throws ClassNotFoundException, SQLException {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","scott","tiger");
Statement statement = conn.createStatement();
statement.executeUpdate("create table test as select * from emp");
ResultSet res = statement.executeQuery("select e.ename,d.dname from emp e join dept d on e.deptno=d.deptno");
while (res.next())
{
System.out.println(res.getString(1)+" "+res.getString(2));
}
conn.close();
}
}