cgb2108-day07
Posted cgblpx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cgb2108-day07相关的知识,希望对你有一定的参考价值。
一,改造JDBC释放资源
–1,完善工具类
package cn.tedu.jdbc;
import java.sql.*;
//提供丰富的方法,方便的jdbc操作
public class JDBCUtils {
//1,获取数据库的连接(注册驱动+获取连接)
/**
* 获取数据库的连接
* @return 数据库的连接对象Connection
* @throws Exception
*/
static public Connection getConnection() throws Exception{
//1,注册驱动
Class.forName("com.mysql.jdbc.Driver");//全路径
//2,获取数据库的连接(用户名/密码)
//jdbc连接mysql数据库的协议//本机:端口号/数据库的名字 解决中文乱码 指定时区 关闭权限检验
String url="jdbc:mysql://localhost:3306/cgb2108?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false" ;
Connection c = DriverManager.getConnection(
url,"root","root");
return c ;//返回给调用者
}
/**
* 释放资源,提取了长长的代码
* @param r 结果集资源
* @param s 传输器资源
* @param c 连接资源
*/
static public void close(ResultSet r, PreparedStatement s,Connection c){
if(r != null){ //避免了空指针异常
try {
r.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(s != null) {
try {
s.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(c != null) {
try {
c.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
–2,修改测试类
package cn.tedu.jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
//JDBC的练习
public class Test3 {
public static void main(String[] args) throws Exception{
method();//查询部门表的<100数据
// method2();//向dept表里插入数据
}
//向dept表里插入数据
//为了资源一定会被释放?
// 把释放资源的代码放入finally里+扩大变量的作用范围
// +在try里修改变量的默认值null+在finally里进行try catch
private static void method2(){
//扩大变量的作用范围?因为想让finally也使用
Connection c = null ;
PreparedStatement p = null;
try{
c = JDBCUtils.getConnection();
//插入数据时怎么决定要几个问号? 要看表里有几个字段需要设置值
String sql = "insert into dept values(?,?,?)" ;
p = c.prepareStatement(sql);
//设置SQL的参数
p.setObject(1,666);
p.setObject(2,"软件测试部");
p.setObject(3,"大山西");
//执行SQL
int rows = p.executeUpdate();//执行增删改的SQL
//TODO 会返回结果集吗?返回了的是啥?
System.out.println("影响的行数是: "+rows);
}catch (Exception e){
System.out.println("出错啦~");
}finally {//资源的释放是一定要执行的
//调用工具类里的close(),增删改没有结果集,就不关闭结果集了,传入null就行了
JDBCUtils.close(null,p,c);
}
}
//查询部门表的<100数据
private static void method() {
Connection c =null;
PreparedStatement s =null;
ResultSet r =null;
try{
c = JDBCUtils.getConnection();//利用工具类,获取数据库的连接
//获取传输器,执行SQL骨架
String sql = "select * from dept where deptno < ?";
s = c.prepareStatement(sql);
//设置SQL的参数
s.setInt(1,100);//给第一个?设置100
r = s.executeQuery();//执行查询的SQL语句
//处理结果集
while(r.next()){//next()判断有数据吗
//获取数据getXxx()--获取表里的dname字段的值,并打印
String str = r.getString("dname");
System.out.println(str);
}
}catch (Exception e){
//项目上线阶段,给出的解决方案,比如输出
System.out.println("数据库连接出错~~");
//项目开发调试阶段,给出的解决方案,根据报错信息
e.printStackTrace();
}finally {//关闭资源
JDBCUtils.close(r,s,c);//调用工具类里的close()
}
}
}
二,html
–1,入门案例
<!--常用的快捷键:保存ctrl s,复制粘贴ctrl cv,剪切ctrl x,移动ctrl 箭头-->
<!DOCTYPE html> <!-- 文档声明行,声明文档的类型 -->
<html> <!-- 标志着这是HTML文档,要有开始标签和结束标签-->
<head> <!-- 是网页的头部分,设置网页的标题和编码-->
<meta charset="utf-8"><!-- 设置了网页的编码,u8避免中文乱码-->
<title>这是测试文件</title> <!-- 设置了网页的标题-->
</head>
<body> <!-- 是网页的体部分,用来做展示-->
你好 html~ <br/> <!-- br是换行标签, 是一个空格-->
你好 html~ <br/>
你好 ht ml~
</body>
</html>
–2,常用标签
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试 常用标签</title>
</head>
<body>
<!-- 1.标题标签:在网页中显示标题内容,h1大~h6小 -->
<h1>1号标题</h1>
<h2>2号标题</h2>
<h3>3号标题</h3>
<h4>4号标题</h4>
<h5>5号标题</h5>
<h6>6号标题</h6>
<!-- 2.列表标签:在网页中添加列表内容,ul+li/ol+li -->
<ul> <!-- 无序列表 unorderlist-->
<li>直击山西水灾:住房地基塌陷</li>
<li>经济日报解读美团垄断案</li>
</ul>
<ol> <!-- 有序列表 orderlist-->
<li>直击山西水灾:住房地基塌陷</li>
<li>经济日报解读美团垄断案</li>
</ol>
<!-- 3.图片标签:在网页中插入图片
src是img标签的属性,用来指定图片的路径
width是img标签的属性,用来指定图片的宽度,单位是px像素
height是img标签的属性,用来指定图片的高度,单位是px像素
-->
<img src="a.png"/>
<img src="2.jpg" width="300px" height="500px"/>
<br />
<!-- 4.超链接标签:给元素添加链接效果
href属性用来指定跳转目标
target属性用来指定网页的打开方式.默认是_self用当前窗口打开,_blank用新窗口
-->
<a href="https://www.baidu.com/" target="_blank">百度一下</a>
<!-- 给图片添加链接效果 -->
<a href="https://www.baidu.com/" target="_blank">
<img src="a.png" />
</a>
<!-- 给列表添加链接效果 -->
<ol> <!-- 有序列表 orderlist-->
<li> <a href="https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000&wd=%E7%9B%B4%E5%87%BB%E5%B1%B1%E8%A5%BF%E6%B0%B4%E7%81%BE%3A%E4%BD%8F%E6%88%BF%E5%9C%B0%E5%9F%BA%E5%A1%8C%E9%99%B7&rsv_idx=2&rsv_dl=fyb_n_homepage&hisfilter=1">直击山西水灾:住房地基塌陷</a> </li>
<li> <a href="#">经济日报解读美团垄断案</a> </li>
</ol>
<!-- 锚定:回到顶部 -->
<a name="top">我是顶部</a>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<h3>北京富婆通讯录</h3>
<a href="#top">点击,回到顶部</a> <!-- 回到name=top的位置处-->
<!-- 5.输入框标签: -->
普通的输入框: <input type="text" />
密码输入框: <input type="password" />
数字输入框: <input type="number" />
年月日输入框: <input type="date" />
周输入框: <input type="week" />
按钮:
<input type="button" value="保存"/>
<button>登录</button>
提交按钮:把前端页面输入的数据提交给后端java程序处理
<input type="submit" value="注册"/>
<button type="submit">提交</button>
单选:<input type="radio" />男
多选:<input type="checkbox"/>杨幂
<input type="checkbox"/>迪丽热巴
<input type="checkbox"/>Anglelababa
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</body>
</html>
–3,表格标签
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试 表格表单标签</title>
</head>
<body>
<!-- 1.练习:向网页中插入三行三列的表格
是有结构的:table表格,tr行,td列
border属性用来设置表格的边框宽度,bordercolor边框的颜色
width属性用来设置表格的宽度,bgcolor属性用来设置表格的背景色
cellspacing属性用来设置表格里单元格的间距
单元格的合并:行合并rowspan/列合并colspan
-->
<table border="2px" width="500px" bgcolor="pink"
bordercolor="yellow" cellspacing="0">
<tr>
<td colspan="2">11</td>
<td>13</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td rowspan="2">23</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
</tr>
</table>
<!-- 2.表格的练习 -->
<h1>流量调查表</h1>
<table border="1px" bordercolor="green">
<tr>
<th>总页面流量</th>
<th>共计来访</th>
<th>会员</th>
<th>游客</th>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
<td>33</td>
<td>34</td>
</tr>
<tr>
<td>41</td>
<td>42</td>
<td>43</td>
<td>44</td>
</tr>
<tr>
cgb2108-day13