数据库操作

来源:互联网 发布:幸运叶子 知乎 编辑:程序博客网 时间:2024/06/06 01:50

黑马程序员
                              数据库操作


------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------


      在Java程序中连接数据库主要有两种方式,一种是建立JDBC-ODBC桥接器,一种是加载纯Java数据库驱动程序。
使用JDBC-ODBC桥接器方式时,需要先建立JDBC与ODBC之间的连接,再由ODBC与数据库连接,之后就可以用Java来操作数据库了,但电脑必须装有ODBC,可移植性差。如果使用加载纯Java数据库驱动程序的话,需要获取数据库厂家提供的数据库驱动程序,不依赖与平台。
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语句决定。
Update<表名>set<字段名>=新值 where<条件子句>
Insert into 表(字段列表)values(对应的具体记录)或Insert into 表(values(对应的具体记录))
Delete from <表名>where<条件子句>
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语句,保证事务处理的一致性。

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------


 

0 0
原创粉丝点击