Java JDBC数据库操作


JDBC数据库操作

在Java程序中连接数据库主要有两种方式,一种是建立JDBC-ODBC桥接器,一种是加载纯Java数据库驱动程序。

使用JDBC-ODBC桥接器方式时,需要先建立JDBC与ODBC之间的连接,再由ODBC与数据库连接,之后就可以用Java来操作数据库了,但电脑必须装有ODBC,可移植性差。

如果使用加载纯Java数据库驱动程序的话,需要获取数据库厂家提供的数据库驱动程序,不依赖与平台。

由于JDBC-ODBC方式方便简单,所以先学习这种方式,等以后有机会在去补充数据库驱动程序的方式。

其中ODBC使用“数据源”的方式来管理数据库,所以必须把使用的数据库设置成ODBC的数据源,如何设置ODBC的数据源我就不多说了,可以百度一下。

1.建立JDBC-ODBC桥接器

  JDBC使用java.lang包中的Class类建立桥接器。Class类调用他的静态方法ForName加载sun.jdbc.odbc包中的JdbcOdbcDriver类建立桥接器。

  建立桥接器时可能会发生异常,需要捕获异常。代码如下:

  try{ Class.ForName("sun.jdbc.odbc.JdbcOdbcDriver");

  }

  catch(ClassNotFoundException e){

           System.out.println(e);

  }

2.建立数据库连接

  建立数据库连接时需要使用数据库对应的数据源的名称,而不是数据库的名称。

  首先使用sun.sql包中的Connection类声明一个对象,然后使用类DriverManager调用getConnection方法创建连接对象。

  try{ Connection con= DriverManager.getConnection("jdbc:odbc:数据源名称","数据库登录名","密码");

  }

  catch(SQLException e){}

  其中数据库登录名”和“密码”可以为空。

  接下来应用程序就可以通过SQL语句和数据库中的表交互信息了。

3.查询操作

  查询操作的步骤如下:

  1.获取Statement SQL语句对象

    首先声明一个Statement对象,然后使用连接对象con调用方法createStatement()创建SQL语句对象。

    Statement sql = con.createStatement();

  2.获取查询结果

     有了Statement对象之后,就可以调用相应的方法来操作数据库,并将结果存放在一个ResultSet对象当中

     下面的语句查询数据库中employee表中的全部内容:


      ResultSetrs = sql.executeQuery("SELECT * FROM employee");


     如果employee表中有四个字段,三条内容,那么rs中正好存有三行四列内容,就是说,rs中的一行就是数据表中的一条内容。

     ResultSet对象一次只能看到一个数据行,使用next()方法走到下一数据行,当下一行没有数据时返回false,

    获得了一行数据之后,调用getXxxx()方法来获取字段值,getXxxx()函数的参数可以是索引位置(例如getInt(1);getString(2)),

    也可以是数据表的列名(例如getInt(age);getString(name)等)。一下为常用方法:

    byte getByte()

    Date getDate()

    double getDouble()

    float getFloat()

    int getInt()

    long getLong()

    String getString()

   注意:a.无论字段是何种属性,总可以使用getString()方法返回字段值的串表示

                      b.使用getXxxx()方法查看记录时,不可以颠倒字段的顺序,例如

                  不可以:getInt(4);     getInt(3);

4.更新、添加与删除操作

   通过调用Statement对象的public int executeUpdate(String sqlStatement);方法来实现数据库的更新、添加、删除操作,具体的操作有sqlStatement指定的SQL语句决定。

  具体的SQL语句写法这里也不再赘述,需要注意的是:当查询语句返回结果集后,如果没有立即输出结果集中的记录,接着又执行了更新语句,那么结果集就不能再输出了,

  要想输出必须重新获取结果集

5.预处理语句

  Java提供了被称为预处理语句的PreparedStatement对象,可以更高效的操作数据库。

  JDBC使用连接对象con调用preparedStatement(String sql)方法对参数指定的SQl语句进行预编译处理,生成底层的内部命令封装到PreparedStatement对象中,

  该对象调用下列方法使用底层命令操作数据库。

   ResultSet executeQuery()

   booleanexecute()

   int executeUpdate()

  具体使用方法如下:

   PreparedStatement sql = con.PreparedStatement("SELECT * FROM employee");

  ResultSetrs = sql.executeQuery();

   这样,rs中就存储了获取的查询数据。

6.事务处理

   事务是由一组SQL语句组成,事务处理就是说事务中的SQL语句,要么全部执行,要么一个都不执行。

   JDBC的事务处理步骤:

   1.JDBC建立连接后,con的默认提交模式为自动提交,即提交一个SQL语句之后立即执行。

  为了执行事务处理,需要con对象调用setAutoCommit(boolean autoCommmit)方法,将参数autoCommit取值false来关闭默认置。

   con.setAutoCommit(false);

   2.调用commit()方法

      取消自动提交之后,con产生的Statement对象对数据库提交的任何一个SQL语句都不会执行,必须手动调用commit()方法,

    con调用commit()方法来使事务中的SQL语句生效。

  3.使用rollback()方法

     当事务中有一个SQL语句发生错误是时,会抛出SQLException异常,必须捕获异常,并让con调用rollback()方法,撤销事务成  功执行过的SQL语句,保证事务处理的一致性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值