• JAVA随笔三


        JAVA随笔三

    21.session与cookie的区别,你在项目的哪些地方使用了?
    都是会话跟踪技术,cookie是在客户端记录信息确定用户身份;session通过在服务器记录信息确定用户身份,session的实现依赖于cookie,sessionId(session的唯一标识需要存放在客户端)

    区别: cookie数据存放在客户的浏览器上,session数据放在服务器上
    cookie不是很安全,session较安全
    session会保存在服务器上,占用内存,多了影响性能,考虑到减轻服务器性能方面,使用cookie
    cookie限制4K,一般网站限制20个cookie
    个人建议: 将登录信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中(购物车)
    购物车最好使用cookie,但是cookie是可以在客户端禁用的,这时候我们要使用cookie+数据库的方式实现,当从cookie中不能取出数据时,就从数据库获取

    22.MVC的各个部分都有哪些技术来实现?
    M : javabean V: html jsp vclicity freemakers C: servlet action
    最简单,最经典的MVC: jsp+servlet+Javabean (实际上是model2的实现方式,就是把视图和逻辑隔离开来)//说明model1 方式 jsp+service+dao

    使用struts2和springMVC 这样的MVC框架后 , jsp+control(核心控制器)+action+Javabean

    23.简单介绍一下关系数据库三范式?
    范式就是规范: 要满足第二必须满足第一范式;要满足第三必须满足第二
    第一范式: 列的不可分割
    第二范式: 唯一标识符--主键
    第三范式: 数据库表中不包含已在其他表包含的非主关键字--外键

    反三范式: 有的时候为了效率,可以设置重复或推导出的字段(例如订单的)

    24.事务四个基本特征 ACID特性
    事务是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位
    例如: 转账 必须A扣钱 B加钱 这才算真的转账成功
    事务必须满足的四大特征:原子性,一致性,隔离性 , 持久性/持续性
    原子性:表示事务内操作不可分割,要么都成功,要么都失败
    一致性:要么都成功要么都失败,后面的失败了 要对前面的操作进行回滚
    隔离性:一个事务开始后,不能受其他事物干扰
    持久性/持续性:表示事务开始了,就不能终止

    25.MySQL数据库的默认的最大连接数?
    100
    为什么需要最大连接数?特定服务器上面的数据库只能支持一定数目同时连接,这时候我们就需要设置最大连接数(最多同时服务多少连接)

    26.说一下MySQL的分页,Oracle的分页?
    MySQL是使用关键字limit来进行分页的 limit offset,size表示从多少索引 取多少位
    Oracle的分页 大部分情况下记不住,说思路,要使用三层嵌套查询:
    代码:mysql String sql = "selete * from students order by id limit"+ pageSize*(pageNumber-1)+","+pageSize;
    写的看不懂.. oracle :String sql = "select*from"+{selete}......

    27.讲一下数据库的触发器的使用场景?
    触发器,需要有触发条件 , 当条件满足以后做什么操作.
    发一个日志,说说 会自动通知好友,其实就是在增加日志时做一个后触发,再向通知表中写入条目,因为触发器效率高(UCH公司没有用触发器,效率和数据处理能力都很低)
    每插入一个帖子,都希望将版面中的最后发帖时间,帖子总数字段进行同步更新,用触发器效率就很高
    创建触发器:
    delimiter | //改分隔符为|
    create trigger XXX after insert on 某表 for each row begin
    -> update 某表 set articleCount = articleCount+1 where id = NEW.bid;
    -> end;
    ->|
    delimiter;

    28.数据库的存储过程的使用场景?
    优点:1>sql语句每执行一次就编译一次,而存储过程只在创建时进行编译,以后每次创建都不再重复编译,可以大大提高数据库执行速度
    2>通常,复杂的业务逻辑需要多条sql语句,这些语句要分别的从客户机发送到服务器,当客户机和服务器之间的操作很多时,将产生大量的网络传输,如果将这些操作放在一个存储过程中,那么客户机和服务器之间的网络传输就会大大减少,降低了网络负载
    3>存储过程创建一次便可以重复使用,从而可以减少数据库开发人员的工作量
    4>安全性高,存储过程可以屏蔽对底层数据库对象的直接访问,使用EXECUTE权限调用存储过程,无需拥有访问底层数据库对象的显示权限
    定义存储过程:
    create procedure insert_Student(_name varchar(50),_age int , out_id int)
    begin
    insert into student value(null,_name_age);
    select max(stuid) into_id from student;
    end;
    call insert_Student('wfz',23,@id);
    select @id;

    29.用jdbc怎么调用存储过程?
    jdbc 步骤 贾琏欲执事:
    加载驱动 获取链接 设置参数 执行 释放链接

    30.说一下对jdbc的理解?

    31.JDBC中的PreparedStatement相比Statement的好处
    1>PreparedStatement是预编译的,比Statement速度快
    2>代码的可读性和可维护性
    虽然PrepareStatement来代替Statement会使代码多处几行,但这样的代码无论从可读性还是可维护性上来说,都比直接用Statement的代码高很多档次
    3>安全性:
    PreparedStatement可以防止SQL注入攻击,而Statement却不能

    32.数据库连接池的作用
    1>限定数据库的个数,不会导致由于数据库链接过多导致系统运行缓慢或崩溃
    2>数据库链接不需要每次都去创建或销毁,节约了资源
    3>数据库链接不需要每次都去创建,响应时间更快

  • 相关阅读:
    如何使用Oracle的Decode函数进行多值判断
    EXP/IMP 命令参数【转】
    EXISTS 的語法【转】
    Oracle10g SQL tune adviser简单介绍【转自ITPUB zhouwf0726】
    EXPDP/IMPDP 参数中文解释【转】
    oracle 中spfile和pfile简介【转自 henli 】
    Oracle NUMBER类型细讲
    ASP.NET的gridview设置数据格式(DataFormatString="{}")与 String.Format 使用总结 .
    asp.net更改文件夹名称及新建文件夹及删除文件夹
    Decimal转换成¥:123.00格式后再转换成Decimal格式的方法
  • 原文地址:https://www.cnblogs.com/youyouxiaosheng-lh/p/8094419.html
Copyright © 2020-2023  润新知