《Java程序设计》第十一章学习总结

201711671111 《Java程序设计》第十一章学习总结

1.查询操作

  • 步骤如下:
  • 1得到SQL查询语句对象

try{  Statement sql=con.createStatement();

}

catch(SQLException e ){}

  •  2.处理查询结果

 有了SQL语句对象后,这个对象就可以调用相应的方法实现对数据库中表的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中。也就是说SQL查询语句对数据库的查询操作将返回一个ResultSet对象,ResultSet对象是按“列”(字段)组织的数据行构成。ResultSet rs = sql.executeQuery("SELECT * FROM students");

  • ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,获得一行数据后,ResultSet对象可以使用getXxx方法获得字段值(列值),将位置索引(第一列使用1,第二列使用2等)或列名传递给getXxx方法的参数即可。
  •  无论字段是何种属性,总可以使用getString(int columnIndex)getString(String columnName)方法返回字段值的串表示
  •  3.关闭连接
  •  ResultSet对象和数据库连接对象(Connection对象)实现了紧密的绑定,一旦连接对象被关闭,ResultSet对象中的数据立刻消失。这就意味着,应用程序在使用ResultSet对象中的数据时,就必须始终保持和数据库的连接,直到应用程序将ResultSet对象中的数据查看完毕。
  • 如果在代码 ResultSet rs = sql.executeQuery("SELECT * FROM students");之后立刻关闭连接con.close();程序将无法获取rs中的数据

2.顺序查询

  • 所谓顺序查询,是指ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,next()方法最初的查询位置,即游标位置,位于第一行的前面。next()方法向下(向后、数据行号大的方向)移动游标,移动成功返回true,否则返回false

3.控制游标 

  •  为了得到一个可滚动的结果集,需使用下述方法获得一个Statement对象
  •  Statement stmt = con.createStatement(int type ,int concurrency);

 4.条件与排序查询

  • where子语句一般格式:  select 字段 from 表名 where 条件
  • 排序:用order by子语句对记录排序

 5.更新、添加与删除

  • 更新update  set 字段 = 新值 where <条件子句>
  • 添加insert into (字段列表) values (对应的具体的记录)  insert into values (对应的具体的记录)
  • 删除delete from  表名 where <条件子句>

 6.使用预处理语句

  • Connection和某个数据库建立了连接对象con,那么con就可以调用prepareStatement(String sql)方法对参数sql指定的SQL语句进行预编译处理,生成该数据库底层的内部命令,并将该命令封装在PreparedStatement对象中,那么该对象调用下列方法都可以使得该底层内部命令被数据库执行。
  • ResultSet executeQuery()    boolean execute()   int executeUpdate()

 7.使用通配符

String str = "select * from mess where height < ? and name= ? "

PreparedStatement sql = con.prepareStatement(str);

8.通用查询

  • 编写一个类,只要用户将数据库名、SQL语句传递给该类对象,那么该对象就用一个二维数组返回查询的记录。
  •  结果集ResultSet对象rs调用getMetaData()方法返回一个ResultSetMetaData对象(结果集的元数据对象):

 ResultSetMetaData metaData = rs.getMetaData();

  • metaData,调用getColumnCount()方法就可以返回结果集rs中的列的数目:

int columnCount = metaData.getColumnCount();

  • metaData调用getColumnName(int i)方法就可以返回结果集rs中的第i列的名字:

String columnName = metaData.getColumnName(i);

 9.事务

  •  事务由一组SQL语句组成,所谓事务处理是指:应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行。
  •  JDBC事务处理步骤
  • 1.用setAutoCommit(booean b)方法关闭自动提交模式
  • 2.用commit()方法处理事务
  •  3.用rollback()方法处理事务失败

10. 连接SQL Server数据库

  • 加载SQL Server驱动程序代码如下:

try {  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}

catch(Exception e){

}

  •  连接的代码如下:

try{

  String uri=

"jdbc:sqlserver://192.168.100.1:1433;DatabaseName=warehouse";

      String user="sa";

      String password="dog123456";

      con=DriverManager.getConnection(uri,user,password);

   }

catch(SQLException e){

      System.out.println(e);

}

 11.连接Derby数据库

  • 加载Derby数据库驱动程序的代码是:

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

  •  连接(create取值是true)的代码是:

Connection con =

DriverManager.getConnection("jdbc:derby:students;create=true");

猜你喜欢

转载自blog.csdn.net/Air_JQM/article/details/84633825