精华内容
下载资源
问答
  • URL#含义 浏览器定位

    2019-05-15 11:19:05
    10年9月,twitter改版。一个显著变化,就是URL加入了"#!“符号。比如,改版前用户主页网址为...这表明井号(Hash)作用正在被重新认识。本文根据HttpWatch文章,整理与井号有关所有重要知...
    1. 10年9月,twitter改版。一个显著变化,就是URL加入了"#!“符号。比如,改版前的用户主页网址为http://twitter.com/username改版后,就变成了http://twitter.com/#!/username
        这是主流网站第一次将”#"大规模用于重要URL中。这表明井号(Hash)的作用正在被重新认识。本文根据HttpWatch的文章,整理与井号有关的所有重要知识点。
      一、#的涵义
        #代表网页中的一个位置。其右面的字符,就是该位置的标识符。比如,http://www.example.com/index.html#print就代表网页index.html的print位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。
        为网页位置指定标识符,有两个方法。一是使用锚点,比如,二是使用id属性,比如

    二、HTTP请求不包括#
      #是用来指导浏览器动作的,对服务器端完全无用。所以,HTTP请求中不包括#。
    比如,访问下面的网址,http://www.example.com/index.html#print,浏览器实际发出的请求是这样的:

    GET /index.html HTTP/1.1
    Host: www.example.com

    三、#后的字符
      在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。这意味着,这些字符都不会被发送到服务器端。
    比如,下面URL的原意是指定一个颜色值:http://www.example.com/?color=#fff,但是,浏览器实际发出的请求是:

    GET /?color= HTTP/1.1
    Host: www.example.com

    四、改变#不触发网页重载
      单单改变#后的部分,浏览器只会滚动到相应位置,不会重新加载网页。
    比如,从http://www.example.com/index.html#location1改成http://www.example.com/index.html#location2,浏览器不会重新向服务器请求index.html。

    五、改变#会改变浏览器的访问历史
      每一次改变#后的部分,都会在浏览器的访问历史中增加一个记录,使用"后退"按钮,就可以回到上一个位置。这对于ajax应用程序特别有用,可以用不同的#值,表示不同的访问状态,然后向用户给出可以访问某个状态的链接。值得注意的是,上述规则对IE 6和IE 7不成立,它们不会因为#的改变而增加历史记录。

    六、window.location.hash读取#值
      window.location.hash这个属性可读可写。读取时,可以用来判断网页状态是否改变;写入时,则会在不重载网页的前提下,创造一条访问历史记录。

    七、onhashchange事件
      这是一个HTML 5新增的事件,当#值发生变化时,就会触发这个事件。IE8+、Firefox 3.6+、Chrome 5+、Safari 4.0+支持该事件。
      它的使用方法有三种:

    window.onhashchange = func;

    window.addEventListener("hashchange", func, false);   对于不支持onhashchange的浏览器,可以用setInterval监控location.hash的变化。

    八、Google抓取#的机制
      默认情况下,Google的网络蜘蛛忽视URL的#部分。
      但是,Google还规定,如果你希望Ajax生成的内容被浏览引擎读取,那么URL中可以使用"#!",Google会自动将其后面的内容转成查询字符串_escaped_fragment_的值。
      比如,Google发现新版twitter的URL:http://twitter.com/#!/username
      就会自动抓取另一个URL:http://twitter.com/?escaped_fragment=/username
      通过这种机制,Google就可以索引动态的Ajax内容。

    AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。AJAX 是一种用于创建快速动态网页的技术。

    展开全文
  • 1、frame属性是相对于父容器的定位坐标 2、bounds属性针对于自己,指明大小边框,默认点为(0, 0),而宽和高与frame宽和高相等 3、center属性是针对与frame属性中心点坐标 4、当frame变化时,bounds和center...

    1、frame属性是相对于父容器的定位坐标

    2、bounds属性针对于自己,指明大小边框,默认点为(0, 0),而宽和高与frame宽和高相等

    3、center属性是针对与frame属性的中心点坐标

    4、当frame变化时,bounds和center相应变化

    5、当bounds变化时,frame会根据新bounds的宽和高,在不改变center的情况下,进行重新设定

    6、center永远与frame相关,指定frame的中心坐标


    展开全文
  • 请准确理解ID(或者说主键Primary Key)的含义。 主键应当是业务无关的(in most cases if not all)。它只代表了某条数据在数据库中的位置,方便查询定位以及其他表的对其的引用。 举个例子,假设你网上商店,.....

    Mysql对自增主键ID进行重新排序

    Mysql数据库表的自增主键ID号经过一段时间的添加与删除之后乱了,需要重新排列。

    注意说明:

    请准确理解ID(或者说主键Primary Key)的含义。
    主键应当是业务无关的(in most cases if not all)。它只代表了某条数据在数据库中的位置,方便查询定位以及其他表的对其的引用。
    举个例子,假设你网上商店,某个ID=1的货物不卖了,要删掉,不再显示。难道因为这个原因,所有数据库里面的订单,购物车等等,全部要把对应的货物ID - 1吗??!!当这些数据量很大时,考虑过耗时…等成本吗

    一、不清空数据

    原理:删除原有的自增ID,重新建立新的自增ID。

    • 1、删除原有主键:
    ALTER  TABLE  `table_name` DROP `id`
    • 2、添加新主键字段并设置主键:
    ALTER  TABLE  `table_name` ADD 'id' mediumint(6) PRIMARY KEY NOT NULL AUTO_INCREMENT FIRST

    二、如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数

    truncate table 表名

    三、如果 索引 ID 断层,只是单纯的处理新insert插入的数据,并使之随已有数据的ID自增可以使用如下:

    ALTER  TABLE `table_name` AUTO_INCREMENT = `value`

    注意:这里只指下次插入新数据的 自增ID,现有的不会变
    其中value 为设置新插入数据的索引值

    展开全文
  • 有人认为,知识激发的过程与传统的系统分析有很大的不同。 识别并描述了这些差异。 这种观察的含义是,如果要在商业组织中广泛使用基于知识的系统,则需要对信息系统专业人员进行大量的再培训和对管理的重新定位
  • 1.CRUD的含义 CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。 2.URL的...

    1.CRUD的含义

    CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。

    2.URL的概念及含义

     

    URL:Uniform Resource Locator 统一资源定位符。它是可以唯一标识一个资源的位置。
    它的写法:
    http://localhost:8080/mybatisserver/demo1Servlet
    协议 主机    端口    URI

     

    URI:Uniform Resource Identifier 统一资源标识符。它是在应用中可以唯一定位一个资源的。

     

    3.Mybatis的CRUD操作

    数据库表结构图:

    数据库对应的实体类User.java

    package domain;
    
    import java.io.Serializable;
    import java.util.Date;
    
    /**
     * 数据库表对应的实体类
     */
    public class User implements Serializable {
        //实体类的成员变量名称应该与数据库中的列名一致
        private Integer id;
        private String username;
        private Date birthday;
        private String sex;
        private String address;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public Date getBirthday() {
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username='" + username + '\'' +
                    ", birthday=" + birthday +
                    ", sex='" + sex + '\'' +
                    ", address='" + address + '\'' +
                    '}';
        }
    }

    IUserDao.java数据库表操作实现接口

    package dao;
    
    import domain.QueryConditon;
    import domain.User;
    import org.apache.ibatis.annotations.Delete;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Select;
    import org.apache.ibatis.annotations.Update;
    import org.junit.Test;
    
    import java.util.List;
    
    /**
     *
     */
    public interface IUserDao {
        /**
         * 查询所有
         * @return
         */
        //注解模式
        @Select("select *from user")
        List<User> findAll();
    
        /**
         * 保存用户
         * @param user
         */
        @Insert("insert into user(username,address,sex,birthday)values(#{username},#{address},#{sex},#{birthday})")
        void saveUser(User user);
    
        /**
         * 更新操作
         * @param user
         */
        @Update("update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday} where id=#{id}")
        void updateUser(User user);
    
    
        /**
         * 删除操作
         * @param userId 用户id
         */
        @Delete("delete from user where id=#{userId}")
        void deleteUser(Integer userId);
    
        /**
         * 根据用户id查询
         * @param userId 用户id
         */
        @Select("select * from user where id=#{userId}")
        User queryById(Integer userId);
    
        /**
         * 根据用户名进行模糊查询
         * @param username 用户名
         * @return 查询结果
         */
        @Select("select *from user where username like #{username} ")
        List<User> queryByName(String username);
    
        /**
         * 获取用户的总记录数
         * @return
         */
        @Select("select count(id) from user")
        int queryTotalCount();
    
        /**
         * 根据查询条件对象(由实体类生成)进行查询
         * @param queryConditon 查询条件
         * @return
         */
        @Select("select *from user where username like #{user.username} and sex like #{user.sex}")
        List<User> queryByQueryConditionObject(QueryConditon queryConditon);
    }

    测试类

    package test;
    
    import dao.IUserDao;
    import domain.QueryConditon;
    import domain.User;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Test;
    
    import java.io.InputStream;
    import java.util.Date;
    import java.util.List;
    
    public class MybatisTest01 {
    
        private InputStream in;
        private SqlSession sqlSession;
        private IUserDao userDao;
    
        /**
         * 初始化MyBatis
         * @throws Exception
         */
        public void initMyBatis() throws Exception{
            //1.读取配置文件
            in = Resources.getResourceAsStream("SqlMapConfig.xml");
            //2.创建SqlSessionFactory
            SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder(); //创建SqlSessionFactory的构建者builder
            SqlSessionFactory factory=builder.build(in);  //利用构建者builder创建SqlSessionFactory
            //3.使用工厂生产SqlSession对象
            sqlSession = factory.openSession();
            //4.使用SqlSessions对象创建Dao接口的代理对象
            userDao = sqlSession.getMapper(IUserDao.class);
        }
    
        /**
         * 释放资源
         * @throws Exception
         */
        public void destroy() throws Exception{
            sqlSession.commit();//提交事务
            sqlSession.close();
            in.close();
        }
    
        /**
         * 查询所有
         */
        @Test
        public void testQueryAll() throws Exception{
    
            initMyBatis();
            //5.使用代理对象执行方法
            List<User> users = userDao.findAll();
            for (User user : users) {
                System.out.println(user);
            }
            destroy();
        }
    
        /**
         * 测试保存操作
         * @throws Exception
         */
        @Test
        public void testSave() throws Exception{
            User user=new User();
            user.setUsername("lucky");
            user.setAddress("天台");
            user.setBirthday(new Date());
            user.setSex("男");
    
            initMyBatis();
            //5.使用代理对象执行方法
            userDao.saveUser(user);
    
            destroy();
        }
    
        /**
         * 测试更新操作
         * @throws Exception
         */
        @Test
        public void testUpdate() throws Exception{
            User user=new User();
            user.setId(49);
            user.setUsername("lucky");
            user.setAddress("浙江天台");
            user.setBirthday(new Date());
            user.setSex("男");
    
            initMyBatis();
            //5.使用代理对象执行方法
            userDao.updateUser(user);
    
            destroy();
        }
    
        /**
         * 测试更新操作
         * @throws Exception
         */
        @Test
        public void testDelete() throws Exception{
    
            initMyBatis();
            //5.使用代理对象执行方法
            userDao.deleteUser(48);
            destroy();
        }
    
        /**
         * 测试查询一个的方法
         * @throws Exception
         */
        @Test
        public void testQueryOne()throws Exception{
            initMyBatis();
            //5.使用代理对象执行方法
            User user=userDao.queryById(49);
            System.out.println(user);
            destroy();
        }
    
        /**
         * 模糊查询
         * @throws Exception
         */
        @Test
        public void testQueryByName()throws Exception{
            initMyBatis();
            //5.使用代理对象执行方法
            List<User> users = userDao.queryByName("%ck%");
            for (User user : users) {
                System.out.println(user);
            }
            destroy();
        }
    
        /**
         * 查询总记录数
         * @throws Exception
         */
        @Test
        public void testQueryTotalCount()throws Exception{
            initMyBatis();
            //5.使用代理对象执行方法
            int totalCount = userDao.queryTotalCount();
            System.out.println(totalCount);
            destroy();
        }
    
        /**
         * 根据查询条件实体类对象进行查询
         * @throws Exception
         */
        @Test
        public void testQueryConditionObject()throws Exception{
            initMyBatis();
            QueryConditon queryConditon=new QueryConditon(); //创建查询条件实体类
            User user=new User();
            user.setUsername("%王%"); //查询条件1:名字包含王
            user.setSex("女");       //性别为女
            queryConditon.setUser(user); //将查询条件封装到查询条件实体类QueryConditon中
            //5.使用代理对象执行方法
            List<User> users = userDao.queryByQueryConditionObject(queryConditon);
            for (User user1 : users) {
                System.out.println(user1);
            }
            destroy();
        }
    
    }

     4.Mybatis连接池

    (1)连接池综述:
      我们在实际开发中都会使用连接池
      因为它可以减少我们获取连接所消耗的时间。


    (2)mybatis中的连接池
    mybatis连接池提供了3种方式的配置:
    配置的位置:
      主配置文件SqlMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式。
      type属性的取值:
        POOLED    采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现
        UNPOOLED    采用传统的获取连接的方式,虽然也实现Javax.sql.DataSource接口,但是并没有使用池的思想。
        JNDI                采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到DataSource是不一样。
                     注意:如果不是web或者maven的war工程,是不能使用的。
                我们课程中使用的是tomcat服务器,采用连接池就是dbcp连接池。

    转载于:https://www.cnblogs.com/luckyplj/p/11301850.html

    展开全文
  • 数据流重定向可以帮助对输出的结果进行重新定位,使之到达特定的位置。上图中箭头上方还有 standard input,standard output,standard error output 等标识,这三者分别代表不同的含义。 sta...
  • 静态调试举例 分析定位错误警告 my_app.c第6行 描述含义 n是一个没有声明变量 分析 声明数字name时用到了变量n但变量n在之前没有声明 改正 声明一个新变量n 或者 将n改为宏N 这里取第2种改正方法 静态调试举例 ...
  • Chrome Viminum 快捷键

    2020-10-28 16:04:34
    页面滚动 ...定位到页面第一个输入框 g 打开链接 o 在当前标签页打开链接、书签、历史记录 O 在新标签页打开链接、书签、历史记录等 b 在当前标签页打开书签 B 在新标签页打开书签 t
  • 最近重新学了一下正则表达式,当进行到定位符 \b 时,官方解释是这样: \b 匹配一个单词边界,即字与空格间位置。 \B 非字边界匹配。 当时对单词边界有点陌生,于是去网上查阅了一些...
  • 最近重新学了一下正则表达式,当进行到定位符 \b 时,官方解释是这样: \b 匹配一个单词边界,即字与空格间位置。 \B 非字边界匹配。 当时对单词边界有点陌生,于是去网上查阅了一些资料....
  • 对于PRM角色理解

    2011-03-22 00:36:20
    今天和狒狒聊天后,有不少收获,发现自己缺乏纯粹的项目管理的经验和能力。自己又思考总结了下,作为PRM,...看来,需要重新学习思考当前环境下PRM的含义,也需要好好读一遍PMBOOK,更需要学习下基本的方法论了。...
  • 这对于我们来说是一个很简单,但是我们所要了解的并非仅仅是找到,而是分析和猜测汇编代码指令他所包含的含义.课程重点:1.CE搜索技巧2.汇编代码结合数据了解代码所包含的意义3.如何分析目标的数据类型 061 -分析跳的...
  • 超爽自学课件(java)

    2007-09-16 16:04:04
    一旦理解了多形性的概念,接口的含义就很容易解释了。本章也向大家介绍了Java 1.1的“内部类”。 <br>(8) 第8章:对象的容纳 对一个非常简单的程序来说,它可能只拥有一个固定数量的对象,而且对象的“生存...
  • jsp跳转五种方式

    2009-03-11 00:11:53
     它的含义:在5分钟之后正在浏览的页面将会自动变为target.html这一页。代码中300为刷新的延迟时间,以秒为单位。targer.html为你想转向的目标页,若为本页则为自动刷新本页。  由上可知,可以通过setHeader来实现...
  • 使用分层图推理进行细粒度视频文本检索视频重新定位使用您所拥有内容:使用协作专家表示进行视频检索HowTo100M:通过观看数以百万计叙述视频剪辑多模态变压器来学习文本视频嵌入,以进行视频检索 ...
  • 重新定位数据文件、重做日志文件。 执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件位置, 但此时不对数据文件和日志文件进行校验检查。 3、startup open dbname 先执行“nomount”,然后执行...
  • gcc安装及使用

    2020-07-28 22:45:16
    GCC GCC简介 早期 GCC 的全拼为 GNU C Compiler,即 GUN 计划诞生的 C 语言...与此同时,由于之前的 GNU C Compiler 已经无法完美诠释 GCC 的含义,所以其英文全称被重新定义为 GNU Compiler Collection,即 GNU 编
  • 末Z识别:前面已经谈及它的含义,它包含两个含义:末,即重复末编码;Z,即不足四码打Z识别码。 考虑到符号没有明显笔顺的特殊性,词库中对编码采取了容错处理,比如?,可以是:OCC或OCZ,即先要圈再打里面内容;也...
  • 其中,符号的含义如下: “.” =匹配任意字符 “*” =匹配0次或更多 注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。 【2】正则...
  • 编译原理第二天

    2021-03-20 15:20:26
    优化 任务:对前阶段产生中间代码进行加工变换,...可重新定位指令代码:需要链接 编译结构 词法分析器 单词符号 语法分析器 语法单位 语义分析与中间代码生成器 中间代码 优化段 中间代码 目标代码生成器 另外:符号
  • SOP8 SSOP8区别

    2020-09-20 13:45:41
    以后芯片封装确定要先看芯片数据表,然后再从PCB库中选,如果名字不一样,要自己在PCB上放一个元件,然后量量,是否和芯片数据表中约定定型尺寸,定位尺寸一致。 粗略看, 就是SSOP比SO封装
  • 3.选择排序

    千次阅读 2015-10-23 22:16:21
    3.选择排序选择排序 前言 实现思路 模拟走位 实现代码 运行 前言选择排序的含义就是因为每一次最内层for走一趟都会选择出一个最大或最小的数。实现思路比如有N个数,开始先选取第一个...然后下一次又重新定位基准数 i +
  • 体会努力与认真!

    2009-08-16 12:29:46
    这些事情使我重新定位和审视生活,何谓生活?何谓有意义生活?如何做有意义生活?我一直在劝别人要“认真、努力”得去生活,看来今天我同样要劝自己这样去做。周边这些大大小小事情使我再一次深刻体会到了...
  • vue之性能优化

    2020-09-14 14:35:18
    循环时添加key,便于呢行代码更好找到该条数据,新旧值相比时可以更快的定位到diff。 路由懒加载 首屏渲染时能够加快渲染速度 避免内存泄漏 使用过后全局变量在组件销毁后重新置为null。 keep-alive 对组件...
  • 一旦理解了多形性的概念,接口的含义就很容易解释了。本章也向大家介绍了Java 1.1的“内部类”。 (8) 第8章:对象的容纳 对一个非常简单的程序来说,它可能只拥有一个固定数量的对象,而且对象的“生存时间”...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    C#--微软.NET第一语言 本书着重介绍语言本身,比较少涉及应用,不错入门书,从头讲起,不怕不明白。 <<page 1>> page begin==================== 目 目目 目 录 录录 录 第一部分 C#语言概述.4 ...

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

重新定位的含义