一、JDBC的概述
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用
Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
二、使用相应的JDBC驱动来连接数据库
新建一个驱动类,要连接数据库需要四个参数(以MySQL为例):
private static String jdbcDriver = "com.mysql.jdbc.Driver"; //JDBC驱动类的位置
private static String jdbcURL = "jdbc:mysql://localhost:3306/go";//数据库URL
private static String jdbcUser = "root"; //用户名
private static String jdbcPassword = "123456"; //登录密码
推荐将这四个参数写入一个properties配置文件中,便于在我们需要的时候进行修改,建议配置文件在驱动类的静态初始化块调用(以jdbc.properties为例):
static {
InputStream is = DBConnectionUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties p = new Properties();
try {
p.load(is);
jdbcDriver = p.getProperty("jdbcDriver");
jdbcURL = p.getProperty("jdbcURL");
jdbcUser = p.getProperty("jdbcUser");
jdbcPassword = p.getProperty("jdbcPassword");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
RDBMS | JDBC驱动程序名称 | URL格式 |
MySql | com.mysql.jdbc.Driver | jdbc:mysql://hostname/databaseName |
ORACLE | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@hostname:portNumber:databaseName |
PostgreSQL | org.postgresql.Driver | jdbc:postgresql://hostname:port/dbname |
DB2 | com.ibm.db2.jdbc.net.DB2Driver | jdbc:db2:hostname:port Number/databaseName |
Sybase | com.sybase.jdbc.SybDriver | jdbc:sybase:Tds:hostname: portNumber/databaseName |
Class.forName(jdbcDriver);
创建连接对象:
Connection connection = DriverManager.getConnection(jdbcURL, jdbcUser, jdbcPassword);
完成与数据库的连接。
三、使用Statement来操作数据库
创建Statement接口来与数据库进行交互:
Statement st = null;
try{
st = conn.createStatement();
...
}catch (SQLException e) {
...
}finally{
...
}
四、使用更加安全方便的PrepareStatement来与数据库进行交互
PreparedStatement 接口继承了Statement
?用作占位符,使用PreparedStatement的setString()/setInt()等来赋予参数
PreparedStatement ps = null;
try {
String sql = "insert into user(username,password) values(?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
...
} catch (SQLException e) {
...
} finally {
...
}