连接到数据库

连接到数据库(非Data Source)

消愁 - 毛不易

试代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package database;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class TestDB {
public static void main(String[] args) {
ResultSet rs=null;
PreparedStatement pstmt=null;
try{
String sql="select ename from emp where empno=?";
Connection conn=getConnection();
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, 1002);
rs=pstmt.executeQuery();
while(rs.next()){
System.out.println(rs.getString("ename"));
}
rs.close();
pstmt.close();

}catch(Exception e){
e.printStackTrace();
}finally{

}
}
public static Connection getConnection() throws SQLException, IOException
{
Properties props = new Properties();
FileInputStream in = new FileInputStream("db.properties");
props.load(in);
in.close();

String drivers = props.getProperty("driver");
if (drivers != null) System.setProperty("driver", drivers);
String url = props.getProperty("url");
String username = props.getProperty("username");
String password = props.getProperty("password");

return DriverManager.getConnection(url, username, password);
}
}

输出

管理连接、语句和结果集

每个Connection对象都可以创建一个或多个Statement对象。同一个Statement对象可以用于多个不相关的命令和查询。但是一个Statement对象最多只能打开一个结果集,如果需要执行多个查询操作,且需要同时分析查询结果,那么必须创建多个Statement对象。

也有的数据库只允许同时存在一个激活的Statement对象。使用DatabaseMetaData类中的getMaxStatements方法可以获取JDBC驱动程序同时支持的语句对象的总数。

当时用完ResultSet、Statement、PreparedStatement或Connection对象时,应立即调用close方法,因为它们都使用了规模较大的数据结构,我们不应该等待垃圾回收器来处理它们

Donate comment here