1.前一天重点内容复习
原生JDBC得操作步骤
导包,导入数据库的驱动jar包
ProjectStructure,Modules,Dependencies
注册驱动
Class.forName("驱动类的全限定名称");
类全限定名称
5.5:com.mysql.jdbc.Driver
8.0:com.mysql.cj.jdbc.Driver
获取数据库的连接对象
DriverManager(驱动管理类):用于管理一组jdbc驱动程序的基本服务
静态功能:public static Connection getConnection(String url,String user,String password)throws SQLException:获取数据库连接对象
参数String ur:统一资源定位符
“jdbc:数据库类型://域名:端口号/库名”
如果为mysql为8.0之后版本后面要带参数:
?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true(字符集为utf-8,是否进行数据库验证,服务器时区,是否公开访问)
参数String user:数据库用户
参数String password:数据库密码
准备静态sql语句
String sql = "sql语句";
通过数据库连接对象获得执行数据库的对象
Connection接口中的方法
Statement createStatement()throws SQLException:创建一个Statement对象,用于将SQL语句发送到数据库
数据库执行对象执行sql语句并返回结果
Statement 类中的方法:
int executeUpdate(String sql) throws SQLException:执行给定的sql语句
释放资源
数据库执行对象.close();
数据库连接对象.close();
数据库事物特点
传统事物ACID
原子性:该事物是一个整体,要么同时执行成功,要么同时执行失败
一致性:事物操作前后总量不变, 只是发生转移
隔离性:事物和事物之间是独立的,不能相互影响
持久性:如果开启并且提交事物之后,对数据的修改永久改变
DBUtils的使用操作步骤
操作步骤:
导入dbutils包
创建QueryRunner对象
public QueryRunner(DataSource ds):参数为数据源对象,自动提交模式
public QueryRunner():手动提交模式
准备参数化sql语句
QueryRunner对象执行sql语句
public int update(String sql,Object、、、、params);:添加,删除,修改sql语句
参数1为参数化sql语句
参数2为给占位符赋值的实际参数
public<T> t query(String sql,ResultSetHandler<T> rsh, Object、、、params)
参数1为参数化sql语句
参数2为接口,ResultSetHandler:针对查询结果集数据表进行处理
子实现类
BeanListHandler<T>:将查询的每一条记录封装到T中,然后结果的多条记录封装到List<T>集合中
BeanHandler<T>:将查询的一条记录封装到T中,返回当前T
ScalarHandler<T>:查询单行单列数据封装到Object中
参数3为sql的实际参数
数据库三大范式
第一范式(1NF):数据库的项不可分割
第二范式(2NF):在满足1NF的基础上,表中每一个字段完全依赖于主键
第三范式(3NF):在满足2NF的基础上,表中每一个字段直接依赖于主键,不能产生传递依赖
JDBC如何管理事物
Connection连接对象中管理事物
void setAutoCommit(boolean autoCommit) throws SQLException:开启事物,参数flase手动提交,true自动提交
void rollback throws SQLException:回滚事物
void commit() throws SQLException:使所有更改都成为永久性的
2.html
介绍:超文本标记语言
标签:
标题标签:h1~h6
段落标签:p
换行标签:br
滚动标签:marquee
列表标签:ul(无序)和ol(有序)
列表项标签:li
水平线标签:hr
原样输出标签:pre
盒子标签:div
行内标签:span
上标:sup
下标:sub
3.转义字符
©代表@
 代表一个空格
&ensp代表两个空格
®代表®