JDBC:
?
JDBC(Java Data Base Connectivity,java
数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系
数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
?
使用Eclipse来操作数据库有六个步骤:
?
1 加载驱动
?
2 获取链接对象
?
3 创建语句对象
?
4 循环取得结果集
?
5 再循环中数据类型转换
?
6 关闭资源
?
接下来做一些简单的JDBC代码实例:
?
注:下面的代码我用是throws Exception来抛出异常,会使结构不太严谨,因为是初学,所有没有贴出严谨结构的代码,会在最后补充。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBC {
public static void main(String[] args) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {
//产生JDBC Driver对象,三种方法
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
new oracle.jdbc.driver.OracleDriver();
Class.forName("oracle.jdbc.driver.OracleDriver");//这个Driver的实例化在构建过程中会自动向DriverManager自动注册
//连接数据库
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","c##scott","root");//拿到数据库的链接
//创建语句对象statement,作用:调用方法向数据库传递SQL语句,并接受数据库返回的结果集
java.sql.Statement sts = conn.createStatement();
ResultSet rs = sts.executeQuery("select * from a_tab"); //在第一条记录的前一位,
rs.next();
//循环取得结果集
while (rs.next()) {
//转化数据类型
System.out.print(rs.getInt("id") + " ");
System.out.print(rs.getString("name") + " ");
System.out.println(rs.getString("ad") + " ");
}
//关闭资源
rs.close();
sts.close();
conn.close();
}
}
?
?
循环取得结果集:
?
100 Wing XT
123 xiaoxiao beijing?
120 xiaoxiao beijing?
10001 hello0 addbatch
10001 hello0 addbatch
10001 hello0 addbatch
100 hello transaction
101 hello transaction
103 hello transaction
?
往数据库中添加数据:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JDBC_03{
public static void main(String[] args) throws Exception{
//1 加载驱动 就是实例化链接对象
Class.forName("oracle.jdbc.driver.OracleDriver");
//2 获取数据库的链接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "c##scott", "root");
//3 创建语句对象 传输语句并执行 还要接收返回的结果集
Statement ss = conn.createStatement();
String sql ="insert into a_tab values(123,'xiaoming','beijing')";
System.out.println(sql);
ss.execute(sql);
//6 关闭资源
ss.close();
conn.close();
}
}
?
?
换一种方法:
?
?
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import oracle.jdbc.OracleDriver;
public class JDBC_04 {
public static void main(String[] args) throws SQLException{
if (args.length != 3) {
System.out.println("请输入三个值");
System.exit(1);
}
int id = Integer.parseInt(args[0]);
String name = args[1];
String ad = args[2];
//加载驱动
new OracleDriver();
//获取链接,
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "c##scott", "root");
//创建语句
Statement st = conn.createStatement();
String sql = "insert into a_tab values('"+ id + "','"+ name +"','"+ ad +"')";
System.out.println(sql);
st.executeUpdate(sql);
//关闭资源
st.close();
conn.close();
}
}
?
使用batch来添加:
import java.sql.Connection;
import java.sql.Dr