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");