jdbc连接数据库基本步骤以及错误总结

来源:互联网 发布:流程优化的原则 编辑:程序博客网 时间:2024/05/21 17:55
连接数据库的基本步骤:
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Scanner;/** * PreparedStatement预编译的 SQL 语句的对象 * 执行带参数的sql语句 * 防止sql注入攻击 * @author fiona * */public class TestJDBC1 {public static void main(String[] args) {Connection conn=null;//定义连接ResultSet rs=null;PreparedStatement pstmt=null;String url = "jdbc:oracle:thin:@localhost:1521:oracleylp";String userName = "scott";String password ="960715";try {/* * 加载驱动 *///注册驱动DriverClass.forName("oracle.jdbc.driver.OracleDriver");/* * 建立连接 *//* * url:要连接的数据库地址  jdbc:oracle:thin:@<localhost(127.0.0.1)(本机IP地址)>:<数据库服务器的端口号>:<数据库sid> * username:账号 * password:密码 */conn=DriverManager.getConnection(url, userName, password);/* * 创建执行语句块 *///预编译sql语句pstmt=conn.prepareStatement("select * from dept1 where deptno=?");//?为占位符,表示参数/* * 给预编译语句中的占位符赋值  */System.out.println("请输入要查询的部门编号:");Scanner sc=new Scanner(System.in);String no=sc.nextLine();    pstmt.setString(1, no);//给预编译sql语句中的第一个?赋值    //执行sql语句    /*     * 处理结果     */rs=pstmt.executeQuery();while (rs.next()) {System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));}} catch (ClassNotFoundException e) {// TODO 自动生成的 catch 块e.printStackTrace();} catch (SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}finally {//要按先 ResultSet 结果集,后 Statement,最后 Connection 的顺序关闭资源if (rs!=null) {try {rs.close();} catch (SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}if (pstmt!=null) {try {pstmt.close();} catch (SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}if (conn!=null) {try {conn.close();} catch (SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}}}


常见错误总结:
  1.  如果没有导包或者包名写错,报错: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver


  2. url地址写错,报错:java.sql.SQLException: 指定了无效的 Oracle URL
  3. 连接的数据库名不存在,报错:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

  4. 连接的数据库服务未启动,报错:java.sql.SQLException: The Network Adapter could not establish the connection
  5. 账号或密码错误,报错:java.sql.SQLException: ORA-01017: invalid username/password; logon denied

  6. 如果sql语句关键字写错,报错:java.sql.SQLSyntaxErrorException: ORA-00900: 无效 SQL 语句
  7. 如果操作的表名写错,报错:java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在

  8. 如果占位符?的个数与给定的参数个数不匹配,报错:java.sql.SQLException: 索引中丢失  IN 或 OUT 参数:: 1

  9. 多给了值,报错:java.sql.SQLException: 无效的列索引

  10. 如果给定的值和要求的值类型不一致,报错:java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字

  11. 如果是根据列名取值,当取不到对应的数据时,最大的可能就是列名写错

        1. 1 0
        原创粉丝点击
        热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 发票货物名称多怎么办 发票上少打一个字怎么办 发票名称带星号怎么办 小贷太多还不上怎么办 生日当天买保险怎么办 我挪用公司货款怎么办 车辆改名字保险怎么办 工伤报案周六日怎么办 五菱宏光s1门下沉怎么办 新手机版本更新怎么办 戴尔电脑开机黑屏怎么办 淘宝退货不发货怎么办 铝被酸腐蚀怎么办 新娘头饰氧化了怎么办 合金饰品变黑了怎么办 麻醉机fico2升高怎么办 快递被恶意投诉怎么办 顺风快递收件人拒收怎么办 手机联系人没了怎么办 收件人号码错了怎么办 收件人写错了怎么办 快递联系不到收件人怎么办 小孩烫伤有水泡怎么办 被烫伤的疤痕怎么办 微店别人下单后怎么办 月经超了七天怎么办 收件人不在指定地址怎么办 2017款宝来熄火后异响怎么办 我身高一八米怎么办呀 规格型号错了发票怎么办 合同签错了怎么办 柜子背板起泡怎么办啊 显卡红灯不亮怎么办 小米设置全英文怎么办 小米手机变英文怎么办 阿迪贝壳头变黄怎么办 网友问我名字怎么办 护照姓名拼写错误怎么办 cfa报名时填错名字怎么办 机票拼音错了怎么办 evus忘填了怎么办