Hibernate 多对多关联 中间表有多个字段如何配置

例如 :学生 与课程之间是多对多关联,中间表不仅有学生表和课程表的主键,中间表还有其他字段(成绩等),该如何配置,用
JPA如何设置,望大家指点指点|

2个回答

一个事例:
LoginInfo.hbm.xml
[code="xml"]

















[/code]

LoginInfo对象
[code="java"]
package com.ucit.ca.webApp.po;

/**

  • CasUserModuleInfo entity. @author MyEclipse Persistence Tools */

public class LoginInfo implements java.io.Serializable {
// Fields
private String lid;
private Uinfo uinfo;
private Module module;
private User user;

// Constructors

/** default constructor */
public LoginInfo() {
}

/** full constructor */
public LoginInfo(Uinfo uinfo, Module module, User user) {
    this.uinfo = uinfo;
    this.module = module;
    this.user = user;
}

// Property accessors

public Uinfo getUinfo() {
    return uinfo;
}

public String getLid() {
    return lid;
}

public void setLid(String lid) {
    this.lid = lid;
}

public void setUinfo(Uinfo uinfo) {
    this.uinfo = uinfo;
}

public Module getModule() {
    return module;
}

public void setModule(Module module) {
    this.module = module;
}

public User getUser() {
    return user;
}

public void setUser(User user) {
    this.user = user;
}

@Override
public boolean equals(Object other) {
    if ((this == other))
        return true;
    if ((other == null))
        return false;
    if (!(other instanceof LoginInfo))
        return false;
    LoginInfo castOther = (LoginInfo) other;

    return ((this.getUser() == castOther.getUser()) || (this.getUser() != null
            && castOther.getUser() != null && this.getUser().equals(
            castOther.getUser())))
            && ((this.getUinfo() == castOther.getUinfo()) || (this
                    .getUinfo() != null
                    && castOther.getUinfo() != null && this.getUinfo()
                    .equals(castOther.getUinfo())))
            && ((this.getModule() == castOther.getModule()) || (this
                    .getModule() != null
                    && castOther.getModule() != null && this.getModule()
                    .equals(castOther.getModule())));
}

@Override
public int hashCode() {
    return "com.ucit.ca.webApp.po.LoginInfo".hashCode();
}

}
[/code]

具体字段再加就是了

