JDBCTemplate 数据库 元数据 及 编码规范之三层架构

时间:2024-04-05 10:43:11

JDBCTemplate 数据库 元数据 及 编码规范之三层架构

1 JDBCTemplate工具类(重点)
2 模拟JDBCTemplate的功能–数据库的元数据(了解)
3 三层架构(重点)

JDBCTemplate

概念

是Spring框架提供的子工具 是对jdbc操作数据库的封装

出现的目的

java代码操作数据库数据的时候,使用的必须是JDBC
JDBC缺点:
1 代码量太多太繁琐
2 创建连接和销毁连接的耗时太长

jdbc+连接池:解决了创建连接和销毁连接的耗时问题,但是代码量更多了

jdbcTemplate(最终版) 封装了jdbc+连接池,是代码开发操作数据库更加的简单

作用

 1 大大简化了jdbc操作数据库的代码量
 2 把从数据库查询出来的数据自动封装(map,对象,集合...)

JDBCTemplate的使用

JdbcTemplate使用的快速入门:
1 导包 5个包
2 调用API
	1 核心类 JdbcTemplate 作用:用来操作sql语句的
	2 方法:
		execute() --- 操作DDL语句 建库建表的  了解
		update()  --- 操作DML语句 数据的增删改
		queryxxx()--- 操作DQL语句 数据的查询  查询出来的数据自动封装容器中

JdbcTemplate查询数据的封装方法(必须会)

queryForObject(String sql,Class requiredType,Object...args);   单行单列(指定返回类型)

---map
queryForMap(String sql,Object..args);  单行多列(map)
queryForList(String sql,Object..args); 多行多列 (list<map>)

--对象(核心重点)
queryForObject(sql, new BeanPropertyRowMapper<>(类名.class), Object..args);  单行多列(对象)
query(sql, new BeanPropertyRowMapper<>(类名.class), Object..args); 多行多列 (list<对象>)

元数据(了解即可)

元数据: 定义数据(表名 数据名 列名 列类型…)的数据就是元数据

结果集元数据:ResultSetMetaData

作用:通过ResultSetMetaData可以获取结果集数据中列的个数 列的类型 表名 数据库名
获取ResultSetMetaData的方式: ResultSetMetaData metaData = resultSet.getMetaData();
列的个数 metaData.getColumnCount()
当前列的名称 metaData.getColumnLabel(序号)
当前列的类型 metaData.getColumnTypeName(序号)
当前列来自于哪个表 metaData.getTableName(序号)
当前列来自于哪个库 metaData.getCatalogName(序号)

参数元数据:ParameterMetaData

作用:通过ParameterMetaData可以获取sql语句占位符的个数和参数类型
获取ParameterMetaData的方式:
ParameterMetaData parameterMetaData = preparedStatement.getParameterMetaData();
获取sql语句占位符的个数:parameterMetaData.getParameterCount();
获取占位对应列的参数类型:parameterMetaData.getParameterType(占位符的序号); mysql不支持 oracle支持

需求:刚才使用JdbcTemplate的update方法 发现可以对数据进行增删改

使用元数据模拟JdbcTemplate的update方法,也能实现数据的增删改

实现:JdbcTemplate的update方法的底层
update方法特点:第一个参数会接受一个String类型sql  第二个会接受一个Object类型数组

三层架构

我们之前的登录案例是将用户输入,数据库的操作,逻辑处理放在了同一个方法中,这样虽然非常直观,

但是等项目做大的时候非常不好维护代码

注册(三层架构)

数据来源于控制台 将用户写入控制台的账号和密码进行注册(User表)

JDBCTemplate 数据库 元数据 及 编码规范之三层架构
1 当用户输入用户名的时候,先做用户名的校验(是否存在)

存在:给提示信息,结束程序

不存在:继续获取用户输入的密码

2 收集完用户名和密码实现注册功能
登录
JDBCTemplate 数据库 元数据 及 编码规范之三层架构