1.本周思维导图
2.个人总结
JDBC
核心思想
Java中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式
由数据库厂商提供驱动实现类(Driver数据库驱动)
JDBC API
JDBC开发步骤
1.注册驱动
2.连接数据库
通过DriverManager.getConnection(url,user,password);获得数据库连接对象
- URL:jdbc:mysql://localhost:3306/database
- user:root
- password:1234
3.获取发送SQL的对象
通过Connection对象获得Statement对象,用于对数据库进行通用访问
4.执行SQL语句
编写SQL语句,并执行,接收执行后的结果
在编写DML语句时,一定要注意字符串参数的符号是单引号 '值'
5.处理结果
接收并处理操作结果
6.释放资源
遵循先开后关的原则,释放过程中用到的所有资源对象
SQL注入:
为了避免SQL注入的问题,使SQL语句在用户输入数据前,SQL语句已经完成编译,成为了完整的SQL语句,再进行填充数据
PreparedStatement
PreparedStatement接口继承了Statement接口
作用:
1.预编译SQL语句,效率高
2.安全,避免SQL注入
3.可以动态的填充数据,执行多个同构的SQL语句
参数标记
PreparedStatement应用时,SQL字符串的参数都由?符号站位,被称为参数标记。在执行该SQL语句前,要为每个?参数赋值
动态参数
pstmt.setXxx(下标,值); 参数下标是从1开始,为指定占位符下标绑定值
跨平台方案
定义 private static final Properties properties = new Properties();//配置文件集合
定义static{
//首次使用工具类,触发类加载
InputStream is = DBUtils.class.getResourceAsStream("路径");//复用本类自带流,读取配置文件
properties.load(is);//将is流中的配置文件信息,加载到集合中
Class.forName(properties.getProperty("driver"));
}
在getConnection方法中。应用properties.getProperty("url");
ORM 实体类(entity):零散数据的载体
一行数据中,多个零散的数据进行整理
通过entity的规则对表中的数据进行对象的封装
提供无参构造方法、(视情况添加有参构造)
DAO(Data Access Object)
将所有对同一张表的操作都封装在一个XXXDaoImpl对象中。
根据增删改查的不同功能,实现具体的方法(insert,update,delete,select,selectAll)
日期格式化工具
SimpleDateFormat
private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//字符串转Util
public static java.util.Date strToUtilDate(String str) {
try {
return simpleDateFormat.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
//字符串转sql
public static java.sql.Date strToSqlDate(String str){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
java.util.Date date = simpleDateFormat.parse(str);
return new java.sql.Date(date.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
//util转sql
public static java.sql.Date utilToSql(java.util.Date date){
return new java.sql.Date(date.getTime());
}
连接池
可通过实现DataSource接口,创建自定义连接池
Druid连接池
- 亚秒级查询
- 实时数据注入
- 可扩展的PB级存储
- 多环境部署
- 丰富的社区
连接池中获得的Connection是DruidPooledConnection实现类,调用的close()方法不是关闭资源,而是将资源放回池中
.properties 文件配置
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库?useUnicode=true&characterEncoding=utf8
username=root
password=root
#初始化连接
initialSize=10
#最大连接数量
maxActive=30
#最小空闲连接
minIdle=5
#超时等待时间以毫秒为单位
maxWait=5000
三层架构设计
表示层:
命名:xxxVIew
职责:收集用户的数据和需求、展示数据
业务逻辑层
命名:XXXServiceImpl
职责:数据的加工处理、调用Dao组合完成业务实现、控制事务
数据访问层
命名:xxxDaoImpl
职责:向业务层提供数据,将业务层加工处理后的数据同步到数据库
Apache的DbUtils使用
主要包含
ResultSetHandler接口:转换类型接口
BeanHandler类:实现类,把一条记录转换成对象
BeanListHandler类:实现类,把多条记录转换成List集合。
ScalarHandler类:实现类,适合获取一行一列的数据。
QueryRunner:执行sql语句的类
增、删、改:update();
查询:query();
使用步骤导入JAR包
-
mysql连接驱动jar包
-
druid-1.1.5.jar
-
database.properties配置文件
HTML
特点
- 简易性:超文本标记语言的版本升级采用的超集方式。更加方便灵活
- 可扩展性:超文本标记语言采取的子类元素的方式,为系统扩展带来保证
- 平台无关性
- 通用性:HTML是网络的通用语言,一种简单、通用的标记语言
基本结构
<!-- 文档声明 -->
<!DOCTYPE html>
<html>
<!--网页的头部 -->
<head>
<!--页面的字符集编码 -->
<meta charset="utf-8" />
<!-- 页面的标题 -->
<title>我的页面</title>
</head>
<!-- 网页的主题,显示的部分-->
<body>
展示的内容
</body>
</html>
结构标签
<html></html>:根标签
<head> :头标签
<title></title>页面的标题
</head>
<body>:主体标签:显示网页内容
</body>
排版标签
注释标签:<!-- 注释 -->
换行标签:<br/>
段落标签:<p>文本文字</p>
特点:段落与段落之间有行高(行间距)自带换行
属性:文本对齐方式 align (left、center 、right)
水平线标签:<hr/>
属性:
width:水平线的长度(两种:像素表示。第二种:百分比显示)
size:水平线的粗细(避免过粗、一般给个位数:8px)
color:水平线的颜色
align:水平线的对齐方式(left、center、right)
容器标签
<div></div> : 块级标签,独占一行,自带换行
<span></span> : 行级标签,所有内容都在同一行
作用:
<div>主要是结合css做页面分块 布局
<span>进行友好提示信息的显示
文本格式化标签
<!--粗体文本-->
<b>今天天气好</b><br />
<!--大号字-->
<big>今天天气好</big><br />
<!--着重文字-->
<em>今天天气好</em><br />
<!--斜体字 物理上把字体倾斜-->
<i>今天天气好</i><br />
<!--小号字-->
<small>今天天气好</small><br />
<!--定义加重语气-->
<strong>今天天气好</strong><br />
<!--下标字-->
CO<sub>2</sub><br />
<!--上标字-->
西厢记<sup>①</sup><br />
<!--插入字-->
<ins>今天天气好</ins><br />
<!--删除字-->
<del>今天天气好</del>