jdbc是一种Java连接数据库的技术
1.建立与数据库之间的访问连接
2.将编写好的sql语句发送到数据库执行
3.对数据库返回的执行结果进行处理
1、jdbc API
a、DriverManager类:管理JDBC驱动
b、Connection接口:连接数据库并且传递数据
c、Statement接口:负责执行sql语句
d、ResultSet接口:保存Statement接口执行完sql语句后的结果。
2.使用JDBC访问数据库的步骤
a、加载驱动
Class.forName("JDBC驱动类名称");
b、使用DriverManager类获取数据库连接
Connection con = DriverManager.getConnection(数据库的URL,
用户名,密码);
c、执行sql语句
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("sql语句");
d、处理结果
ResultSet有next()方法,这个方法是用来判断结果集是否包含数据
ResultSet中的get...()方法来得到想应得值。
f、释放资源
//演示代码
// 使用class.forName加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
// 获得数据库连接
Connection connection = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "tiger");
String sql = "select * from Inf";
//根据连接获得statement对象
Statement statement = connection.createStatement();
//执行sql语句,并且返回结果集
ResultSet rs = statement.executeQuery(sql);
//处理我们的结果集
//rs.next,检测结果集中是否还有数据
while(rs.next()){
int id = rs.getInt("id");//在结果集中查找id
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println(id+"\t"+name+"\t"+age);
}
//释放资源
rs.close();
statement.close();
connection.close();
导入jar包:
复制到工程中以后,在jar包上右键,点击build path,然后点击add
必须记住:
1.Class.forName("oracle.jdbc.driver.OracleDriver");
2.Connection connection = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:ORCL","scott","tiger");
3.Statement statement = connection.createStatement();
4.ResultSet rs = statement.executeQuery(sql);
前面连接步骤都是一样的。
共同点:都有参数。
在我们使用JDBC进行增、删、改操作的时候,其实可以看成是一个操作。
只不过说:sql语句不一样,参数不一样。也就是在查询的基础上,加了个条件。
PreparedStatement实现于Statement,PreparedStatement比Statement更加灵活,
更加的有效率。
A、实现增、删、改的过程
a) 编写sql语句(例如新增,insert into inf values(?,?,?))
b) 创建PreparedStatement的实例,并且为占位符赋值。
c) 执行sql语句,直接执行executeUpdate()
d) 根据执行,返回结果,执行增、删、改操作的时候,返回值都是int类型,如果执行成功,则返回一个大于0的数字,如果执行失败,会返回-1,这个大于0的数字,其实是几行被改变,或者说几行被影响。
/**
* 这个是新增INF表的信息
* @throws Exception
*/
public void f2() throws Exception {
// 使用class.forName加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
// 获得数据库连接
Connection connection = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "tiger");
String sql = "insert into inf values(?,?,?)";
//根据连接获得PreparedStatement对象
PreparedStatement ps = connection.prepareStatement(sql);
//给占位符赋值,占位符从1开始
ps.setInt(1, 6);//数据库中是什么类型,就set什么类型
ps.setString(2, "小黑6");//两个参数,第一个是占位符的标号,第二个是值
ps.setInt(3, 8);
//执行,返回结果
int i = ps.executeUpdate();
if(i>0){
System.out.println("新增成功");
}else{
System.out.println("新增失败");
}
//释放资源
ps.close();
connection.close();
}
这个类就是实现数据库的连接以及增、删、改、查
也就是说,将数据库连接写成一个方法,将查询写成一个方法,将增、删、改写成一个方法,最后关闭资源,总共四个方法。