大家好,我是Angle。在开始今天的主要内容之前呢,先来个今天的算法热热身:
- 欧几里德算法(求最大公约数)
public int zcd(int q, int p) {
if(p==0) {
return q;
}
int r = q%p;
return zcd(p, r);
}
- Java如何与数据库连接(JDBC版)
- 先来一张图片,方便大家理解,大家可以看着这张图片边看下面的,边对照着理解。
- 1.下载驱动。
- 2.导入jar包。(mysql-connector-java-版本.jar)
- 3.加载驱动。(Class.forName(“驱动”))
- 4.创建连接。Connection类
- 5.创建执行语句对象。Statement类
- 6.创建语句对象。(sql语句)
- 7.创建结果集对象,用来存放从数据库得到的结果。Result类(例如,增删改查。增、删、改都不一定要返回java一个结果,所以,结果集对象可以不建。但是查的话,必定要返回一个查的结果给我们看,所以,必须有结果集对象)
- 8.关闭连接。(Connection,Statement或者Result)
执行sql语句的方法
- execute():此方法可以执行任意sql,返回值为true代表有结果,通常情况下execute方法用于执行DDL语句
- executeUpdate():此方法执行增删改操作,返回值代表生效的行数
- executeQuery():此方法执行查询操作,返回值为ResultSet,里面保存查询到的所有结果
关闭资源
- 关闭connection 使用之后的连接要及时关闭,避免资源浪费
- 关闭statement 会占用内存,而且对象有上限
- 关闭resultSet 用完释放节省空间
- 关闭书讯 resultSet-> statement-> connection
运行原理
- PreparedStatement是预编译SQL语句工作原理
- 将带有参数的sql发送到数据库,编译成执行计划
- 设置执行计划的参数值
- 发送执行计划,执行数据库的执行计划
- 好处:
1.复用执行计划:sql是固定不变的,只有数据再变,数据库端可以重用相同的执行计划,提高效率,如果使用statement每一次操作,相同格式的sql会生成新的执行计划效率低
2.可以避免SQL注入