20175305张天钰《java程序设计》第九周学习总结
《java程序设计》第九周学习总结
第十一章 JDBC与MySQL数据库
学前准备
MySQL数据库管理系统:下载及安装
启动MySQL数据库服务器:输入代码mysqld --initialize-insecure进行初始化,然后输入mysqld启动数据库。(输入代码mysqladmin -u root -p password修改root用户密码)
一.JDBC:
(1)与一个数据库建立连接。
(2)向数据库发送SQL语句。
(3)处理数据库返回的结果。
2.连接数据库 详见P329
3.查询操作:顺序查询、控制游标、条件与排序查询
4.更新、添加与删除操作:
更新update 表 set 字段 = 新值 where <条件子句>
添加insert into 表(字段列表) values (对应的具体的记录)
或insert into 表 values (对应的具体的记录)
删除delete from 表名 where <条件子句>
5.使用预处理语句:
预处理语句的优点:对于JDBC,如果使用Connection和某个数据库建立了连接对象con,那么con就可以调用prepareStatement(String sql)方法对参数sql指定的SQL语句进行预编译处理,生成该数据库底层的内部命令,并将该命令封装在PreparedStatement对象中,那么、该对象调用下列方法都可以使得该底层内部命令被数据库执行:
ResultSet executeQuery()
boolean execute()
int executeUpdate()
使用通配符:在对SQL进行预处理时可以使用通配符?(英文问号)来代替字段的值,只要在预处理语句执行之前再设置通配符所代表的具体值即可。例如:
String str = "select * from mess where height < ? and name= ? " PreparedStatement sql = con.prepareStatement(str);
在sql对象执行之前,必须调用相应的方法设置通配符?代表的具体值,如:
sql.setFloat(1,1.76f);
sql.setString(2, "武泽");
预处理SQL语句sql中第1个通配符?代表的值是1.76,第2个通配符?代表的值是'武泽'。通配符按着它们在预处理SQL语句中从左到右依次出现的顺序分别被称为第1个、第2个、……、第m个通配符。预处理语句设置通配符?的值的常用方法有:
void setDate(int parameterIndex, Date x) void setDouble(int parameterIndex, double x) void setFloat(int parameterIndex, float x) void setInt(int parameterIndex, int x) void setLong(int parameterIndex, long x) void setString(int parameterIndex, String x)
6.通用查询:
本节的目的是编写一个类,只要用户将数据库名、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);
7.事务
JDBC事务处理步骤:
用setAutoCommit(booean b)方法关闭自动提交模式
用commit()方法处理事务
用rollback()方法处理事务失败
8.连接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);
}
9.连接Derby数据库:
加载Derby数据库驱动程序的代码是:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
连接(create取值是true)的代码是:
Connection con =
DriverManager.getConnection("jdbc:derby:students;create=true")
10.接收数据包
首先用DatagramSocket的另一个构造方法DatagramSocket(int port) 创建一个对象,其中的参数必须和待接收的数据包的端口号相同
然后该对象使用方法receive(DatagramPacket pack)接受数据包
用 DatagramPack类的另外一个构造方法DatagramPack(byte data[],int length)创建一个数据包,用于接收数据包
11.广播数据报
广播数据报涉及到地址和端口
广播数据报是一种较新的技术,要广播或接收广播的主机都必须加入到同一个D类地址
二、网络模型:
1)分类
1.OSI参考模型
2.TCP/IP参考模型
2)网络通信要素:
- IP地址
- 端口号
- 传输协议
试想,要想给张三通讯首要要做的就是找到张三的那台主机,那么怎么找,通过什么方法完成两台机器的通讯呢?
步骤:
(1)找到对方的IP
(2)数据要发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识,为了方便称呼这个数字,就叫做端口。
注意:这里的端口不是物理机器上的实际的端口,而是逻辑端口。
(3)定义一个通讯规则。这个通讯规则称为协议。
国际组织定义了一个通用的协议--TCP/IP协议。
特点:
用于标识进程的逻辑地址。
有效端口号:0—65535,其中0—1024系统使用或保留端口。
传输协议:通讯的规则。
常见协议:TCP、UDP。
TCP和UDP两者之间的区别:
UDP:
(1)将数据及源和目的封装成数据包中,不需要建立连接。
(2)每个数据包的大小要限制在64k内
(3)因无连接,是不可靠协议的。
(4)不需要建立连接,速度快。