Mybatis
Mybatis是一个支持普通SQL查询 ,存储过程 和高级映射 的持久层框架。
Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。
Mybatis可以使用简单的XML 或注解 用于配置和原始映射,将接口和Java的pojo映射成数据库的记录。
1.mybatis-config.xml
在该xml文件中配置连接数据库的一些信息,如数据库驱动(driver),路径(url),账号密码等。该文件一般处于项目最外层。
之后将该xml文件作为resource来一步步实例化SqlSession。
别名标签下,定义该包下的pojo类型可以在写resultType时直接写类名而不用写全限定名。
下用来注册mapper.xml。
2.接下来,应该有一个pojo的包(也可以说是model层。)里面还有pojo类。
pojo对象主要是自己想要读取的内容,将其封装成一个对象,到时候在读取时再将数据库中读取到的内容映射到该类的属性变量中。写好pojo类的属性,自动生成get()set()方法,按情况重写toString()equal()hashCode()方法。
3.然后,需要一个dao层,一般一个pojo对应一个mapper。在dao层里,写mapper.xml和mapper接口。
4.然后,可以在需要访问数据的地方,通过config.xml一步步构建SqlSession,然后获得mapper接口的实例,再用其执行定义好的方法来完成SQL语句执行。
1.SqlSessionFactory
SqlSessionFactory的实例可以通过SqlSessionFactoryBuilder获得,而SqlSessionFactoryBuilder则可以从xml配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例。
从xml文件构建SqlSessionFactory的实例,一般按如下形式:
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSessionFactory用来获得SqlSession实例。
2.SqlSession
SqlSession完全包含了面向数据库执行SQL命令所需的所有方法,可以通过SqlSession实例来执行已映射的SQL语句,也可以通过SqlSession获得mapper接口的实例,然后用该实例来执行SQL方法。
最常用的形式:
SqlSession session = sqlSessionFactory.openSession();
//直接执行
session.selectOne("全限名.方法名",参数)
//实例化mapper
session.getMapper(全限名.class)
使用完SqlSession对象,要调用close()方法将其关闭
在里,最好写namespace,为该mapper的全限名。mapper.xml和mapper接口是同一个较好。
下,即标签,
1.查找单pojo,自己传参,用@param注解。
假设数据库有表:
product_(int id,varchar(20) name)
pojo对象:
Product(int id,String name)
写查询语句:
//ProductMapper.xml<1>
select * from product_ where id = #{id}
//ProductMapper.java
public Product selectById(@param("id") int id);
//test.java
Product p = mapper.selectById(10);
//如果使用#{0}、#{1},则不需要@param注解,#{0}对应第一个参数,依次类推。
2.查找单pojo,用parameterType传对象。
数据库、pojo同上
写查询语句:
//ProductMapper.xml<1>
select * from product_ where id = #{id}
//ProductMapper.java
public Product selectById(Product product);
//test.java
Product p1 = new Product(); p1.setId(10);
Product p2 = mapper.selectById(p1);
//根据传入Product对象,自动取得其id。
3.一对一查询
一对一类似:一个班级只由一个老师负责。一个老师只对应他的那个班级。
则该类数据存储在数据表中的形式应该为:
classes_(int cid,varchar(20) name,int tid)
teacher_(int tid,varchar(20) name,int cid)
pojo对象应该如下定义:
class Classes
{
int cid;
String name;
Teacher teacher;
}
class Teacher
{
int tid;
String name;
Classes classes;
}//省略set/get
mapper.xml写sql:
select c.*,p.* , 'c.cid' cid,'c.name' cname,'t.tid' tid,'t.name' tname
from classes_ c ,teacher_ t
where c.cid = t.cid
实际上,一对一和多对一种,可以理解为一个类包含另一个类的对象。然后在resultMap中作字段名与属性名的映射。在查询语句中,则要把需要的数据都查找出来。
中,type为对应的pojo类全限名。id为唯一标识该resultMap的值,在之后的sql返回参数resultMap中设定。
为数据表中主键对应的标签,和差不多,关键是之后的属性,column对应查询字段值,property对应pojo中的属性值。
用来关联,javaType标识该类全限定名,property一样为pojo相应属性值。
4.一对多,多对一
模型可以理解成,一个班有多个学生,多个学生对应一个班。
数据存储在数据表中的形式应该为:
classes_(int id,varchar(20) name);
student_(int id,varchar(20) name,int cid);
pojo对象应该定义如下:
class Classes
{
int id;
String name;
List student;
}
class Student
{
int id;
String name;
Classes classes;
}
ClassesMapper.xml:
select c.*,s.* c.id cid,c.name cname,s.id sid,s.name sname
from classes_ c , student_ s
where c.id = s.cid
StudentMapper.xml的写法即多对一的写法,和一对一类似。
5.多对多。
模型:一个学生可以加入多个小组,一个小组可以有多个学生。
数据存储形式:
Student_(int id,varchar(20) name);
Group_(int id,varchar(20) name);
Join(int sid,int gid,int price);
pojo定义:
class Student
{
int id;
String name;
List join;
}
class Group
{
int id;
String name;
List join;
}
class Join
{
int sid;
int gid;
int price;
}
StudentMapper.xml和GroupMapper.xml类似
select s.*,g.*,j.* s.id 'sid',s.name 'sname',g.id 'gid',g.name 'gname'
from student_ s,group_ g,join_ j
where s.id = j.sid and g.id = j.gid
//取出List后
for(Group g:gl)
{
int gid = g.getId(); String gname=g.getName();
List jl = g.getJoin();
for(Join j : jl)
{
int price = j.getPrice();
List sl = j.getStudent();
for(Student s : sl)
{
int sid = s.getId(); String sname = s.getName();
}
}
}
1.
一般可以用来增加条件。如:当有某个参数时,按照这个参数进行某种条件筛选。
表示#{id}不为空时
where id > #{id}
2.
如果要写多个时,每个语句都写where,就不能叠加,会造成愈发错误。而一个写where另一个写and追加条件,又会造成只满足and那个时语法错误。如:
where name like concat('%',#{name},'%')
and price > #{price}
所以这种情况,可以用
and name like concat('%',#{name},'%')
如果两个条件都不满足,会自动去掉
3.与类似,在update中,也会碰到多字段问题。这种情况可以使用
name=#{name},
price=#{price}
4.,,达到if-else效果
and name like concat('%',#{name},'%')
and price > #{price}
and id >1
多条件达成时,只会选择最先达成的条件执行接下来的语句。
5.
标签通常用在in这样的语句中。
像是再做一次字符串拼接,方便后续使用。如
1.简单的sql语句,可以直接写成注解形式。如:
@Select("select * from student_")
public List listStudent();
@Update("update student on name = #{name} where id = #{id}")
public int updateStudent(@Param("name") String name,@Param("id") int id);
@Insert("insert into student_ (name) values (#{name}) ")
public int addStudent(Student student);
@Delete("delete from student_ where id = #{0}")
public void deleteStudent(int id);
2.@Results和@Result类似在xml中写resultMap,作用仍是用来确定字段与属性名的映射关系。
而在一对多和多对一的情况下,可以使用@Many和@One注解,关联其他表进行查询。可以用column传参。
3.动态SQL的注释用法。
需要新加一个 SqlProvide类,写好方法后,再用@InsertProvider之类的标签。
1.代码块,用来代码重用
2.limit用来分页
1.#{]和${}的区别是什么
#{}是预编译处理,${}是字符串替换。
Mybatis在处理#{}时,会将sql中的#{}替换为?,调用PreparedStatement的set方法来赋值。
Mybatis在处理${}时,就是把${}替换成变量值。
#{}防止sql注入,安全性高。
2.实体类中的属性名和表中的字段名不一样时:
<1>通过在查询的sql中定义字段名的别名,让字段名的别名和实体类的属性名一样。
<2>通过来映射字段名和实体类属性名的一一对应关系。(column和property)
3.通常一个xml映射文件与一个Dao接口对应。Dao工作原理:
Dao接口,就是人们常说的Mapper接口,接口的全限名,就是映射文件中的namespace的值,接口的方法名,就是映射文件中MappedStatement的id值,接口方法内的参数,就是传递给sql的参数。
Mapper接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MappedStatement
在Mybatis中,每一个、、、标签,都会被解析为一个MappedStatement对象。
Point++
1.分页rowBounds
2.缓存
3.日志
你可能感兴趣的:(秋招准备)
秋招什么时候开始
声优配音圈
一、秋招准备时间秋招是大学生们为了找到理想的工作而进行的招聘季。在秋招开始之前,合理规划准备时间非常重要。一般来说,从7月份开始,大家可以开始构建自己的求职方向和目标,并进行相应的准备工作。这个阶段可以利用暑假时间,参加培训课程或者自主学习,提升自己的专业技能和知识储备。兼职副业推荐公众号,配音新手圈,声优配音圈,新配音兼职圈,配音就业圈,鼎音副业,有声新手圈,每天更新各种远程工作与在线兼职,职位
秋招准备-网易秋招笔试-8
Buyun0
解救小易有一片1000*1000的草地,小易初始站在(1,1)(最左上角的位置)。小易在每一秒会横向或者纵向移动到相邻的草地上吃草(小易不会走出边界)。大反派超超想去捕捉可爱的小易,他手里有n个陷阱。第i个陷阱被安置在横坐标为xi,纵坐标为yi的位置上,小易一旦走入一个陷阱,将会被超超捕捉。你为了去解救小易,需要知道小易最少多少秒可能会走入一个陷阱,从而提前解救小易。输入描述:第一行为一个整数n(
秋招准备-网易秋招笔试题-10
Buyun0
统计回文“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A=“aba”,B
leetcode刷题优质题解(C++,Python,Go语言)
happy der 2b
leetcode题解leetcodec++pythongolang
最近开始为秋招准备,深感自己的编程能力基础弱,遂希望通过刷leetcode来提升数据结构和算法分析能力。过程中发现了几个优质题解,分享给大家,尤其是Carl哥的代码随想录包含C++、Java、Python、Go、JavaScript等等多语言版本。刷题之路很痛苦,愿和大家一块坚持,进步。1、代码随想录---c++刷题攻略代码随想录代码随想录PDF,代码随想录百度网盘,代码随想录知识星球,代码随想录
前端秋招准备Day0 确定学习方向和制定学习计划
想做合格的前端程序员
秋招准备前端学习
作者:小陈的小木屋链接:https://www.nowcoder.com/discuss/258810来源:牛客网一、JavaScript原始值和引用值类型及区别判断数据类型typeof、instanceof、Object.prototype.toString.call()、constructor类数组与数组的区别与转换数组的常见APIbind、call、apply的区别new的原理如何正确判断t
计算机网络(秋招准备,自用)
umbrellalla
面经tcp/ipudp
计算机网络秋招知识储备一、OSI七层模型、TCP/IP四层模型、五层模型、各层常用协议、重要设备(工作于第几层)1.各种模型以及各层的功能作用1.物理层2.数据链路层3.网络层4.传输层5.会话层6.表示层5.应用层2.常用设备及其工作的层次3.常用协议及其所属的层次1.数据链路层ARP(AddressResolutionProtocol)地址解析协议,根据IP地址获取物理地址。MTU2.网络层I
自我剖析-秋招准备
努力的小的的
如果寻找个人成长的痛点,最大的一定是不自信不自信,也可以说是自卑,说话没有底气,遇到自己不确定的,会因害怕自己说错,就自动降低音量甚至消音,也是因为害怕说错,急于解释清楚,什么细节都想说,导致思维混乱,逻辑能力差,最终形成恶性闭环。可是,生活在不断地push你往前走,即将毕业的我马上面临秋招,暑期实习也是屡屡碰壁,一方面是自身实力不够,另一方面是自己表达太差,(这方面除了是因为不自信,另一个原因是
知识储备--基础算法篇-二分搜索
Orange_sparkle
python算法
1.前言最近准备开始刷算法题了,搜了很多相关的帖子,下面三个很不错,计算机视觉秋招准备过程看这个:计算机视觉算法工程师-秋招面经-知乎(zhihu.com)https://zhuanlan.zhihu.com/p/399813916复习深度学习相关知识看深度学习500问:深度学习500问(github.com)https://github.com/scutan90/DeepLearning-500
京东秋招攻略,备考在线测评和网申笔试
小猫测试网
求职招聘职场发展
京东秋招简介伴随着社会竞争越来越激烈,人们投递简历的岗位也变得越来越多元,而无论人们的选择面变成何样,那些知名度较高的企业,永远都备受关注,只要其一发布招聘公告,总有人第一时间踊跃报名。而作为这其中之一的京东,每年的秋招准备工作也备受关注,那么京东的秋招何时开始?它的整个秋招招聘流程又包括哪些环节?除了提前批次,会在7月中旬至8月底提前进行招聘外,正常的有意向的应届本科生和研究生。可在8月底到10
【JavaWeb】知识总结Ⅵ(Tomcat)
边境矢梦°
tomcatjava
欢迎来到@dandelionl_的csdn博文,本文主要讲解Javaweb的相关知识我是dandelionl_,一个正在为秋招准备的学弟喜欢的朋友可以关注一下,下次更新不迷路Ps:月亮越亮说明知识点越重要(重要性或者难度越大)目录一.一张图读懂Tomcat✨什么是servlet?✨Tomcat与servlet的关系✨Servlet与JavaServerPages的关系✨总结二.Tomcat✨Tom
牛客C++项目相关基础知识汇总
烧烤Yes火锅No
秋招后端知识汇总网络服务器后端
在秋招准备项目时,对于牛客C++WebServer项目的基础理论知识进行了总结HTTPHTTP协议格式1)HTTP请求1.首行:[方法]+[url]+[版本]**2.Header:**请求的属性,冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束**3.Body:**空行后面的内容都是body,body允许为空字符串,如果body存在,则在Header中会有一个Conte
【后端秋招准备笔记——数据结构与算法基础】
Moson864
c++数据结构
数据结构与算法基础算是先复习一遍之前学过的数据结构与算法课吧,采用的是看课加书结合的方法。课程选择的是青岛大学-王卓老师的数据结构课,王老师讲解的非常清晰,而且课程规划和节奏也非常好,观看体验极佳。附课程链接:数据结构与算法基础(青岛大学-王卓)下面是课程笔记,记得比较随性,等秋招全部结束我再回来慢慢梳理,该打补丁打补丁。1.算法和算法分析事前估计和事后估计假设每条语句所需的时间均为单位时间算法的
嵌入式面试常见问题(一)
梅山剑客
嵌入式面试面试嵌入式c语言linux操作系统
为2022秋招准备,不打无准备之仗。第一章、进程与线程1、什么是进程、线程,有什么区别?进程是资源(CPU、内存等)分配的基本单位,线程是CPU调度和分配的基本单位(程序执行的最小单位)。同一时间,如果CPU是单核,只有一个进程在执行,所谓的并发执行,也是顺序执行,只不过由于切换速度太快,你以为这些进程在同步执行而已。多核CPU可以同一时间点有多个进程在执行。2、多进程、多线程的优缺点说明:一个进
我的秋招总结:互联网求职必读
古老的屋檐下
互联网求职应届生互联网求职面试总结分享求职总结互联网求职总结java总结offer总结offer面经
博主是19年7月毕业的应届生:985、A+学科硕士。2018年的秋招收获了:**百度、腾讯、头条、美团、猿辅导、度小满、猫眼、流利说**等offer。offer薪资最低30W,最高35W。2018.4-2018.9,秋招准备了整整半年。整个准备期间有过迷茫、沮丧、自我怀疑等一些负面情绪。现在回过头来看,这些负面情绪大多因为对自己的定位不准确造成的。从另外一个角度看,求职面试从某种层面讲其实也是一种
2023届秋招总结_嵌入式软件开发
Pilgrim0
驱动开发单片机求职招聘
虽然秋招还没结束,但是意向公司要么在泡池子,要么早早感谢信了,因此做个总结吧。作为一个三无菜逼,无实习无竞赛无论文,秋招准备得还晚,没有时间做合适得项目,只能靠着课题的项目,可以说是被秋招大军冲得稀碎。写在开头,无论是找什么样的工作,项目经历都是最重要的,能有实习或者竞赛或者其他落地的项目是最好的,其次是在网上自学的项目。没有项目可能连简历关都过不去,而且面试时基本都是围绕项目来提问,追问项目或者
2023程序员秋招准备 c/c++Linux后端开发岗(简历/技术面)技能体系总结
Linux后台开发狮
c++linux面试
前言23年秋招已经打响了;同学们都有准备好了吗?现在就业环境怎么样就不用我说了吧;之前很多的贴说哀鸿遍野删了又写,写了又删。各个互联网大厂招聘情况都不堪入目;百度提前批基本只给了实习生,字节也缩招将近2/3,腾讯更是惨不忍睹,各大厂今年都不好过。秋招hc的数量情况,去年字节秋招8k个hc,今年只有3k个,美团去年1w左右,今年5k,百度去年8k,今年2k。今年很多就业辅导学员都投了研究所、央企、外
【模板】创建一个属于自己的CSDN模板
西科胡先生
ui
*★,°*:.☆( ̄▽ ̄)/$:*.°★*欢迎来到老胡的csdn博文,本文主要讲解如何创建一个属于自己的csdn模板,基于这篇文章,期待你也有一个属于自己的csdn模板我是老胡,一个正在为秋招准备的学弟喜欢的朋友可以关注一下,下次更新不迷路目录前言一、初始知识二、富文本编辑模板三、MarkDown编辑模板内容设置->设置->博客设置->默认编辑器二、富文本编辑模板创建模板位置:这种模式下只需要添加
秋招准备计划-每日记录完成情况
折叠的小饼干
拒绝摆烂防摆
感觉自己真的太摆了,开个记录贴开始时间:4月23日截止日期:6月1日目标:1.计算机基础常见问题可以完整复述(1)计网自顶向下极客时间专栏小林coding整理Leetcode(2)数据库Mysql:极客时间45讲小林coding整理从根上理解Mysql牛客SQLRedis:Redis设计与实现视频(3)操作系统小林coding极客时间专栏总结视频LeetcodeLInux(4)算法代码随想录1刷+
秋招准备-网易秋招笔试-3
Buyun0
网易2017秋招笔试题-3牛客网题目描述字符迷阵是一种经典的智力游戏。玩家需要在给定的矩形的字符迷阵中寻找特定的单词。在这题的规则中,单词是如下规定的:1.在字符迷阵中选取一个字符作为单词的开头;2.选取右方、下方、或右下45度方向作为单词的延伸方向;3.以开头的字符,以选定的延伸方向,把连续得到的若干字符拼接在一起,则称为一个单词。image以图1为例,如果要在其中寻找单词"WORD",则绿色框
非科班程序员秋招准备干货分享与学习路线-计算机基础突击与刷题秘籍
bug去哪儿
面试c++
0前言秋招结束,就以一篇博客文章为秋招画上句号吧!这也是我的第一篇博客,也意味着新的开始。这篇文章的主要内容是以我的亲身经历为基础,总结自己在备战秋招过程中用到的资料和积累的经验,干货满满~因为女朋友在北京,而且我是内蒙人,图离家近所以秋招面的都是北京的企业,岗位都是后台开发,拿到的有offer如下:诸如腾讯微视(go语言后台开发),百度智能云(C++分布式存储开发),商汤,华为,京东数科等等本文
2021秋招扬帆起航,祝追梦路上的学子九转功成!长风破浪会有时,直挂云帆济沧海!小小的本科也有大大的梦想!
江南、董少
2021秋招秋招准备2021校招心得体会
一、前言九月已至,秋招正在火热的进行中,想必也有很多人已经在提前批拿到了Offer,转眼间,自己也来到了大四,正在忙碌为秋招准备之中一直想写一篇秋招的文章,以此来记录自己的体会以及对大学生涯的追忆(我已不再是当初那个少年),但是一直没有完成。今天,外面下着小雨,刚吃完晚饭,因为疫情的原因在家宅了近半年,再过几天就要返校了,心中透露着难以言喻的感觉,特此写一篇文章来记录一下最近的心情感受(我不太会写
2018秋招准备
curryche
求职-面试
不知不觉秋招马上要来临了,之前划水了那么久的我也感受到了压力,从今天起好好准备秋招,拿到心仪offer,挣钱养女票~因为一直以来对数据挖掘和数据分析比较感兴趣,所以秋招的目标是互联网公司的数据挖掘岗位,或者与之相近的机器学习算法工程师,今年的算法岗位形势还是很严峻的,所以需要好好准备。1.数据结构与算法、C++《大话数据结构》:比较简洁的一本关于数据结构知识讲解的书《剑指offer》《程序员面试宝
秋招准备1
没有撤退可言~
C++小工修炼之路
为什么选择deque作为stack和queue的底层默认容器?首先要知道,stack是一种后进先出的特殊线性数据结构,因此只要具有push_back()和pop_back()操作的线性结构,都可以作为stack的底层容器,比如vector和list都可以;queue是先进先出的特殊线性数据结构,只要具有push_back和pop_front操作的线性结构,都可以作为queue的底层容器,比如lis
秋招准备之——MySQL复习
MeteorChenBo
复习mysql数据库java
秋招复习笔记系列目录(不断更新中):1.数据结构全系列2.计算机网络知识整理(一)3.计算机网络知识整理(二)4.Java虚拟机知识整理5.计算机操作系统6.深入理解HashMap7.深入理解ConcurrentHashMap8.MySQL继续来分享自己的整理的MySQL的知识。本篇博客主要是自己在看《高性能MySQL》的过程中做的笔记,其中夹杂着一些对一些知识的深入的解释,这些解释大多是从别人的
秋招准备之——计算机网络知识整理(二)
MeteorChenBo
复习
秋招复习笔记系列目录(不断更新中):1.数据结构全系列2.计算机网络知识整理(一)3.计算机网络知识整理(二)4.Java虚拟机知识整理5.计算机操作系统6.深入理解HashMap7.深入理解ConcurrentHashMap8.MySQL上一篇博客总结了计算机网络的物理层、数据链路层和网络层。这里继续总结运输层和应用层。因为应用层涉及到了HTTP协议,所以本博客对HTTP的介绍部分参考《图解HT
秋招准备之——深入理解ConcurrentHashMap(JDK1.8)
MeteorChenBo
复习
秋招复习笔记系列目录(不断更新中):1.数据结构全系列2.计算机网络知识整理(一)3.计算机网络知识整理(二)4.Java虚拟机知识整理5.计算机操作系统6.深入理解HashMap7.深入理解ConcurrentHashMap8.MySQL一、前言以前感觉HashMap难懂,直到我看了ConcurrentHashMap。。。不过,等真的读懂了源码,不得不感叹,DougLea大爷还是你大爷,看的过程
秋招准备之——深入理解HashMap(JDK1.8)
MeteorChenBo
复习
秋招复习笔记系列目录(不断更新中):1.数据结构全系列2.计算机网络知识整理(一)3.计算机网络知识整理(二)4.Java虚拟机知识整理5.计算机操作系统6.深入理解HashMap7.深入理解ConcurrentHashMap8.MySQL一、介绍1.1前言最近在研究Java集合的内容,本来想像前面那样将整个集合都放在一篇博客里面,但发现HashMap、ConcurrentHashMap还有Lin
秋招准备之——Java虚拟机
MeteorChenBo
复习
秋招复习笔记系列目录(不断更新中):1.数据结构全系列2.计算机网络知识整理(一)3.计算机网络知识整理(二)4.Java虚拟机知识整理5.计算机操作系统6.深入理解HashMap7.深入理解ConcurrentHashMap前段时间看了周志明老师的《深入理解Java虚拟机(第三版)》,加上自己在看的过程中查找的一些资料和理解,做了一些笔记,今天趁着复习,在这里分享一下。希望能帮助到同在复习Jav
秋招准备之——计算机网络知识整理(一)
MeteorChenBo
复习
秋招复习笔记系列目录(不断更新中):1.数据结构全系列2.计算机网络知识整理(一)3.计算机网络知识整理(二)4.Java虚拟机知识整理5.计算机操作系统6.深入理解HashMap7.深入理解ConcurrentHashMap8.MySQL这两天在看谢希仁老师的《计算机网络》,通过思维导图做了一些笔记,在这里记录一下,也分享给有需要的同学。整篇博客大多是摘抄整理原书,其中加了自己的一些理解,如有错
秋招准备(一)选择
Chen-FangLiang
2019年秋招经验
选择大于努力,先来谈谈怎么选择吧!一、行业的选择软件就业还是比较容易的,关键还是看你如何选择,简单列几个选择项:A:互联网优点:待遇好,机会多。未来充满无限可能。缺点:加班严重,基本都在一线大厂,生活压力极大。B:银行/国企优点:待遇可观,工作稳定。缺点:未来选择的机会会比较少C:高校/科研机构优点:待遇一般,富有创造性,社会地位比较高(个人观点)缺点:基本就不会挪窝了。D:医疗/制造业等优点:竞
jvm调优总结(从基本概念 到 深度优化)
oloz
javajvmjdk虚拟机应用服务器
JVM参数详解:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
【Scala十六】Scala核心十:柯里化函数
bit1129
scala
本篇文章重点说明什么是函数柯里化,这个语法现象的背后动机是什么,有什么样的应用场景,以及与部分应用函数(Partial Applied Function)之间的联系 1. 什么是柯里化函数
A way to write functions with multiple parameter lists. For instance
def f(x: Int)(y: Int) is a
HashMap
dalan_123
java
HashMap在java中对很多人来说都是熟的;基于hash表的map接口的非同步实现。允许使用null和null键;同时不能保证元素的顺序;也就是从来都不保证其中的元素的顺序恒久不变。
1、数据结构
在java中,最基本的数据结构无外乎:数组 和 引用(指针),所有的数据结构都可以用这两个来构造,HashMap也不例外,归根到底HashMap就是一个链表散列的数据
Java Swing如何实时刷新JTextArea,以显示刚才加append的内容
周凡杨
java更新swingJTextArea
在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。
问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现
servlet或struts的Action处理ajax请求
g21121
servlet
其实处理ajax的请求非常简单,直接看代码就行了:
//如果用的是struts
//HttpServletResponse response = ServletActionContext.getResponse();
// 设置输出为文字流
response.setContentType("text/plain");
// 设置字符集
res
FineReport的公式编辑框的语法简介
老A不折腾
finereport公式总结
FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式。
简单的说下自己感觉的公式要注意的几个地方:
1.if语句语法刚接触感觉比较奇怪,if(条件式子,值1,值2),if可以嵌套,if(条件式子1,值1,if(条件式子2,值2,值3)
linux mysql 数据库乱码的解决办法
墙头上一根草
linuxmysql数据库乱码
linux 上mysql数据库区分大小写的配置
lower_case_table_names=1 1-不区分大小写 0-区分大小写
修改/etc/my.cnf 具体的修改内容如下:
[client]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/va
我的spring学习笔记6-ApplicationContext实例化的参数兼容思想
aijuans
Spring 3
ApplicationContext能读取多个Bean定义文件,方法是:
ApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[]{“bean-config1.xml”,“bean-config2.xml”,“bean-config3.xml”,“bean-config4.xml
mysql 基准测试之sysbench
annan211
基准测试mysql基准测试MySQL测试sysbench
1 执行如下命令,安装sysbench-0.5:
tar xzvf sysbench-0.5.tar.gz
cd sysbench-0.5
chmod +x autogen.sh
./autogen.sh
./configure --with-mysql --with-mysql-includes=/usr/local/mysql
sql的复杂查询使用案列与技巧
百合不是茶
oraclesql函数数据分页合并查询
本片博客使用的数据库表是oracle中的scott用户表;
------------------- 自然连接查询
查询 smith 的上司(两种方法)
&
深入学习Thread类
bijian1013
javathread多线程java多线程
一. 线程的名字
下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()和void setName(String)两个方法用来设置和获取这个属性的值。
同时,Thr
JSON串转换成Map以及如何转换到对应的数据类型
bijian1013
javafastjsonnet.sf.json
在实际开发中,难免会碰到JSON串转换成Map的情况,下面来看看这方面的实例。另外,由于fastjson只支持JDK1.5及以上版本,因此在JDK1.4的项目中可以采用net.sf.json来处理。
一.fastjson实例
JsonUtil.java
package com.study;
impor
【RPC框架HttpInvoker一】HttpInvoker:Spring自带RPC框架
bit1129
spring
HttpInvoker是Spring原生的RPC调用框架,HttpInvoker同Burlap和Hessian一样,提供了一致的服务Exporter以及客户端的服务代理工厂Bean,这篇文章主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成
在
【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中
【Mahout二】基于Mahout CBayes算法的20newsgroup的脚本分析
bit1129
Mahout
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information re
nginx三种获取用户真实ip的方法
ronin47
随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户的真实IP地址,如果后端是apache,请跳转到<apache获取用户真实IP地址>,如果是后端真实服务器是nginx,那么继续往下看。
实例环境: 用户IP 120.22.11.11
java-判断二叉树是不是平衡
bylijinnan
java
参考了
http://zhedahht.blog.163.com/blog/static/25411174201142733927831/
但是用java来实现有一个问题。
由于Java无法像C那样“传递参数的地址,函数返回时能得到参数的值”,唯有新建一个辅助类:AuxClass
import ljn.help.*;
public class BalancedBTree {
BeanUtils.copyProperties VS PropertyUtils.copyProperties
诸葛不亮
PropertyUtilsBeanUtils
BeanUtils.copyProperties VS PropertyUtils.copyProperties
作为两个bean属性copy的工具类,他们被广泛使用,同时也很容易误用,给人造成困然;比如:昨天发现同事在使用BeanUtils.copyProperties copy有integer类型属性的bean时,没有考虑到会将null转换为0,而后面的业
[金融与信息安全]最简单的数据结构最安全
comsci
数据结构
现在最流行的数据库的数据存储文件都具有复杂的文件头格式,用操作系统的记事本软件是无法正常浏览的,这样的情况会有什么问题呢?
从信息安全的角度来看,如果我们数据库系统仅仅把这种格式的数据文件做异地备份,如果相同版本的所有数据库管理系统都同时被攻击,那么
vi区段删除
Cwind
linuxvi区段删除
区段删除是编辑和分析一些冗长的配置文件或日志文件时比较常用的操作。简记下vi区段删除要点备忘。
vi概述
引文中并未将末行模式单独列为一种模式。单不单列并不重要,能区分命令模式与末行模式即可。
vi区段删除步骤:
1. 在末行模式下使用:set nu显示行号
非必须,随光标移动vi右下角也会显示行号,能够正确找到并记录删除开始行
清除tomcat缓存的方法总结
dashuaifu
tomcat缓存
用tomcat容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开 依然是以前的Jsp的页面。
出现这种现象的原因主要是tomcat缓存的原因。
解决办法如下:
在jsp文件头加上
<meta http-equiv="Expires" content="0"> <meta http-equiv="kiben&qu
不要盲目的在项目中使用LESS CSS
dcj3sjt126com
Webless
如果你还不知道LESS CSS是什么东西,可以看一下这篇文章,是我一朋友写给新人看的《CSS——LESS》
不可否认,LESS CSS是个强大的工具,它弥补了css没有变量、无法运算等一些“先天缺陷”,但它似乎给我一种错觉,就是为了功能而实现功能。
比如它的引用功能
?
.rounded_corners{
[入门]更上一层楼
dcj3sjt126com
PHPyii2
更上一层楼
通篇阅读完整个“入门”部分,你就完成了一个完整 Yii 应用的创建。在此过程中你学到了如何实现一些常用功能,例如通过 HTML 表单从用户那获取数据,从数据库中获取数据并以分页形式显示。你还学到了如何通过 Gii 去自动生成代码。使用 Gii 生成代码把 Web 开发中多数繁杂的过程转化为仅仅填写几个表单就行。
本章将介绍一些有助于更好使用 Yii 的资源:
Apache HttpClient使用详解
eksliang
httpclienthttp协议
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会
zxing二维码扫描功能
gundumw100
androidzxing
经常要用到二维码扫描功能
现给出示例代码
import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;
import android.app.Activity;
import an
纯HTML+CSS带说明的黄色导航菜单
ini
htmlWebhtml5csshovertree
HoverTree带说明的CSS菜单:纯HTML+CSS结构链接带说明的黄色导航
在线体验效果:http://hovertree.com/texiao/css/1.htm代码如下,保存到HTML文件可以看到效果:
<!DOCTYPE html >
<html >
<head>
<title>HoverTree
fastjson初始化对性能的影响
kane_xie
fastjson序列化
之前在项目中序列化是用thrift,性能一般,而且需要用编译器生成新的类,在序列化和反序列化的时候感觉很繁琐,因此想转到json阵营。对比了jackson,gson等框架之后,决定用fastjson,为什么呢,因为看名字感觉很快。。。
网上的说法:
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
基于Mybatis封装的增删改查实现通用自动化sql
mengqingyu
DAO
1.基于map或javaBean的增删改查可实现不写dao接口和实现类以及xml,有效的提高开发速度。
2.支持自定义注解包括主键生成、列重复验证、列名、表名等
3.支持批量插入、批量更新、批量删除
<bean id="dynamicSqlSessionTemplate" class="com.mqy.mybatis.support.Dynamic
js控制input输入框的方法封装(数字,中文,字母,浮点数等)
qifeifei
javascript js
在项目开发的时候,经常有一些输入框,控制输入的格式,而不是等输入好了再去检查格式,格式错了就报错,体验不好。 /** 数字,中文,字母,浮点数(+/-/.) 类型输入限制,只要在input标签上加上 jInput="number,chinese,alphabet,floating" 备注:floating属性只能单独用*/
funct
java 计时器应用
tangqi609567707
javatimer
mport java.util.TimerTask; import java.util.Calendar; public class MyTask extends TimerTask { private static final int
erlang输出调用栈信息
wudixiaotie
erlang
在erlang otp的开发中,如果调用第三方的应用,会有有些错误会不打印栈信息,因为有可能第三方应用会catch然后输出自己的错误信息,所以对排查bug有很大的阻碍,这样就要求我们自己打印调用的栈信息。用这个函数:erlang:process_display (self (), backtrace).需要注意这个函数只会输出到标准错误输出。
也可以用这个函数:erlang:get_s
按字母分类:
ABCDEFGHIJKLMNOPQRSTUVWXYZ其他
首页 -
关于我们 -
站内搜索 -
Sitemap -
侵权投诉
版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.