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
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