- Pro JPA2读书笔记系列(十一)-第十章(高级对象-关系映射)
TheNowWjj
java读书笔记jpa
ProJPA2第十章(高级对象-关系映射)10.1表和列名在前面的章节中,已经显示了表和列的名称位大写标识符,这么做的理由是:首先,这有助于将它们与Java标识符区分开来;其次,因为SQL标准定义了未分割的数据库标识符不区分大小写,而往往以大写形式来表示.每当指定或者默认表和列名时,将完全把指定或默认的标识符字符串传递给JDBC驱动程序.@Table(name="employee")@Table(
- Hibernate注解
小格zZZ
注解同样的,Hibernate也是支持使用注解方式的。创建hibernate应用程序时有许多注解可用,如@Entity,@Id,@TableHibernate注释基于JPA2规范,并支持所有功能。所有JPA注释都在javax.persistence.*包中定义。HibernateEntityManager实现由JPA规范定义的接口和生命周期。使用hibernate注释的核心优点是不再需要创建映射(
- JPA和Hibernate有什么区别? [关闭]
w36680130
javahibernatejpajava-eeorm
本文翻译自:What'sthedifferencebetweenJPAandHibernate?[closed]IunderstandthatJPA2isaspecificationandHibernateisatoolforORM.我知道JPA2是一个规范,而Hibernate是ORM的工具。Also,IunderstandthatHibernatehasmorefeaturesthanJPA2
- SpringBoot整合SpringDataJPA
目录SpringBoot整合JPAJPA&SpringDataJPAHibernate&JPA1、JPA2、JPA&Hibernate关系HibernateVSMybatis一、导入依赖二、简单的CRUD1、配置文件2、实体类3、Dao层4、service层5、controller三、自定义SQL四、分页查询五、连表查询六、分组查询七、与mybatis对比总结SpringBoot整合JPA使用数据
- MyCat之多租户的实现
lily-0622
中间件数据库
多租户概念多租户的环境下共用相同的系统或者程序组件,并且确保各个用户数据的隔离性。实现方案1、独立数据库2、共享数据库,独立Schema3、共享数据库,共享Schema,共享数据库具体实现1、JPA2、Hibernate3、EclpseLink4、Mycat为什么选择Mycat?简单怎么实现的?本质:数据库中间件原理:拦截SQLMycat的应用1、单纯的读写分离,此时配置最为简单,支持读写分离,主
- myeclipse安装、优化与插件安装
零度anngle
Java
Myeclipse10下载与破解Genuitec公司发布了MyEclipse10,一款Genuitec旗下的商业化Eclipse集成开发工具的升级版本。MyEclipse10基于EclipseIndigo构建,为Java和JavaEE项目提供了Maven3的支持。本次发布的版本中还加入了对JaveEE6、HTML5、JPA2和JSF2的支持。版本号10是为了庆祝即将到来的Eclipse的10周年诞
- Myeclipse10下载,装配,破解,插件,优化
Leolu007
Eclipse&MyEclipse
一.Myeclipse10下载与破解Genuitec公司发布了MyEclipse10,一款Genuitec旗下的商业化Eclipse集成开发工具的升级版本。MyEclipse10基于EclipseIndigo构建,为Java和JavaEE项目提供了Maven3的支持。本次发布的版本中还加入了对JaveEE6、HTML5、JPA2和JSF2的支持。版本号10是为了庆祝即将到来的Eclipse的10周
- 使用join fetch with JPA2 CriteriaQuery的简单例子
zb402230366
jpa
protectedTypedQuerygetCriteriaQuery(SearchTypesearchType,SearchCriteriasearchCriteria){CriteriaBuildercb=histDao.getEntityManager().getCriteriaBuilder();CriteriaQuerycq=cb.createQuery(RequestInfo.clas
- Spring data jpa @MapKeyColumn的查询处理
wwwcomy
Hibernate
最近在使用SpringDataJPA,查询起来还是比较方便的。简单看了下@Query支持的,其实叫JPQL,是JPA规范中提出的一种面向对象的查询方式,其实JPQL只是HQL的子集(毕竟JPA源于Hibernate),不过HQL原本我也不熟,所以还是需要一段时间来看看JPA2的规范,貌似现在对聚合查询,子查询等功能都支持的不错了。不过网上的资料还是不多,感觉现在国内互联网还是以Mybatis为主要
- 轻量级Java EE企业应用实战:Struts2+Spring5+Hibernate5/JPA2
Sqdmn
程序员javaJava程序人生spring大数据
轻量级JavaEE企业应用实战(第5版)——Struts2+Spring5+Hibernate5/JPA2整合开发是《轻量级JavaEE企业应用实战》的第5版,这一版保持了前几版内容全面、深入的特点,主要完成全部知识的升级。《轻量级JavaEE企业应用实战(第5版》介绍了JavaEE领域的四个开源框架和技术:Struts2、Spring、Hibernate和JPA。其中Struts2升级到2.5.
- Spring Data JPA进阶(三):Specification查询
程铭程铭你快成名
SpringDataJPA进阶
SpringDataJPA支持非常丰富的查询方式,本文主要介绍Specification查询。JPA2规范引进了criteria查询API。SpringDataJPA对此提供了支持。如果你想使用这个功能,只需要继承JpaSpecificationExecutor接口。这个接口已经实现了基本的查询方法(findOne,findAll,count等)。publicinterfaceUserReposi
- pro JPA2 第九章--条件API 子查询 示例代码
vcfriend
SpringDataJpa学习笔记
proJPA2第九章--条件API子查询示例代码packagecom.imooc.chapter9;importcom.imooc.domain.*;importorg.springframework.data.repository.query.Param;importorg.springframework.stereotype.Service;importjava.util.ArrayList;
- Hibernate使用注释
爆米花9958
Hibernate
承接上节,我们已经写了一个例子了,这节我们使用注释创建hibernate应用程序。有许多注释可用于创建hibernate应用程序,如@Entity,@Id,@Table等。Hibernate注释基于JPA2规范,并支持所有功能。所有JPA注释都在javax.persistence.*包中定义。HibernateEntityManager实现由JPA规范定义的接口和生命周期。使用hibernate注
- Spring Data JPA REST Query Criteria
qianmoQ
JavaSpringBootSpringDataJPA
案例概述在本系列的第一篇文章中,我们将探索一种用于RESTAPI的简单查询语言。我们将充分利用Spring作为RESTAPI,并将JPA2标准用于持久性方面。**为什么使用查询语言?**因为-对于任何复杂的API-通过非常简单的字段搜索/过滤资源是不够的。查询语言更灵活,允许您精确过滤所需的资源。UserEntity首先-让我们提出我们将用于过滤器/搜索API的简单实体-一个基本用户:@Entit
- Spring Data JPA REST Query Criteria
weixin_33976072
案例概述在本系列的第一篇文章中,我们将探索一种用于RESTAPI的简单查询语言。我们将充分利用Spring作为RESTAPI,并将JPA2标准用于持久性方面。**为什么使用查询语言?**因为-对于任何复杂的API-通过非常简单的字段搜索/过滤资源是不够的。查询语言更灵活,允许您精确过滤所需的资源。UserEntity首先-让我们提出我们将用于过滤器/搜索API的简单实体-一个基本用户:@Entit
- jpa2总结
林12580
1.JPA的主键生成策略主键分类:代理主键:没有实际意义的一些列作为主键比如id现在就用的代理主键自然主键:把具有业务含义的字段作为主键叫做自然主键,此字段必须唯一,因为主键必须唯一JPA通用策略生成器通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id,其生成规则由@GeneratedValue设定的.这里的@id和@Generat
- JPA2
ragen_yang
主键(非空且唯一)自然主键天然存在的业务需要的(身份证)代理主键ID主键的生成策略AUTO:吗,默认的自动选择identity:自增长需要数据库支持sequence:序列oracletable:兼容所有关系数据库模拟oracle的sequenceJPA对象的状态2.1临时状态(瞬时)-对象刚刚创建2.2持久状态(托管)-和JPA发生关系2.3游离状态(脱管)-脱离jpa2.4删除调用remove(
- Spring Boot配置两个数据源(SpringBoot + Mysql + Jpa)
Murcielago楠
SpringBoot
SpringBoot配置两个数据源项目结构:SpringBoot+Mysql+Jpa1、新建一个SpringBoot项目,在[https://start.spring.io/](https://start.spring.io/)可以新建,如下图:选择SpringBoot版本,选择相关依赖添加进项目,Mysql和Jpa2、生成项目,讲生成的项目导入IDEA,项目结构如下图3、编辑applicatio
- Spring data jpa @MapKeyColumn的查询处理
wwwcomy
springdatajpaMapKeyColumnsubqueryreturnsmorethan1rowselect查询
阅读更多最近在使用SpringDataJPA,查询起来还是比较方便的。简单看了下@Query支持的,其实叫JPQL,是JPA规范中提出的一种面向对象的查询方式,其实JPQL只是HQL的子集(毕竟JPA源于Hibernate),不过HQL原本我也不熟,所以还是需要一段时间来看看JPA2的规范,貌似现在对聚合查询,子查询等功能都支持的不错了。不过网上的资料还是不多,感觉现在国内互联网还是以Mybati
- Spring data jpa @MapKeyColumn的查询处理
wwwcomy
springdatajpaMapKeyColumnsubqueryreturnsmorethan1rowselect查询
阅读更多最近在使用SpringDataJPA,查询起来还是比较方便的。简单看了下@Query支持的,其实叫JPQL,是JPA规范中提出的一种面向对象的查询方式,其实JPQL只是HQL的子集(毕竟JPA源于Hibernate),不过HQL原本我也不熟,所以还是需要一段时间来看看JPA2的规范,貌似现在对聚合查询,子查询等功能都支持的不错了。不过网上的资料还是不多,感觉现在国内互联网还是以Mybati
- 五、SpringBoot使用JPA完成CRUD
GraceJava
springboot
SpringBoot使用JPA完成CRUD1.什么是JPA2创建SpringBoot项目3.配置数据源以及JPA4.新建数据库5.代码编写5.1创建实体5.2创建JPA5.3编写CRUD方法6.启动项目7.总结SpringBoot使用JPA完成CRUD1.什么是JPA一说JavaWeb,很多小伙伴都知道SSH,这个H代表的就是Hibernate框架,这个小伙伴们都知道,可是什么又是JPA呢?相信许
- Hibernate(6)——注解的使用
Ascend2015
javaWEB
Hibernate注解的简介Hibernate注解基于JPA2规范,并支持其所有功能,它的分类可以分为:类级别的注解,属性级别的注解以及映射关系的注解。所有JPA注释都在javax.persistence.*包中定义。HibernateEntityManager实现由JPA规范定义的接口和生命周期。使用注解的优势使用hibernate注释的核心优点是我们不需要创建映射(*.hbm.xml)文件直接
- jta+spring4+hibernate5/jpa2配置
u013855332
springHibernatejta
spring配置
-->
root
1853
jdbc:mysql://127.0.0.1:3306/world?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false&pinGlobalTxToPhysicalConnection=true
com.atomik
- jpa2
u014236541
分类:java技术(136)版权声明:本文为博主原创文章,未经博主允许不得转载。 1.JPA的实体生命周期:JPA的实体有以下4中生命周期状态:(1).New:瞬时对象,尚未有id,还未和PersistenceContext建立关联的对象。(2).Managed:持久化受管对象,有id值,已经和PersistenceContext建立了关联的对象。(3).Datached:游离态离线对象,有id值
- Myeclipse10下载,安装,破解,插件,优化介绍
Reborn-D
一.Myeclipse10下载与破解Genuitec公司发布了MyEclipse10,一款Genuitec旗下的商业化Eclipse集成开发工具的升级版本。MyEclipse10基于EclipseIndigo构建,为Java和JavaEE项目提供了Maven3的支持。本次发布的版本中还加入了对JaveEE6、HTML5、JPA2和JSF2的支持。版本号10是为了庆祝即将到来的Eclipse的10周
- myeclipse2013下整合struts2、spring3、jpa2
MyEclipse
在myeclipse下,利用myeclipse自带的功能,为项目添加struts、jpa、spring的功能,可以极大的缩短开发时间。
本文是利用struts为表现层,jpa为持久层,spring为业务层,利用spring的依赖注入管理struts的action和jpa的entityManager、jpa的事务管理
- JPA2 关于 PagingAndSortingRepository
repository
And --- 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd);
Or --- 等价于 SQL 中的 or 关键字,比如 findByUsernameOrAddress(String user, String addr);
Between --- 等价于 SQL 中的 between
- Myeclipse10下载与破解
MyEclipse
一.Myeclipse10下载与破解
Genuitec公司发布了MyEclipse 10,一款Genuitec旗下的商业化Eclipse集成开发工具的升级版本。MyEclipse 10基于Eclipse Indigo构建,为Java和JavaEE项目提供了Maven3的支持。本次发布的版本中还加入了对JaveEE 6、HTML5、JPA2和JSF 2的支持。版本号10是为了庆祝即
- JPA OpenJPA 简单例子
openjpa
JPA
全称,Java Persistence API,Java持久化API
JPA是一套持久化标准,相当于JDBC标准,针对于此标准的实现目前有OpenJAP,TOPLINK,Hibernate等。
OpenJPA
是apache基金会针对于JPA2 标准开发的一套持久化实现类库。
下载地址:http://openjpa.apache.org/ &nb
- 2 Hibernate映射 属性 主键 集合 组件 联合主键
恋佳
Hibernate提供了三种方式将POJO变成PO类使用持久化注解(以JPA标准注解为主,如果有一些特殊要求,则依然需要使用Hibernate本身提供的注解)使用JPA2提供的XML配置描述文件,这种方式可以让Hibernate的PO类与JPA实体类兼容使用Hibernate传统的XML映射文件(hbm文件)。1Hibernate映射主键、属性(1)使用注解的方式hibernate主键生成通常情况
- JVM StackMapTable 属性的作用及理解
lijingyao8206
jvm字节码Class文件StackMapTable
在Java 6版本之后JVM引入了栈图(Stack Map Table)概念。为了提高验证过程的效率,在字节码规范中添加了Stack Map Table属性,以下简称栈图,其方法的code属性中存储了局部变量和操作数的类型验证以及字节码的偏移量。也就是一个method需要且仅对应一个Stack Map Table。在Java 7版
- 回调函数调用方法
百合不是茶
java
最近在看大神写的代码时,.发现其中使用了很多的回调 ,以前只是在学习的时候经常用到 ,现在写个笔记 记录一下
代码很简单:
MainDemo :调用方法 得到方法的返回结果
- [时间机器]制造时间机器需要一些材料
comsci
制造
根据我的计算和推测,要完全实现制造一台时间机器,需要某些我们这个世界不存在的物质
和材料...
甚至可以这样说,这种材料和物质,我们在反应堆中也无法获得......
 
- 开口埋怨不如闭口做事
邓集海
邓集海 做人 做事 工作
“开口埋怨,不如闭口做事。”不是名人名言,而是一个普通父亲对儿子的训导。但是,因为这句训导,这位普通父亲却造就了一个名人儿子。这位普通父亲造就的名人儿子,叫张明正。 张明正出身贫寒,读书时成绩差,常挨老师批评。高中毕业,张明正连普通大学的分数线都没上。高考成绩出来后,平时开口怨这怨那的张明正,不从自身找原因,而是不停地埋怨自己家庭条件不好、埋怨父母没有给他创造良好的学习环境。
- jQuery插件开发全解析,类级别与对象级别开发
IT独行者
jquery开发插件 函数
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给
jQuery添加新的全局函数,相当于给
jQuery类本身添加方法。
jQuery的全局函数就是属于
jQuery命名空间的函数,另一种是对象级别的插件开发,即给
jQuery对象添加方法。下面就两种函数的开发做详细的说明。
1
、类级别的插件开发 类级别的插件开发最直接的理解就是给jQuer
- Rome解析Rss
413277409
Rome解析Rss
import java.net.URL;
import java.util.List;
import org.junit.Test;
import com.sun.syndication.feed.synd.SyndCategory;
import com.sun.syndication.feed.synd.S
- RSA加密解密
无量
加密解密rsa
RSA加密解密代码
代码有待整理
package com.tongbanjie.commons.util;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerat
- linux 软件安装遇到的问题
aichenglong
linux遇到的问题ftp
1 ftp配置中遇到的问题
500 OOPS: cannot change directory
出现该问题的原因:是SELinux安装机制的问题.只要disable SELinux就可以了
修改方法:1 修改/etc/selinux/config 中SELINUX=disabled
2 source /etc
- 面试心得
alafqq
面试
最近面试了好几家公司。记录下;
支付宝,面试我的人胖胖的,看着人挺好的;博彦外包的职位,面试失败;
阿里金融,面试官人也挺和善,只不过我让他吐血了。。。
由于印象比较深,记录下;
1,自我介绍
2,说下八种基本类型;(算上string。楼主才答了3种,哈哈,string其实不是基本类型,是引用类型)
3,什么是包装类,包装类的优点;
4,平时看过什么书?NND,什么书都没看过。。照样
- java的多态性探讨
百合不是茶
java
java的多态性是指main方法在调用属性的时候类可以对这一属性做出反应的情况
//package 1;
class A{
public void test(){
System.out.println("A");
}
}
class D extends A{
public void test(){
S
- 网络编程基础篇之JavaScript-学习笔记
bijian1013
JavaScript
1.documentWrite
<html>
<head>
<script language="JavaScript">
document.write("这是电脑网络学校");
document.close();
</script>
</h
- 探索JUnit4扩展:深入Rule
bijian1013
JUnitRule单元测试
本文将进一步探究Rule的应用,展示如何使用Rule来替代@BeforeClass,@AfterClass,@Before和@After的功能。
在上一篇中提到,可以使用Rule替代现有的大部分Runner扩展,而且也不提倡对Runner中的withBefores(),withAfte
- [CSS]CSS浮动十五条规则
bit1129
css
这些浮动规则,主要是参考CSS权威指南关于浮动规则的总结,然后添加一些简单的例子以验证和理解这些规则。
1. 所有的页面元素都可以浮动 2. 一个元素浮动后,会成为块级元素,比如<span>,a, strong等都会变成块级元素 3.一个元素左浮动,会向最近的块级父元素的左上角移动,直到浮动元素的左外边界碰到块级父元素的左内边界;如果这个块级父元素已经有浮动元素停靠了
- 【Kafka六】Kafka Producer和Consumer多Broker、多Partition场景
bit1129
partition
0.Kafka服务器配置
3个broker
1个topic,6个partition,副本因子是2
2个consumer,每个consumer三个线程并发读取
1. Producer
package kafka.examples.multibrokers.producers;
import java.util.Properties;
import java.util.
- zabbix_agentd.conf配置文件详解
ronin47
zabbix 配置文件
Aliaskey的别名,例如 Alias=ttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]+),,,,\1], 或者ttlsa的用户ID。你可以使用key:vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]+),,,,\1],也可以使用ttlsa.userid。备注: 别名不能重复,但是可以有多个
- java--19.用矩阵求Fibonacci数列的第N项
bylijinnan
fibonacci
参考了网上的思路,写了个Java版的:
public class Fibonacci {
final static int[] A={1,1,1,0};
public static void main(String[] args) {
int n=7;
for(int i=0;i<=n;i++){
int f=fibonac
- Netty源码学习-LengthFieldBasedFrameDecoder
bylijinnan
javanetty
先看看LengthFieldBasedFrameDecoder的官方API
http://docs.jboss.org/netty/3.1/api/org/jboss/netty/handler/codec/frame/LengthFieldBasedFrameDecoder.html
API举例说明了LengthFieldBasedFrameDecoder的解析机制,如下:
实
- AES加密解密
chicony
加密解密
AES加解密算法,使用Base64做转码以及辅助加密:
package com.wintv.common;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decod
- 文件编码格式转换
ctrain
编码格式
package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
- mysql 在linux客户端插入数据中文乱码
daizj
mysql中文乱码
1、查看系统客户端,数据库,连接层的编码
查看方法: http://daizj.iteye.com/blog/2174993
进入mysql,通过如下命令查看数据库编码方式: mysql> show variables like 'character_set_%'; +--------------------------+------
- 好代码是廉价的代码
dcj3sjt126com
程序员读书
长久以来我一直主张:好代码是廉价的代码。
当我跟做开发的同事说出这话时,他们的第一反应是一种惊愕,然后是将近一个星期的嘲笑,把它当作一个笑话来讲。 当他们走近看我的表情、知道我是认真的时,才收敛一点。
当最初的惊愕消退后,他们会用一些这样的话来反驳: “好代码不廉价,好代码是采用经过数十年计算机科学研究和积累得出的最佳实践设计模式和方法论建立起来的精心制作的程序代码。”
我只
- Android网络请求库——android-async-http
dcj3sjt126com
android
在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通
- ORACLE 复习笔记之SQL语句的优化
eksliang
SQL优化Oracle sql语句优化SQL语句的优化
转载请出自出处:http://eksliang.iteye.com/blog/2097999
SQL语句的优化总结如下
sql语句的优化可以按照如下六个步骤进行:
合理使用索引
避免或者简化排序
消除对大表的扫描
避免复杂的通配符匹配
调整子查询的性能
EXISTS和IN运算符
下面我就按照上面这六个步骤分别进行总结:
- 浅析:Android 嵌套滑动机制(NestedScrolling)
gg163
android移动开发滑动机制嵌套
谷歌在发布安卓 Lollipop版本之后,为了更好的用户体验,Google为Android的滑动机制提供了NestedScrolling特性
NestedScrolling的特性可以体现在哪里呢?<!--[if !supportLineBreakNewLine]--><!--[endif]-->
比如你使用了Toolbar,下面一个ScrollView,向上滚
- 使用hovertree菜单作为后台导航
hvt
JavaScriptjquery.nethovertreeasp.net
hovertree是一个jquery菜单插件,官方网址:http://keleyi.com/jq/hovertree/ ,可以登录该网址体验效果。
0.1.3版本:http://keleyi.com/jq/hovertree/demo/demo.0.1.3.htm
hovertree插件包含文件:
http://keleyi.com/jq/hovertree/css
- SVG 教程 (二)矩形
天梯梦
svg
SVG <rect> SVG Shapes
SVG有一些预定义的形状元素,可被开发者使用和操作:
矩形 <rect>
圆形 <circle>
椭圆 <ellipse>
线 <line>
折线 <polyline>
多边形 <polygon>
路径 <path>
- 一个简单的队列
luyulong
java数据结构队列
public class MyQueue {
private long[] arr;
private int front;
private int end;
// 有效数据的大小
private int elements;
public MyQueue() {
arr = new long[10];
elements = 0;
front
- 基础数据结构和算法九:Binary Search Tree
sunwinner
Algorithm
A binary search tree (BST) is a binary tree where each node has a Comparable key (and an associated value) and satisfies the restriction that the key in any node is larger than the keys in all
- 项目出现的一些问题和体会
Steven-Walker
DAOWebservlet
第一篇博客不知道要写点什么,就先来点近阶段的感悟吧。
这几天学了servlet和数据库等知识,就参照老方的视频写了一个简单的增删改查的,完成了最简单的一些功能,使用了三层架构。
dao层完成的是对数据库具体的功能实现,service层调用了dao层的实现方法,具体对servlet提供支持。
&
- 高手问答:Java老A带你全面提升Java单兵作战能力!
ITeye管理员
java
本期特邀《Java特种兵》作者:谢宇,CSDN论坛ID: xieyuooo 针对JAVA问题给予大家解答,欢迎网友积极提问,与专家一起讨论!
作者简介:
淘宝网资深Java工程师,CSDN超人气博主,人称“胖哥”。
CSDN博客地址:
http://blog.csdn.net/xieyuooo
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,