- 一,改造JDBC释放资源
- --1,完善工具类
- --2,修改测试类
- 二,HTML
- --1,入门案例
- --2,常用标签
- --3,表格标签
- --4,表单标签
- --5,提交数据
- 作业
- 制作表单
package cn.tedu.jdbc;
import java.sql.*;
//提供丰富的方法,方便的jdbc操作
public class JDBCUtils {
//1,获取数据库的连接(注册驱动+获取连接)
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 ;//返回给调用者
}
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,入门案例
–2,常用标签这是测试文件 你好 html~
你好 html~
你好 ht ml~
测试 常用标签 1号标题
2号标题
3号标题
4号标题
5号标题
6号标题
- 直击山西水灾:住房地基塌陷
- 经济日报解读美团垄断案
- 直击山西水灾:住房地基塌陷
- 经济日报解读美团垄断案


百度一下

我是顶部
北京富婆通讯录
北京富婆通讯录
北京富婆通讯录
北京富婆通讯录
北京富婆通讯录
北京富婆通讯录
北京富婆通讯录
北京富婆通讯录
北京富婆通讯录
北京富婆通讯录
北京富婆通讯录
北京富婆通讯录
点击,回到顶部 普通的输入框: 密码输入框: 数字输入框: 年月日输入框: 周输入框: 按钮: 提交按钮:把前端页面输入的数据提交给后端java程序处理 单选:男 多选:杨幂 迪丽热巴 Anglelababa–3,表格标签
测试 表格表单标签
| 11 | 13 | |
| 21 | 22 | 23 |
| 31 | 32 | |
流量调查表
| 总页面流量 | 共计来访 | 会员 | 游客 |
|---|---|---|---|
| 21 | 22 | 23 | 24 |
| 31 | 32 | 33 | 34 |
| 41 | 42 | 43 | 44 |
| 平均每人浏览 | 1.58 | ||
–5,提交数据测试 表单标签
作业 制作表单测试 表单标签



