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

教材学习内容总结

1.JDBC

保证java编写的程序的独立性:java提供专门用于操作数据库的API,即JDBC

JDBC操作不同的数据库原因->连接方式不同

使用JDBC进行的操作
与一个数据库建立连接
向已连接的数据库发送SQL语句
处理SQL语句返回的结果

2.连接数据库

程序和数据库交互信息

A.与数据库建立连接

a.加载JDBC-数据库驱动

b.和指定的数据库建立连接

(a)下载数据库驱动

(b)加载数据量驱动

try{Class.forName(“com.mysql.jdbc.Driver”);}catch(Exception e){}  其中jdbc.Driver是驱动程序名

(c)连接数据库

DriverManager类中有两个建立连接的类方法

Connection getConnection(java.lang.String,java.lang.String,java.lang.String)Connection getConnection(java.lang.String)

Connection con;

String uri=“jdbc:mysql://IP地址:端口/数据库名?useSSL=ture”

Connection con;

String uri=“jdbc:mysql://IP地址:端口/数据库名?user=用户名&password=密码&useSSL=ture”

user=“用户名”

password=“密码”

 

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

catch(SQLException e){System.out.println(e)}

try{con=DriverManager.getConnection(uri)}

catch(SQLException e){System.out.println(e)}

DriverManager. getConnection(java.lang.String)返回一个Connection对象

(d)主注意汉字问题

String uri=“jdbc:mysql://IP地址:端口/数据库名?useSSL=ture&characterEncoding=utf-8

3.查询操作

3.1向数据库发送SQL查询语句

sql为SQL语句对象try{Statement sql=con.createStatement();}catch(SQLException e){}

3.2处理查询结果

rs存放查询结果(rs由按“列”(字段)组织的数据行构成)ResultSet rs=sql.executeQuery(“Select语句”)

Result对象一次只能看到一个数据行,使用next()方法移到下一个数据行

rs.getXxx(int columnIndex(位置索引))// rs.getXxx(int columnName(列名))《=》获得字段值(列值)

3.3关闭连接

应用程序在使用ResultSet对象中的数据时,就必须保持和数据库的连接

con.close()

4.1顺序查找

Result对象一次只能看到一个数据行,使用next()方法移到下一个数据行,next()方法最初的查询位置为游标位置,位于第一行的前面

4.2控制游标

结果集的游标的初始位置在结果集第一行的前面,使用next()方法向下(后)移动游标,移动成功返回true

返回一个滚动的结果集

Statement stmt=con.createStatement(int type,int concurrency)

type取值决定滚动方式

ResultSet.TYPE_FORWORD_ONLY只能向下移动

ResultSet.TYPE__SCROLL_INSENSITIVE

可以上下移动,当数据库变化时,结果集不变
ResultSet.TYPE__SCROLL_SENSITIVE返回可滚动结果集,当数据库变化时,当前结果集同步变化

concurrency取值决定是否可以用结果集更新数据库

ResultSet.CONCUR_READ_ONLY不能用结果集更新数据库的表
ResultSet.CONCUR_UPDATABLE能用结果集更新数据库的表

ResultSet re=stmt.executeQuery(SQL语句);

public boolean previous() 将游标上下移动,返回boolean型数据,当移到结果集的第一行之前时返回false
public void beforeFirst()/afterLast()

将游标移到结果集的初始位置,即第一行之前

/将游标移到结果集最后一行之后

public void first()/last()

将游标移到结果集第一行/最后一行
public boolean isAfterLast()/isBeforeFirst()判断游标是否在最后一行之后/第一行之前
public boolean isLast()/isFirst()判断游标是否在最后一行/第一行
public int getRow()得到当前游标所指向的行号,行号从1开始,如果结果没有行,返回0
public boolean absolute(int row)将游标移到参数row指定的行(row为负值时表示倒数)

4.3条件与排序查询

where子语句 一般格式;select 字段 from 表名 where 条件

a.字段值与固定值比较:=

b.字段值在某个区间的范围:and

c.使用某些特殊的日期函数,如year、month、day

select * from mess where year(birthday)<1980 and month(birthday)<=10

d.使用某些特殊的时间函数,如hour、minute、second

select * from time_list where second(shijian)>56

e.用操作符like进行模式匹配,%:多个字符、_:一个字符

排序:order by +排列的标准

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

Statement对象调用方法:public int executeUpdate(String sqlStatement);通过参数sqlStatement指定的方式实现对数据库表中的更新、添加和删除操作。

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

6.1使用预处理语句

优点:减轻数据库的负担,提高访问数据库的速度

con.prepareStatement(String sql)

 对参数sql指定的SQL语句进行预编译处理 

生成该数据库底层的内部命令,并将命令封装在PrepareStatement对象中
对象调用ResultSet executeQuery()
 

boolean execute()

 int executeUpdate()

6.2使用通配符

通配符代替字段的值,用数字1代表第一个?,2代表第二个?

预处理语句执行之前设置通配符的具体值

预处理语句设置通配符?的值的常用方法:

void setDate/setDouble/setFloat/setInt/setLong/setString(int parameterIndex,Date/double/float/int/long/String x)

7.通用查询

ResultSetMetaData metaData=rs.getMetaData()得到一个对象
int columnCount = metaData.getColumnCount()列的数目
String columnName = metaData.getColumnName(i)第i列的名字

 

8.事务

保证数据库的完整性与一致性

事务处理即应用程序保证事务中的SQL语句要么全部执行,要么一个都不执行

JDBC事务处理步骤

用setAutoCommit(boolean b)关闭自动提交模式关闭con这种自动提交模式
commit()处理事务视图让事务中所有的SQL语句生效
rollback()处理事务失败恢复到commit()方法执行之前

学习进度条

 代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行20篇400小时会用java语言独立设计程序
第一周13/131/1 5/5学会使用jdk以及对java源程序语句的基本注意事项有所了解
第二周140/143 1/210/15学会java基本数据类型与数组和c语言/c++在表达和用法上的相同/不同之处
第三周276/4191/320/35java中运算符,表达式和语句的表现形式,类的声明,定义方法
第四周600/10191/430/45类和对象
第五周

150/1169

1/510/55继承的作用,子类和父类的继承性,子类继承父类后方法的访问权限以及各种操作
第六周100/12691/68/63接口定义、使用方法和作用
第七周100/13691/79/72内部类(独有)包含匿名类和异常类(检测)的使用方法和作用
第八周150/18691/810/82java常用实用类和方法
第九周100/19691/920/102组件、容器、窗口、(如何处理事件:事件源,监视器、接口)
第十周80/20491/1010/112输入输出流和各种流的作用、构造方法
第十一周92/21411/117/119连接数据库步骤、查询、更新、添加、删除语句

参考文献

《java2实用教程(第5版)》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值