一,练习JDBC
–1,开发步骤
//注册驱动,获取连接–使用工具类
//获取传输器
–Statement:用来执行SQL的,但是可能发生SQL注入
–PreparedStatement:用来执行SQL的,先把SQL骨架发送给数据库执行
避免SQL注入的风险,省略了SQL的拼接过程,高效
//执行SQL
–executeQuery():执行查询的SQL,会返回结果集
–executeUpdate():执行增删改的SQL,会返回对数据库的影响行数
//解析结果集
//释放资源 --使用工具类
–2,代码
package cn.tedu;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
//jdbc的练习
public class Test1 {
public static void main(String[] args) {
// method();//query
method2();//insert
}
//向dept表里插入数据
private static void method2() {
Connection conn = null;
PreparedStatement ps = null;
try{
//获取连接
conn = JDBCUtils.getConnection();
//获取传输器
String sql = "insert into dept(dname,loc) values (?,?)";
ps = conn.prepareStatement(sql);
//设置SQL的参数
ps.setString(1,"销售部");
ps.setString(2,"一区");
//执行SQL
// ps.executeQuery();//专门执行查的SQL
int rows=ps.executeUpdate();//专门执行增删改的SQL
if(rows>0){
System.out.println("插入成功");
}
}catch (Exception e){
System.out.println("插入失败");
e.printStackTrace();
}finally {
JDBCUtils.close(null,ps,conn);
}
}
//查询emp表里的tony的所有数据
private static void method() {
Connection conn = null;
PreparedStatement ps = null ;
ResultSet rs = null;
try{
//注册驱动,获取连接
conn = JDBCUtils.getConnection();
//获取传输器
String sql="select * from emp where ename = ?";
ps = conn.prepareStatement(sql);
ps.setString(1,"tony");
//解析结果集
rs = ps.executeQuery();
while(rs.next()){
for (int i = 1; i <= 8 ; i++) {
System.out.println(rs.getString(i));
}
}
}catch (Exception e){
e.printStackTrace();
}finally {//释放资源,保证一定会执行
JDBCUtils.close(rs,ps,conn);
}
}
}
二,HTML
–1,概述
是超文本标记语言
有固定的结构:head(头部信息) body(主体内容)
HTML里有很多标记, ??? ???
–2,Hbuilderx
–新建项目–创建文件/文件夹–测试(运行)
–3,入门案例
<meta charset="utf-8"/><!-- 设置网页的编码,避免中文乱码-->
</head>
<body bgcolor="greenyellow"> <!-- 主体标签,用来描述网页中真正要展示的数据-->
你好 <br/> <!-- br换行标签-->
你好
你好
<!-- 表示空格 -->
你 好
</body>
<!-- 复制粘贴ctrl c/v
删除 ctrl d
移动 ctrl ↑ / ↓
-->
</html>
--4,基本标签
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>常用标签</title>
</head>
<body>
<!-- 标题标签,一段文字的标题 h1~h6
h1字号最大,h6字号最小,而且每个标题标签独占一行
-->
<h1>今日微博热搜排行榜</h1>
<h2>今日微博热搜排行榜</h2>
<h3>今日微博热搜排行榜</h3>
<h4>今日微博热搜排行榜</h4>
<h5>今日微博热搜排行榜</h5>
<h6>今日微博热搜排行榜</h6>
<!-- 列表标签,
ol 定义列表,有序的
li 定义列表元素
-->
<ol>
<li>全国富婆通讯录</li>
<li>如何套取富婆的芳心</li>
<li>迪丽热巴还爱我</li>
</ol>
<!-- 列表标签,
ul定义列表但是无序
li 定义列表元素
type的值可以修饰列表元素前面的符号 空心/实心/方块
-->
<ul type="disc">
<li>全国富婆通讯录</li>
<li>如何套取富婆的芳心</li>
<li>迪丽热巴还爱我</li>
</ul>
<!-- 图片标签,把图片放在HTML网页中
标签有两种写法:开始标签/结束标签. img就是自闭标签
每个标签都是可以加属性,src属性::专门用来指定图片的位置
src的值是图片的路径,想找到和当前网页文件同级的目录,然后再去目录里找
-->
<!-- 加载当前工程里的资源,相对路径,推荐 -->
<img src="images/1.jpg" />
<!-- 加载磁盘中的资源, 绝对路径,不推荐 -->
<img src="E:\1-work-2020\02-web\3.jpg" />
<!-- px是像素 -->
<img src="images/1.jpg" width="200px" height="500px"/>
<img src="images/1.jpg" width="50%" height="30%"/>
<!-- 超链接标签
必须配置href的属性
href属性的值,就是要跳转到的页面
target属性用来指定新页面的打开方式(默认是当前窗口_self)
-->
<a href="https://www.w3school.com.cn/" target="_blank">百度一下</a>
<!-- 回到顶部: 锚定 -->
<br />
<a name="top">如何套取富婆的欢心</a>
<h5>123124234</h5>
<h5>123124234</h5>
<h5>123124234</h5>
<h5>123124234</h5>
<h5>123124234</h5>
<h5>123124234</h5>
<h5>123124234</h5>
<h5>123124234</h5>
<h5>123124234</h5>
<!-- 回到name是top的位置 -->
<a href="#top">回到顶部</a>
<!-- input标签: 文本输入框
可以通过type指定不同类型的输入框
-->
<input type="text" /> <!-- 普通的输入框-->
<input type="number" /> <!-- 数字的输入框-->
<input type="password" /> <!-- 密码 -->
<input type="radio"/>男 <!-- 单选框 -->
<input type="week" /> <!-- 日历 -->
<input type="checkbox" />杨幂 <!-- 复选框 -->
<input type="button" value="点我一下"/> <!-- 按钮-->
<input type="submit" value="提交数据"/> <!-- 提交数据-->
</body>
</html>
--5,表格标签
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test123</title>
</head>
<body>
<!-- 表格标签
table表示向网页中插入一个表格
由行和列组成的,行用tr表示,列用td表示
border属性是给表格加边框
width属性是设置表格宽度
bgcolor属性是设置表格背景色
cellspacing属性是设置单元格的间距0
-->
<table border="1px" width="500px" bgcolor="pink" cellspacing="0px">
<tr>
<!-- colspan 合并列,2是指合并了2列 -->
<td colspan="2">11</td>
<td>13</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td rowspan="2">23</td> <!-- rowspan 合并行-->
</tr>
<tr>
<td>31</td>
<td>32</td>
</tr>
</table>
<!-- 第二个表 -->
<table border="1px" bgcolor="lightpink" cellspacing="0" width="40%">
<tr>
<th>总页面流量</th> <!-- 自动加粗-->
<th>共计来访</th>
<th>会员</th>
<th>游客</th>
</tr>
<tr>
<td>123</td>
<td>345</td>
<td>456</td>
<td>789</td>
</tr>
<tr>
<td>123</td>
<td>345</td>
<td>456</td>
<td>789</td>
</tr>
<tr>
<td>平均每人浏览</td>
<td colspan="3">345</td> <!-- colspan合并列-->
</tr>
</table>
<!-- 其他标签 div p span -->
<!-- div是块级元素,会自动换行 -->
<div>123</div>
<div>123</div>
<div>123</div>
<!-- p标签表示段落,会自动加空行 -->
<p>hello</p>
<p>hello</p>
<p>hello</p>
<!-- span是内联元素,多个span在同一行,不换行 -->
<span>java</span><br />
<span>java</span>
</body>
</html>
--6,表单标签
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>表单标签</title>
</head>
<body>
<!-- 通过form标签,实现把数据提交给服务器 -->
<form>
<h1>注册表单</h1>
<table border="1px" cellspacing="0px" width="350px" bgcolor="gainsboro">
<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>
<!-- TODO 自己完成 剩下的行 -->
</table>
</form>
</body>
</html>
–