JDBC的基本使用流程
JDBC的基本使用流程:
1 导入jar包:
导入ojdbc6.jar,在项目上右键 builder path–>add to builder path.
2 加载驱动
Class.forName(“oracle.jdbc.driver.OracleDriver”);
作用:初始化加载jdbc类到java虚拟机.
注意:
ojdbc6.jar使用此包该句可以省略不写.
3 获取数据库连接对象
Connection conn =DriverMananger.getConnection(“url”,“username”,“password”);
参数含义:
url:表示要连接的数据地址
username:数据库的用户名
password:数据库的密码
作用:
连接到指定的数据库并返回连接对象.
4 创建sql命令对象
Statement stmt=conn.createStatement();
作用:
编译,发送SQL命令
5 创建sql命令
String sql=“insert into dept values(92,’’,’’)”;
6 执行sql命令:
新增sql命令:
int i=stmt.executeUpdate(sql);
返回值:
返回值如果小于0,表示未执行成功
返回值如果大于0,表示成功修改的数据量.
7 关闭资源
- 常见的jdbc错误:
- a ClassNotFoundException:
- 驱动类未找到.
- b java.sql.SQLException: No suitable driver found for :thin:@localhost:1521:orcl
- URL错误
- c java.sql.SQLException: ORA-01017: invalid username/password; logon denied
- 用户 名或密码错误
- d java.sql.SQLSyntaxErrorException: ORA-00900: 无效 SQL 语句
- Sql语句错误
- e java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (SCOTT.PK_DEPT)
- 主键冲突
JDBC新增代码:
public class TestInsert1 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1 加载驱动类
//Class.forName(“oracle.jdbc.driver.OracleDriver”);
//2 获取数据库连接对象(连接指定的数据库)
Connection conn=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”,“scott”,“oracle”);
//3 获取sql命令对象(编译和发送sql命令给数据库)
Statement stmt=conn.createStatement();
//4 创建sql命令
String sql=“insert into dept values(92,‘吃鸡学院’,‘北京’)”;
//5 指定sql命令
int i=stmt.executeUpdate(sql);
System.out.println(“执行结果:”+i);
//6 关闭资源
stmt.close();
conn.close();
}
}
JDBC代码完善(全)
public class TestInsert2 {
public static void main(String[] args){
//声明jdbc变量
Connection conn=null;
Statement stmt=null;
//声明JDBC参数
String driver=“oracle.jdbc.driver.OracleDriver”;
String url=“jdbc:oracle:thin:@localhost:1521:orcl”;
String username=“scott”;
String password=“oracle”;
//1 加载驱动类
try {
Class.forName(driver);
//2 获取数据库连接对象(连接指定的数据库)
conn=DriverManager.getConnection(url,username,password);
//3 获取sql命令对象(编译和发送sql命令给数据库)
stmt=conn.createStatement();
//4 创建sql命令
String sql=“insert into dept values(97,‘吃鸡学院’,‘北京’)”;
//5 指定sql命令
int i=stmt.executeUpdate(sql);
System.out.println(“执行结果:”+i);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//6 关闭资源
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}