cgb2108-day07

本文档主要介绍了如何改造JDBC工具类以确保资源的正确释放,包括完善工具类中的关闭方法,并展示了在测试类中如何使用。同时,讲解了HTML的基础知识,包括入门案例、常用标签如标题、列表、图片、超链接、输入框等,以及表格和表单标签的使用。作业部分要求制作表单。
摘要由CSDN通过智能技术生成

一,改造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是换行标签,&nbsp;是一个空格-->
		你好 html~ <br/>
		你好 ht &nbsp;&nbsp;&nbsp;&nbsp; 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>
				<td>平均每人浏览</td>
				<td colspan="3">1.58</td>
			</tr>
		</table>
		
	</body>
</html>

–4,表单标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试 表单标签</title>
	</head>
	<body>
	<!--1.表单:本质就是表格,只有表单才能提交数据(把浏览器输入的数据交给java程序处理)-->
		<form>
			<h1>注册表单</h1>
			<table bgcolor="lightgray" border="1px" 
				bordercolor="green" cellspacing="0"
				width="500px">
				<tr>
					<td>用户名:</td>
					<td>
						<input type="text" />
					</td>
				</tr>
				<tr>
					<td>密码:</td>
					<td>
						<input type="password" />
					</td>
				</tr>
				<tr>
					<td>确认密码:</td>
					<td>
						<input type="password" />
					</td>
				</tr>
				<tr>
					<td>昵称:</td>
					<td>
						<input type="text" />
					</td>
				</tr>
				<tr>
					<td>邮箱:</td>
					<td>
						<input type="email" />
					</td>
				</tr>
				<tr>
					<td>性别:</td>
					<td>
						<input type="radio" /><input type="radio" /></td>
				</tr>
				<tr>
					<td>爱好:</td>
					<td>
						<input type="checkbox" />篮球
						<input type="checkbox" />足球
						<input type="checkbox" />乒乓球
					</td>
				</tr>
				<tr>
					<td>城市:</td>
					<td>
						<select> <!-- 定义下拉框-->
							<option>-请选择-</option> <!-- 定义下拉选项-->
							<option>北京</option>
							<option>广东</option>
						</select>
					</td>
				</tr>
				<tr>
					<td>头像:</td>
					<td>
						<input type="file" />
					</td>
				</tr>
				<tr>
					<td>验证码:</td>
					<td>
						<input type="text" />
						<img src="a.png" />
						<input type="button" value="点我换一张"/>
					</td>
				</tr>
				<tr>
					<td>自我描述:</td>
					<td>
						<textarea></textarea> <!-- 文本域-->
					</td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<input type="submit" />
						<input type="reset" value="重置"/>
					</td>
				</tr>
			</table>
		</form>
	</body>
</html>


–5,提交数据

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试 表单标签</title>
	</head>
	<body>
	<!--1.表单:本质就是表格,只有表单才能提交数据(把浏览器输入的数据交给java程序处理)
		form标签专门用来提交数据:form标签 + 必须有submit按钮 + 必须配置name属性
		地址栏: http://127.0.0.1:8848/cgb2108/test3.html?user=jack
		?用来拼接用户输入的数据,user=jack,其中user是给标签配置的name属性的值,jack是用户从浏览器上输入数据
	-->
		<form>
			<h1>注册表单</h1>
			<table bgcolor="lightgray" border="1px" 
				bordercolor="green" cellspacing="0"
				width="500px">
				<tr>
					<td>用户名:</td>
					<td>
						<input type="text" name="user"/>
					</td>
				</tr>
				<tr>
					<td>密码:</td>
					<td>
						<input type="password" name="pwd" />
					</td>
				</tr>
				<tr>
					<td>确认密码:</td>
					<td>
						<input type="password" name="repwd"/>
					</td>
				</tr>
				<tr>
					<td>昵称:</td>
					<td>
						<input type="text" name="nick"/>
					</td>
				</tr>
				<tr>
					<td>邮箱:</td>
					<td>
						<input type="email" name="mail" />
					</td>
				</tr>
				<tr>
					<td>性别:</td>
					<td> <!-- 问题1:提交的数据都是on,加value属性,区分提交的数据-->
						<input type="radio" name="sex" value="1"/><input type="radio" name="sex" value="0"/></td>
				</tr>
				<tr>
					<td>爱好:</td>
					<td>
						<input type="checkbox" />篮球
						<input type="checkbox" />足球
						<input type="checkbox" />乒乓球
					</td>
				</tr>
				<tr>
					<td>城市:</td>
					<td>
						<select> <!-- 定义下拉框-->
							<option>-请选择-</option> <!-- 定义下拉选项-->
							<option>北京</option>
							<option>广东</option>
						</select>
					</td>
				</tr>
				<tr>
					<td>头像:</td>
					<td>
						<input type="file" />
					</td>
				</tr>
				<tr>
					<td>验证码:</td>
					<td>
						<input type="text" />
						<img src="a.png" />
						<input type="button" value="点我换一张"/>
					</td>
				</tr>
				<tr>
					<td>自我描述:</td>
					<td>
						<textarea></textarea> <!-- 文本域-->
					</td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<input type="submit" />
						<input type="reset" value="重置"/>
					</td>
				</tr>
			</table>
		</form>
	</body>
</html>

作业

制作表单

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值