Hibernate多对多关联不是很好用,建议设置一个关联表,将多对多变成两个一对多来处理

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于Hibernate 关联同一个表的两个字段的配置
譬如我要A B多对多关联,然后我就加多一个表C作为中间表。 在C中,有两个外键需要关联表A。那么C的hbm.xml需要怎么配置这两个外键呢??
Hibernate多对多关联表问题
我的项目里有门票跟景点两个类 目前设置的是多对多单向关联,即:在门票类里面设置了MANY-TO-MANY,在景点里面没有设置,生成的关联表只有门票的ID跟景点的ID两个字段属性,而且生成的表是readonly只读状态,现在问题来了,查询的时候提示我如下错误: NestedServletException: Request processing failed; nested exception is org.hibernate.ObjectNotFoundException: No row with the given identifier exists 谷歌了一下说是关联表设置问题,可我生成的关联表是只读的,里面也没有数据,我的门票跟景点的主键ID都是自动增长的,想问一下大家,该如何设置好关系??
使用Hibernate 如何把多个表的数据查询到一个POJO
http://blog.csdn.net/yangqicong/article/details/6910740 看了你这篇文章后,有一个疑问. 如果写SQL把 A B 表关联,查询出A 表全部字段和B表一个字段 别名为A 表里一个不被hibernate 创建到数据库表的字段, 也就是说查询出的字段都和A POJO 字段一一对应. 那么我怎么把查询结果放到A POJO 去呢? 然后发现可以尝试 query.setResultTransformer(Transformers.aliasToBean(SM_Power.class)); 但是这样写又有新问题,MYSQL 没有Long类型,但是POJO 里面有,然后hibernate就会报错. query.addScalar("id", Hibernate.LONG); 这样指定了就不会类型错误,但是这样只能查询出一个字段,如果很多个字段那不就搞死人了. 所以以上总结后有2个方案. 1 有没有除了代码1块 的处理结果的其他方法 2 有没有和代码2块 功能相反的方法,除了指定的其他的按照 代码块1的执行转换. 不知道你们是怎么处理的,因为才接触hibernate ,所以请大伙能给个更好的方法.
hibernate 多对多关联 桥接表无实体类 查询两表的所有字段 hql语句该怎么写?
有一个用户表(us_user),一个员工表(sy_emp),一个用户和员工的桥接表(be_orderlite) create table US_User ( u_id varchar(10) primary key,-- 用户编码 u_name varchar(80) not null,-- 用户姓名 u_createDate timestamp NULL default CURRENT_TIMESTAMP,-- 创建日期 u_pwd varchar(20),-- 密码 OrderType int, --类型 u_explain varchar(100),-- 说明 Disabled bit default 0 -- 禁用 (0可使用 1已禁用) ); create table SY_Emp ( e_id int primary key,-- 员工id e_name varchar(50) not null,-- 员工姓名 e_pwd varchar(20) not null,-- 密码 (MD5加密) e_remark varchar(200),-- 备注 Disabled bit default 0 -- 禁用 (0可使用 1已禁用) ); create table be_orderlite ( ol_id int primary key auto_increment,-- 快捷工单ID u_id varchar(10) references us_user(u_id),-- 用户id e_id int references sy_emp(e_id), -- 员工id ); 在User实体类里: private Set<Emp> emps = new HashSet<Emp>(); get set 方法 在Emp实体类里:private Set<User> users = new HashSet<User>();get set 方法 User.hbm.xml: <set name="emps" cascade="save-update,delete" inverse="true" table="be_orderlite" > <key column="u_id" not-null="true"/> <many-to-many unique="true" fetch="select" column="e_id" class="com.zking.sy.zjj.entity.Emp"/> </set> Emp.hbm.xml: <set name="users" cascade="save-update" inverse="false" table="be_orderlite"> <key column="e_id" not-null="true"/> <many-to-many column="u_id" class="com.zking.us.qch.entity.User"/> </set> 怎么写 hql 语句可以查出用户的所有字段和 员工 的名字?
Hibernate 双向多对多关联的问题,更新一主表字段,关联表就会删除该记录在关联表中的对应
是这样,挺普通的设计,t_role(角色)表与t_menu(可访问资源)表的多对多映射。关联表为t_role_menu 目前别的问题都没,就是我发现每次更新一下某个menu的属性,例如名称啦,关联表里就会将所有该menu记录关联对应的记录删除,搞的我每次都要去把该更改过的menu重新加给role,有时会有多个role有可访问该menu的权限,那我就要挨个给这些role把该条menu给加进去,肯定不行。 断断续续弄了一段时间,没搞定。请各位支个招,上代码! Role: [code="java"] public class Role { private Integer id; private String rolename; // 角色名称 //省略部分....... private Set<Menu> menus; // 角色可访问菜单 /** * @return the id */ public Integer getId() { return id; } /** * @param id * the id to set */ public void setId(Integer id) { this.id = id; } /** * @return the rolename */ public String getRolename() { return rolename; } /** * @param rolename * the rolename to set */ public void setRolename(String rolename) { this.rolename = rolename; } /** * @return the menus */ public Set<Menu> getMenus() { return menus; } /** * @param menus * the menus to set */ public void setMenus(Set<Menu> menus) { this.menus = menus; } [/code] Menu: [code="java"] private Integer id; private String menuname;// 菜单名称 private Menu parentMenu;// 上一级菜单 private Set<Menu> childMenus;// 下一级菜单 //省略部分内容..... private Set<Role> role;// 菜单所属角色 /** * @return the childMenus */ public Set<Menu> getChildMenus() { return childMenus; } /** * @param childMenus * the childMenus to set */ public void setChildMenus(Set<Menu> childMenus) { this.childMenus = childMenus; } /** * @return the menuname */ public String getMenuname() { return menuname; } /** * @param menuname * the menuname to set */ public void setMenuname(String menuname) { this.menuname = menuname; } /** * @return the role */ public Set<Role> getRole() { return role; } /** * @param role * the role to set */ public void setRole(Set<Role> role) { this.role = role; } /** * @return the parentMenu */ public Menu getParentMenu() { return parentMenu; } /** * @param parentMenu * the parentMenu to set */ public void setParentMenu(Menu parentMenu) { this.parentMenu = parentMenu; } [/code] 映射文件 Role.hbm.xml: [code="xml"] <id name="id" type="integer"> <column name="id"/> <generator class="increment"></generator> </id> <!-- 省略部分..... --> <!-- 角色菜单多对多 --> <set name="menus" table="t_role_menu" cascade="delete"> <key column="role_id"/> <many-to-many class="com.cb.recruitment.model.Menu" column="menu_id"/> </set> [/code] Menu.hbm.xml: [code="xml"] <id name="id" type="integer"> <column name="id"/> <generator class="increment"/> </id> <!-- 省略部分....--> <!-- 上级菜单--> <many-to-one name="parentMenu" class="com.cb.recruitment.model.Menu" insert="true"> <column name="parent_id" /> </many-to-one> <!-- 下级菜单 --> <set name="childMenus" > <key column="parent_id"/> <one-to-many class="com.cb.recruitment.model.Menu"/> </set> <!-- 菜单角色多对多 --> <set name="role" table="t_role_menu" inverse="true" cascade="delete"> <key column="menu_id"/> <many-to-many class="com.cb.recruitment.model.Role" column="role_id"/> </set> [/code]
hibernate的关联关系,是否数据库表中有外键没有关系?
hibernate的关联关系,是否数据库表中有外键没有关系? 昨天使用了hibernate做了一个多对一的关系,然后在做数据库字段的时候,一开始并没有去建立外键约束,只是把关联字段的信息放了上去,然后CRUD操作都没问题,然后看了一篇帖子,上面看到数据库表中有外键约束,这时候才想起来这个事情,我加了外键以后也没什么问题,再去掉还是没有问题,那么这里是加还是不加外键呢?hibernate自己处理好了吗?有什么区别吗?以后是加好还是不加好呢?谢谢各位了。
Spring+Hibernate多表关联的问题
1.多表关联配置了相关many-to-many 并且在pojo里写了Set 为什么每次添加中间表里都没有数据? 2.是不是添加的控制器如果用spring的simpleFormController继承的话 关联的时候一些外键没法格式化? 因此造成中间表里没有数据? 3.如果中间表里还需要附加其他字段 该怎么办? 比如 student---sid,sname teacher---tid,tname course----sid,tid 我在student的form中有一项是teacher的列表select 在student和teacher的pojo里都有Set对方的代码 添加时用的controller是继承自simpleFormController(其中有一项commandclass我设为了student的pojo) 使用一个共用的DAO,代码段为: [code="java"] ...handleRequest(...request,..response,Command cmd,...)... Student student = (Student)cmd; CommonDAO.saveOrUpdate(student);//如果要添加成功,是否需要在此处加上插入course的语句?问题是,该怎么加,因为teacher的id也包含在cmd里边了吧 [/code] 现在student能进库而course依然为空,为何? [b]问题补充:[/b] 关键之处在于和spring整合 没有人遇到过这个问题吗?
hibernate影射文件问题
多对多关联,关联表除了本身的主键,和两个外键外,还增加一个不能为空的字段,请问在hibernate里怎么利用此不能为空的字段?(中间表没有不能为空的字段情况下,在java中通常中间表的javabean与xx.hbm.xml配置文件通常不写)
hibernate的关联可以代替数据库外键进行约束?
本来还挺明白,我百度了一下“hibernate没有外键的2张表如何进行关联”很多回答不需要外键也能进行关联,越看越玄乎,最后甚至看到了“不需要数据库的外键约束,hibernate配置好关联就行"的定论,我整个人都炸了,hibernate有这么强大?怎么不上天呢?2个问题,请各位回答下: 1.没有外键的2张表真的能建立一对多,多对一等等这些关联?且不说能不能关联,就算能关联,没有下面数据库外键支持的关联有个卵用?我怎么知道这张表的某条数据与另一张表中某些纪录有关?凭什么?更不用说通过一个持久化的实例查出其域中相关联的另一个类实例的属性了(a.b.getxxx()),而且我写了个测试,没有外键与域中关联类的实例做映射,在生成的sql中直接把相关联类实例的名字当作字段进行数据操作,肯定报错啊!也就是说根本不能在域中将关联类的实例作为成员,所以 没有外键的2张表真的能建立关联,还是我认识有局限方法不对? 2.如果我的想法是对的,也就是说没有外键不能建立2个实体类之间多对一等这些关联,那么所谓“hibernate配置关联取代外键约束“是怎么一回事,无论是实际操作还是企业环境中,都觉得外键有必要但是成本太高,数据库的变动拓展起来太麻烦,所以我在想 他们的”hibernate配置取代数据库外键约束"肯定是跟关联设置无关的,这个只影响查询吧,所以他们是再说"我不用外键,我也不用关联,所有的有关系的表,在数据操作时,让开发人员去记,用程序员的sql去维护表之间的约束"这种看起来可行,但出错率高看起来很蠢的方法吧? 内容很多很绕口,感谢看完的你们,希望懂得人能回答一下,我是真的被百度的神人们给弄晕了,感激不尽!
Hibernate关联查询
Project和User表关联,User表中有一个code字段表示上下级关系。 现在想用Hibernate的QBC查询方式完成以下条件的查询。 用sql表示是: [code="sql"] select p.* from Project p left join User u on p.userId = u.id where p.userId <> ? or u.code || '%' like ? [/code] 不知道如何实现,谢谢大家。 [b]问题补充:[/b] 呵呵,是不是我说的不清楚,没人理我。 就是说Project和User是多对一的关系。现在查询需要的是Project的id不等于一个条件或者Project关联的User的code加上一个%去like一个条件。
hibernate的关联关系配置问题
我现在有一个借阅信息类,如下 class Borrow { private String borrowId;// 借阅流水 private Book book; private User borrowUser;// 借阅人 private Date borrowDate;// 借阅日期 private Date shouldReturnDate;// 应还日期 private User orderUser;// 预约人 private int renewNum;// 已续借次数 private User admin;// 处理借阅业务人员 其中有三个User的属性字段,分别是借阅人,预约人,处理人的信息(应该都是1对1的关联) 下面是我的User类 class User { private int userId; private String userName; private String userPwd; private String userEmail; private String userRole;// 用户角色 private String userRight;// 用户借书权限 private float userDebt;// 用户当前欠款 private int userGetNum;// 用户总借书次数 private Borrow borrow;(困惑!!!难道让我写三个么,这样肯定会重复啊) 求大神指点这两者之间的1-1关联配置,Borrow表里存三个User的外键
Hibernate框架如何处理双向多对多且有附加属性的关联?
以学生选课为例,有学生、课程、选课三张表,学生和课程是多对多的关联,如果选课表中加一个 成绩 字段,该如何处理持久化类及其对应的hbm.xml呢? ``` class Student { private long id; private String name;//学生姓名 } class Course { private long id; private String name;//课程名称 } class SelectCourse{ private long sid; private long cid; private int score; } ```
hibernate中映射多对多的问题
在hibernate中,如果要映射多对多的映射比如有两个实体:user, privilege,数据库中通过link表来表示两者的关联关系,单在link中有一个flag标识是否有效,这样怎样在hibernate中解决?拆成两个一对多?还有没有其他方法? [b]问题补充:[/b] 我的意思是link中除了那三个字段之外,我还有一个字段表示这个关系是否生效,也就是说,这个字段是重点,在业务中要靠这个字段来确定映射关系是否有效。谢谢 [b]问题补充:[/b] formular我试过 可是如果我的需求是动态的,怎么办? 其实这才是我的真正问题。 我的意识是flag有很多种值,我需要根据业务选择不同的值,用where只能产生死的值。 [b]问题补充:[/b] 比如说:User和Role之间的多对多关系,中间表USER_ROLE中不仅有user_id和role_id,还有两个子段,标识有效期。有一个是begin_date,一个是end_date。具体到业务上:一个是查询某个user现在所拥有的role,另外一个是:曾经拥有的role。 [b]问题补充:[/b] 感谢回答。
求助!!怎样在一个表多个不同字段中关联另一个表的一个字段,并显示不同内容
1、附各表的情况:![图片说明](https://img-ask.csdn.net/upload/201812/20/1545288947_16682.png) 2、查询语句:![图片说明](https://img-ask.csdn.net/upload/201812/20/1545289403_712052.png) 3怎样查询出mgr_business表中apply_user_id(关联申请人名称),first_approve_user_id(关联一级审批人姓名),second_approve_user_id(关联二级审批人姓名)? 谢谢!
Hibernate一对多一次提交如何处理?
最近使用Hibernate做一个POC项目,其中关于一对多新增、修改功能时碰到了一些疑惑。因为以前没怎么用过Hibernate,所以请大家帮忙看看: 1、一对多修改时,一次提交上来的子表集合的处理。我看了很多Hibernate的介绍,提到的都是一对多级联更新、级联删除等,但是在实际应用中,一个可能的情况是:在一次一对多的修改中,即有对子表的新增、又有对子表的修改和删除这三个操作。举个简单的例子:一个客户Customer有多个的关联地址Address。那么在修改客户信息的页面中,存在着一个所有关联地址的列表,在该列表中可以新增一个地址,也可以修改某个地址,又或者是删除某个地址。当整个修改工作结束后,才会点击提交。这时后台的代码接收到的Customer对象中的地址就包括了新增和修改的记录,同时没有被删除的记录。 对于这种情况,Hibernate能够处理吗?或者说这已经不是Hibernate要解决的问题,应该由应用自己处理不同的情况?我用过merge和saveOrUpdate都不行。 2、第二个问题与Hibernate没有关系,但也是在一对多关系中比较常见的一个问题:一对多在新增时,采用分次提交的方式,即主表和子表的每条记录都是各自提交的方式。现在有个需求是子表的列表需要在主表的新增页面中出现,即当新增主表时,新增页面中有个空的子表的列表,在子表列表中可以新增、修改、删除。这时候就存在着一个问题:主表还没有新增,那么子表新增时就会存在着外键约束的问题。以前我们采取的方式是在进入新增页面时先有个简单的向导页面,产生一条主表的记录,其中大部分字段的值为null,但是这种方式要求主表的绝大部分字段必须为可空的才行。不知道大家有没有什么其它的处理方式? [b]问题补充:[/b] 关于第一个问题,我们以前的做法是:如果只是两层关联关系,那么通常是先将子表的所有数据全部删除,然后再插入从页面提交的列表记录,而不需要区分新增不是修改。而如果层次超过两层,则只能采取遍历的方式,即先查询出子表的所有关联的记录,然后判断是否在页面提交的列表中,如果没有则删除,除此之外就是区分页面提交的列表记录中哪些是新增、哪些是修改的。 现在有了Hibernate之后,我就想是不是可以直接merge主表对象就能达到这种目的,或者是先查询出主表对象,然后采用Customer.getAddresses().clear()将所有子表删除,然后再merge主表。但是好像都不行,所以就不知道在Hibernate所推荐的开发方式中,如何处理好上面那两种情况?
hibernate关联的问题?
现在开始学hibernate,今天看了一本hibernate的书,里面,有一个例子,tb_dept表包含的字段id(唯一标识int型),deptName(varchar型),tb_staff表包含的字段id(唯一标识int型),dept_id(int型),staff_name(varchar型),书本里的意思就是用id来表示部门编号和员工编号。 TbDept.hbm.xml配置 <set name="tbStaffs" inverse="true" cascade="all"> <key> <column name="dept_id" /> </key> <one-to-many class="com.formBean.TbStaff" /> </set> TbStaff.hbm.xml配置 <many-to-one name="tbDept" column="dept_id" class="com.formBean.TbDept" cascade="none" lazy="false"/> 1.TbStaff怎么知道dept_id字段对应b_dept表的id呢? 2.如果我在tb_dept加入deptId(int型)字段,令tb_staff表dept_id字段与它对应,这时应该怎么配置? [b]问题补充:[/b] 我在数据库里面没有设置外键,要关联两个表,一定要设置外键吗? [b]问题补充:[/b] 不知道为什么,不能回贴,只能在这里补充问题了。 to jbin: 我就是只把tb_dept表的id字段作为唯一标记,仅仅是一个唯一的标记,是int型的,然后在里面添加一个varchar型的deptId字段,因为很多部门编号都是带字母的,然后把tb_staff的dept_id改为varchar型,这样方便对应。 如果我有上面的要求,怎么配置? [b]问题补充:[/b] 刚才试了下,自己另外设置外键关联不成功,是不是hibernate规定了tb_staff表的外键必须是tb_dept表的主键?
Hibernate未使用关联模型的多对象查询
现在在公司实习了两个星期了,对于公司代码也熟悉了一点,不知道公司领导怎么想的。下面我说明一下情况。 现在我们做的是一个汽车行业的ERP系统, ORM使用的是Hibernate3.5 关于模型这块,项目经理说不能让用@OneToMany @ManyToMany等等对象关联映射,这样对性能有影响(我个人觉得,首先抛开代码质量不说,这个项目的数据量应该是不用这个方法来提高性能的,你优化一下Hibernate,使用二级缓存我觉得就足够了)而只能直接加一个int字段来指定关联ID。 然后我们就痛苦了,比如一张订货单, 在订货单里面指定了品牌,用途,制造商,颜色,等等信息,都是用的指定ID方式, 当我在页面当中要显示出来的时候,除非信息都在一张表(相当于HQL也只能用在一张表包含需要信息的情况下),要不然就得自己写SQL放到封装好的一个工具类里面得到一个List<Object[]>; 然后得新建一个VO,把你包含的所有信息用for循环遍历出来一个object[] 在根据数据查询中的下标来转型数据,放入VO中 页面当中也是不能使用原来的实体了。(其实用Model1.Model2.Filed1这种方式多方便啊) 得用VO,真的不知道PM不让用关联映射的理由何在?各位有碰见过这种情况吗?你们碰见又是怎么解决的啊? 关于未指定关联对象,只有ID字段的多对象关联查询你们有什么好一点的办法没有啊?
hibernate 一对多查询集合封装的问题
<p>首先祝大家端午节快乐。 <br>最近学习hibernate,正用用他做博客,遇到个问题研究两天了也没研究出个什么。 <br>hibernate一对多集合封装的问题,看文档一对多关联set配置中是主键和外键关联, <br>能不能设置这两个表中任意两个字段关联。google也没搜到(可能是我笨)。 <br>不过有种方法通过HQL关联:</p> <pre name="code" class="sql">select tableone ,tablemany from tableone tablemany where tableone.uuid=tablemany.uuid </pre> <p> <br>可这样代表多的关系的那个表(tablemany)hibernate怎么给他封装成成集合? <br>如果我没说明白回复下我在补充。 <br>研究东西总受折。程序员真不易啊。 <br>秀下博客,快做完了就差这块了。 <br><br><br><img src="/upload/attachment/108737/96f678da-9f65-38ca-92f8-0bfa2217591d.jpg" alt=""><br><br><br><img src="/upload/attachment/108739/7b89e181-2b67-3f15-a2bf-33e74f7bbe49.png" alt=""><br> 晕了,没人回答?<br></p>
如何让级联更新关联数据的字段?内详。
我做逻辑删除。 表A关联表B, 一对多。 逻辑删除实际上就是在表的数据字段的deleted设置一个数字而已。实际上就是更新。那么在更新这个数据的时候,怎么去同时更新他关联的B表的数据的deleted字段呢?谢谢~~ 麻烦看清楚问题哦,不是加cascade,orphanRemoval之类的就能解决的那种。 目前我是更新了A以后,再循环去更新B。
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
130 个相见恨晚的超实用网站,一次性分享出来
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
我在支付宝花了1分钟,查到了女朋友的开房记录!
在大数据时代下,不管你做什么都会留下蛛丝马迹,只要学会把各种软件运用到极致,捉奸简直轻而易举。今天就来给大家分享一下,什么叫大数据抓出轨。据史料证明,马爸爸年轻时曾被...
shell脚本:备份数据库、代码上线
备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11-23.sql 4)需要对1天以前的所有sql文件压缩,格式为gzip 5)本地数据保留1周 6)需要把备份的数据同步到远程备份中心,假如...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
2020年大前端发展趋势
迅速发展的前端开发,在每⼀年,都为开发者带来了新的关键词。2019 年已步⼊尾声,2020 年前端发展的关键词⼜将有哪些呢?发展的方向又会是什么呢?参考2019年大前端的发展,不出意外,前端依旧会围绕⼩程序、超级APP、跨端开发、前端⼯程化以及新技术运用等几个方面进行展开(可以参考2019年大前端技术趋势深度解读)。 小程序 在⼩程序⽅⾯,今年仍然是⼩程序突⻜猛进的⼀年,各⼤主流的 App 都上线...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
1个月时间整理了2019年上千道Java面试题,近500页文档!
Spring 面试题 1、一般问题 1.1、不同版本的 spring Framework 有哪些主要功能? 1.2、什么是 spring Framework? 1.3、列举 spring Framework 的优点。 1.4、spring Framework 有哪些不同的功能? 1.5、spring Framework 中有多少个模块,它们分别是什么? 1.6、什么是 spring ...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
为什么要推荐大家学习字节码?
配套视频: 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨:为什么要学习 JVM 字节码? 可能很多人会觉得没必要,因为平时开发用不到,而且不学这个也没耽误学习。 但是这里分享一点感悟,即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论,有时候你觉得有些技术没用恰恰是...
在阿里,40岁的奋斗姿势
在阿里,40岁的奋斗姿势 在阿里,什么样的年纪可以称为老呢?35岁? 在云网络,有这样一群人,他们的平均年龄接近40,却刚刚开辟职业生涯的第二战场。 他们的奋斗姿势是什么样的呢? 洛神赋 “翩若惊鸿,婉若游龙。荣曜秋菊,华茂春松。髣髴兮若轻云之蔽月,飘飖兮若流风之回雪。远而望之,皎若太阳升朝霞;迫而察之,灼若芙蕖出渌波。” 爱洛神,爱阿里云 2018年,阿里云网络产品部门启动洛神2.0升...
【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答: 首先很多人会先讲下握...
压测学习总结(1)——高并发性能指标:QPS、TPS、RT、吞吐量详解
一、QPS,每秒查询 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 二、TPS,每秒事务 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一...
新程序员七宗罪
当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时,我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验,学习,成功和失败,以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者,谢谢你。 -罗伯特。 ...
活到老,学到老,程序员也该如此
全文共2763字,预计学习时长8分钟 图片来源:Pixabay 此前,“网传阿里巴巴要求尽快实现P8全员35周岁以内”的消息闹得沸沸扬扬。虽然很快被阿里辟谣,但苍蝇不叮无缝的蛋,无蜜不招彩蝶蜂。消息从何而来?真相究竟怎样?我们无从而知。我们只知道一个事实:不知从何时开始,程序猿也被划在了“吃青春饭”行业之列。 饱受“996ICU”摧残后,好不容易“头秃了变强了”,即将步入为“高...
Vue快速实现通用表单验证
本文开篇第一句话,想引用鲁迅先生《祝福》里的一句话,那便是:“我真傻,真的,我单单知道后端整天都是CRUD,我没想到前端整天都是Form表单”。这句话要从哪里说起呢?大概要从最近半个月的“全栈工程师”说起。项目上需要做一个城市配载的功能,顾名思义,就是通过框选和拖拽的方式在地图上完成配载。博主选择了前后端分离的方式,在这个过程中发现:首先,只要有依赖jQuery的组件,譬如Kendoui,即使使用...
2019年Spring Boot面试都问了什么?快看看这22道面试题!
Spring Boot 面试题 1、什么是 Spring Boot? 2、Spring Boot 有哪些优点? 3、什么是 JavaConfig? 4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Sprin...
Unity项目在pc和ios设备上黑屏的原因探究
0x00 由于项目上线了windows平台的项目(别问我为什么,咱也不敢说,咱也不敢问),由Unity5.4.6升级到Unity2018的过程中,遇到了各种各样的坑,本文为避坑指南1。本项目没有使用HDR和抗锯齿,由于查这几个问题查到吐血,前后用了3天的时间,本文充满了怨气,行文非常啰嗦,需要快速解决问题的,可以直接拉到最后看结论。 0x01 法线贴图 项目在unity2018出了新的androi...
关于裁员几点看法及建议
最近网易裁员事件引起广泛关注,昨天网易针对此事,也发了声明,到底谁对谁错,孰是孰非?我们作为吃瓜观众实在是知之甚少,所以不敢妄下定论。身处软件开发这个行业,近一两年来,对...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
【图解算法面试】记一次面试:说说游戏中的敏感词过滤是如何实现的?
版权声明:本文为苦逼的码农原创。未经同意禁止任何形式转载,特别是那些复制粘贴到别的平台的,否则,必定追究。欢迎大家多多转发,谢谢。 小秋今天去面试了,面试官问了一个与敏感词过滤算法相关的问题,然而小秋对敏感词过滤算法一点也没听说过。于是,有了下下事情的发生… 面试官开怼 面试官:玩过王者荣耀吧?了解过敏感词过滤吗?,例如在游戏里,如果我们发送“你在干嘛?麻痹演员啊你?”,由于“麻痹”是一个敏感词,...
相关热词 c# 数组类型 泛型约束 c#的赛狗日程序 c# 传递数组 可变参数 c# 生成存储过程 c# list 补集 c#获得所有窗体 c# 当前秒数转成年月日 c#中的枚举 c# 计算校验和 连续随机数不重复c#
立即提问