学习总结

 

                                                                                  数据库总结  
jdbc 原生的操作db
1.贾 --》家(驱动)
加载驱动
Class.forName("com.mysql.jdbc");-->引入的mysql的jar
2.连
DriverMananger.getConnection(url,用户名,密码);
3.sql
编写sql
4.执行 statement -->sql拼接 麻烦 容易出错  sql注入
  prepareStatement --》采取占位符的方式 ?
                       select * from  student where stuo=?
  给参数赋值
  excuteUpdate() 增删改
  excuteQuery() 查询
 
 5. 关闭相关对象  释放资源

 ------进行封装  编写工具类

 分层--》
 0.DB
 1.数据访问层
 2.业务逻辑层
 3.界面层
-->贯穿起来  实体类(一个表对应一个实体类 表名与类名尽量相同)
                    列名与属性名 相同
--查询
   将表中的一行记录封装为实体类的一个对象
后续 我们使用框架自动将表中的一行记录 封装成某个类的对象 简化我们的代码
 属性名与列名 相同来完成这个操作

便于后续代码的修改与维护

---问题
1.在一个项目中 我们对数据库做了多种操作,在每一个操作中都打开与数据库
的链接,操作完以后,关闭数据库的链接
   频繁的连接关闭数据库,资源开发很大
2.   所有的操作的代码都需要我们自己去编写,
3.   当实现查询功能的时候,需要遍历ResultSet 结果集 并且需要将每列的数据转成对象的属性
---》数据连接池 +官方提供的封装好的操作数据库的工具类

常用的数据连接池
C3P0 +apache提供的工具类 来操作数据库解决上面的问题
DBCP
druid 德鲁伊 处理高并发  性能是比较高 阿里提供


1、导入jar
mysql的驱动包
c3p0相关jar
apache工具类的相关jar
2.编写数据连接池的配置文件( 配置文件的名称是固定 格式.xml)
  driver
  url
  username
  password
  默认建立的连接数量
  当连接池所有的连接被使用 等待的时间
  ........

--注意事项:
1.使用DBUtil 
  1.实体类 需要有无参构造函数
  2.属性的set方法不缺少
  3.属性名称首字母尽量小写

--查询所有学生的学号,姓名,地址  年级名称
--如果 查询的结果集没有类与它进行匹配
-- 创建辅助实体类
   --》作用:与需要的查询结果的列能够一一匹配
 -- 如果结果列 与某个实体类属性差异较少, 可以在实体类多添加一个属性

--数据库
mysql
三建
create database 数据库名;

约束
主键约束
外键约束
默认约束
唯一约束
非空约束(not null)

--
单行插入
多行插入
--删除
delete from .... 单纯的删除数据
TRUNCATE  --- 将表摧毁 再从新创建  数据无法恢复
改--
update
---查询
单个的查询
子查询(将某个查询的结果作为条件 --》查询 、修改,删除)

内连接查询
外连接查询
  左外连接
  右外连接
自连接查询

索引
  主键索引
  外键索引
  全文索引
  常规索引(外键索引)

事务 --》一组操作
原子性 一致性 隔离性 持久性
1。关闭事务的自动提交()
2.开启事务 JDBC--> connection.setAutoCommit(false)
2.提交事务&回滚事务

--第一个版块 数据库 java来操作数据库
  第二个版块  html+css
  第三个  jsp(动态页面的开发)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值