Hibernate一对一映射示例注释

今天我们将研究Hibernate中的一对一映射。我们将使用Annotation和XML配置来研究Hibernate One To One Mapping示例。

目录[ 隐藏 ]

  • 1 Hibernate中的一对一映射

    • 1.1 Hibernate一对一映射示例数据库设置
    • 1.2 Hibernate一对一映射示例项目结构
    • 1.3 Hibernate Maven依赖项
    • 1.4 Hibernate一对一映射模型类
    • 1.5 Hibernate一对一映射配置
    • 1.6休眠配置文件
    • 1.7 Hibernate SessionFactory实用程序
    • 1.8 Hibernate一对一映射XML配置测试程序
  • 2 Hibernate一对一映射注释
    • 2.1休眠配置文件
    • 2.2 Hibernate一对一映射注释示例模型类
    • 2.3 Hibernate SessionFactory实用工具类
    • 2.4 Hibernate一对一映射注释示例测试程序

Hibernate中的一对一映射

大多数情况下,数据库表彼此相关联。有许多形式的关联 - 一对一一对多多对多在广泛的层面。这些可以进一步分为单向和双向映射。今天,我们将研究使用XML配置以及使用注释配置实现Hibernate一对一映射

Hibernate一对一映射示例数据库设置

首先,我们需要在数据库表中设置一对一映射。我们将为我们的示例创建两个表 - Transaction和Customer。这两个表都将具有一对一的映射。Transaction将是主表,我们将使用Customer表中的Foreign Key进行一对一映射。

我正在提供MySQL脚本,这是我在本教程中使用的数据库。如果您正在使用任何其他数据库,请确保相应地更改脚本。


-- Create Transaction Table
CREATE TABLE `Transaction` (`txn_id` int(11) unsigned NOT NULL AUTO_INCREMENT,`txn_date` date NOT NULL,`txn_total` decimal(10,0) NOT NULL,PRIMARY KEY (`txn_id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;-- Create Customer table
CREATE TABLE `Customer` (`txn_id` int(11) unsigned NOT NULL,`cust_name` varchar(20) NOT NULL DEFAULT '',`cust_email` varchar(20) DEFAULT NULL,`cust_address` varchar(50) NOT NULL DEFAULT '',PRIMARY KEY (`txn_id`),CONSTRAINT `customer_ibfk_1` FOREIGN KEY (`txn_id`) REFERENCES `Transaction` (`txn_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

表之间的上述一对一映射的实体关系图(ERD)如下图所示。

我们的数据库设置准备就绪,现在让我们继续进行Hibernate One to One示例项目。

Hibernate一对一映射示例项目结构

在Java IDE中创建一个简单的Maven项目,我正在使用Eclipse。我们的最终项目结构如下图所示。

首先,我们将研究基于XML的Hibernate一对一映射示例,然后我们将使用注释实现相同的功能。

Hibernate Maven依赖项

我们的最终pom.xml文件如下所示。


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.journaldev.hibernate</groupId><artifactId>HibernateOneToOneMapping</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.3.5.Final</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.0.5</version></dependency></dependencies>
</project>

依赖关系只适用于hibernate和mysql java驱动程序。请注意,我正在使用基于我的MySQL数据库服务器版本(5.0.5)的Hibernate最新版本4.3.5.Final和MySQL java驱动程序。

Hibernate 4使用JBoss日志记录,它作为传递依赖项自动导入。您可以在项目的maven依赖项中确认它。如果您使用的是Hibernate旧版本,则可能必须添加slf4j依赖项。

Hibernate一对一映射模型类

用于反映数据库表的Hibernate One to One映射的模型类如下所示。


package com.journaldev.hibernate.model;import java.util.Date;public class Txn {private long id;private Date date;private double total;private Customer customer;@Overridepublic String toString(){return id+", "+total+", "+customer.getName()+", "+customer.getEmail()+", "+customer.getAddress();}public long getId() {return id;}public void setId(long id) {this.id = id;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public double getTotal() {return total;}public void setTotal(double total) {this.total = total;}public Customer getCustomer() {return customer;}public void setCustomer(Customer customer) {this.customer = customer;}}

package com.journaldev.hibernate.model;public class Customer {private long id;private String name;private String email;private String address;private Txn txn;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public Txn getTxn() {return txn;}public void setTxn(Txn txn) {this.txn = txn;}}

由于我们使用基于XML的配置进行映射,因此上面的模型类是简单的POJO类或带有getter-setter方法的Java Bean。我使用类名Txn来避免混淆,因为Hibernate API有一个类名Transaction

Hibernate一对一映射配置

让我们为Txn和Customer表创建一对一的hibernate映射配置文件。

txn.hbm.xml


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="com.journaldev.hibernate.model.Txn" table="TRANSACTION" ><id name="id" type="long"><column name="txn_id" /><generator class="identity" /></id><property name="date" type="date"><column name="txn_date" /></property><property name="total" type="double"><column name="txn_total" /></property><one-to-one name="customer" class="com.journaldev.hibernate.model.Customer"cascade="save-update" /></class></hibernate-mapping>

上面要注意的重点是one-to-one客户属性的hibernate 元素。

customer.hbm.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.org/dtd/hibernate-mapping-3.0.dtd" >
<hibernate-mapping><class name="com.journaldev.hibernate.model.Customer" table="CUSTOMER"><id name="id" type="long"><column name="txn_id" /><generator class="foreign"><param name="property">txn</param></generator></id><one-to-one name="txn" class="com.journaldev.hibernate.model.Txn"constrained="true"></one-to-one><property name="name" type="string"><column name="cust_name"></column></property><property name="email" type="string"><column name="cust_email"></column></property><property name="address" type="string"><column name="cust_address"></column></property></class></hibernate-mapping>

generator class =“foreign”是用于hibernate 外键实现的重要部分。

休眠配置文件

这是基于XML的hibernate映射配置的hibernate配置文件。

hibernate.cfg.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration><session-factory><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.password">pankaj123</property><property name="hibernate.connection.url">jdbc:mysql://localhost/TestDB</property><property name="hibernate.connection.username">pankaj</property><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><property name="hibernate.current_session_context_class">thread</property><property name="hibernate.show_sql">true</property><mapping resource="txn.hbm.xml"/><mapping resource="customer.hbm.xml"/></session-factory>
</hibernate-configuration>

Hibernate配置文件很简单,它具有数据库连接属性和hibernate映射资源。

Hibernate SessionFactory实用程序

这是创建hibernate SessionFactory实例的实用程序类。


package com.journaldev.hibernate.util;import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;public class HibernateUtil {private static SessionFactory sessionFactory;private static SessionFactory buildSessionFactory() {try {// Create the SessionFactory from hibernate.cfg.xmlConfiguration configuration = new Configuration();configuration.configure("hibernate.cfg.xml");System.out.println("Hibernate Configuration loaded");ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();System.out.println("Hibernate serviceRegistry created");SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);return sessionFactory;}catch (Throwable ex) {System.err.println("Initial SessionFactory creation failed." + ex);ex.printStackTrace();throw new ExceptionInInitializerError(ex);}}public static SessionFactory getSessionFactory() {if(sessionFactory == null) sessionFactory = buildSessionFactory();return sessionFactory;}
}

就是这样,让我们​​编写一个测试程序来测试hibernate一对一映射基于xml的配置。

Hibernate一对一映射XML配置测试程序

在hibernate一对一映射示例测试程序中,首先我们将创建Txn对象并保存它。一旦将其保存到数据库中,我们将使用生成的id来检索Txn对象并将其打印出来。


package com.journaldev.hibernate.main;import java.util.Date;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;import com.journaldev.hibernate.model.Customer;
import com.journaldev.hibernate.model.Txn;
import com.journaldev.hibernate.util.HibernateUtil;public class HibernateOneToOneMain {public static void main(String[] args) {Txn txn = buildDemoTransaction();SessionFactory sessionFactory = null;Session session = null;Transaction tx = null;try{//Get SessionsessionFactory = HibernateUtil.getSessionFactory();session = sessionFactory.getCurrentSession();System.out.println("Session created");//start transactiontx = session.beginTransaction();//Save the Model objectsession.save(txn);//Commit transactiontx.commit();System.out.println("Transaction ID="+txn.getId());//Get Saved Trasaction DataprintTransactionData(txn.getId(), sessionFactory);}catch(Exception e){System.out.println("Exception occured. "+e.getMessage());e.printStackTrace();}finally{if(!sessionFactory.isClosed()){System.out.println("Closing SessionFactory");sessionFactory.close();}}}private static void printTransactionData(long id, SessionFactory sessionFactory) {Session session = null;Transaction tx = null;try{//Get SessionsessionFactory = HibernateUtil.getSessionFactory();session = sessionFactory.getCurrentSession();//start transactiontx = session.beginTransaction();//Save the Model objectTxn txn = (Txn) session.get(Txn.class, id);//Commit transactiontx.commit();System.out.println("Transaction Details=\n"+txn);}catch(Exception e){System.out.println("Exception occured. "+e.getMessage());e.printStackTrace();}}private static Txn buildDemoTransaction() {Txn txn = new Txn();txn.setDate(new Date());txn.setTotal(100);Customer cust = new Customer();cust.setAddress("Bangalore, India");cust.setEmail("pankaj@gmail.com");cust.setName("Pankaj Kumar");txn.setCustomer(cust);cust.setTxn(txn);return txn;}}

现在,当我们在hibernate测试程序中运行一对一映射时,我们得到以下输出。


Hibernate Configuration loaded
Hibernate serviceRegistry created
Session created
Hibernate: insert into TRANSACTION (txn_date, txn_total) values (?, ?)
Hibernate: insert into CUSTOMER (cust_name, cust_email, cust_address, txn_id) values (?, ?, ?, ?)
Transaction ID=19
Hibernate: select txn0_.txn_id as txn_id1_1_0_, txn0_.txn_date as txn_date2_1_0_, txn0_.txn_total as txn_tota3_1_0_,
customer1_.txn_id as txn_id1_0_1_, customer1_.cust_name as cust_nam2_0_1_, customer1_.cust_email as cust_ema3_0_1_,
customer1_.cust_address as cust_add4_0_1_ from TRANSACTION txn0_ left outer join CUSTOMER customer1_ on
txn0_.txn_id=customer1_.txn_id where txn0_.txn_id=?
Transaction Details=
19, 100.0, Pankaj Kumar, pankaj@gmail.com, Bangalore, India
Closing SessionFactory

正如您所看到的那样,它工作正常,我们可以使用事务ID从两个表中检索数据。检查Hibernate内部使用的SQL来获取数据,使用连接从两个表中获取数据。

Hibernate一对一映射注释

在上一节中,我们看到了如何使用基于XML的配置进行hibernate一对一映射,现在让我们看看如何使用JPA和Hibernate注释来实现相同的功能。

休眠配置文件

hibernate-annotation.cfg.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration><session-factory><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.password">pankaj123</property><property name="hibernate.connection.url">jdbc:mysql://localhost/TestDB</property><property name="hibernate.connection.username">pankaj</property><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><property name="hibernate.current_session_context_class">thread</property><property name="hibernate.show_sql">true</property><mapping class="com.journaldev.hibernate.model.Txn1"/><mapping class="com.journaldev.hibernate.model.Customer1"/></session-factory>
</hibernate-configuration>

Hibernate配置很简单,你可以看到我有两个我们将用于注释的模型类 - Txn1Customer1

Hibernate一对一映射注释示例模型类

对于hibernate一对一映射注释配置,模型类是最重要的部分。让我们看看我们的模型类看起来如何。


package com.journaldev.hibernate.model;import java.util.Date;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;import org.hibernate.annotations.Cascade;@Entity
@Table(name="TRANSACTION")
public class Txn1 {@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="txn_id")private long id;@Column(name="txn_date")private Date date;@Column(name="txn_total")private double total;@OneToOne(mappedBy="txn")@Cascade(value=org.hibernate.annotations.CascadeType.SAVE_UPDATE)private Customer1 customer;@Overridepublic String toString(){return id+", "+total+", "+customer.getName()+", "+customer.getEmail()+", "+customer.getAddress();}//Getter-Setter methods, omitted for clarity
}

请注意,大多数注释都来自Java Persistence API,因为Hibernate提供了它的实现。但是对于级联,我们需要使用Hibernate注释org.hibernate.annotations.Cascade和枚举org.hibernate.annotations.CascadeType


package com.journaldev.hibernate.model;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;@Entity
@Table(name="CUSTOMER")
public class Customer1 {@Id@Column(name="txn_id", unique=true, nullable=false)@GeneratedValue(generator="gen")@GenericGenerator(name="gen", strategy="foreign", parameters={@Parameter(name="property", value="txn")})private long id;@Column(name="cust_name")private String name;@Column(name="cust_email")private String email;@Column(name="cust_address")private String address;@OneToOne@PrimaryKeyJoinColumnprivate Txn1 txn;//Getter-Setter methods
}

请注意,我们需要@GenericGenerator从txn中使用id而不是生成它。

Hibernate SessionFactory实用工具类

创建SessionFactory与我们提供hibernate映射的方式无关。我们用于创建SessionFactory的实用程序类如下所示。


package com.journaldev.hibernate.util;import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;public class HibernateAnnotationUtil {private static SessionFactory sessionFactory;private static SessionFactory buildSessionFactory() {try {// Create the SessionFactory from hibernate-annotation.cfg.xmlConfiguration configuration = new Configuration();configuration.configure("hibernate-annotation.cfg.xml");System.out.println("Hibernate Annotation Configuration loaded");ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();System.out.println("Hibernate Annotation serviceRegistry created");SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);return sessionFactory;}catch (Throwable ex) {System.err.println("Initial SessionFactory creation failed." + ex);ex.printStackTrace();throw new ExceptionInInitializerError(ex);}}public static SessionFactory getSessionFactory() {if(sessionFactory == null) sessionFactory = buildSessionFactory();return sessionFactory;}
}

Hibernate一对一映射注释示例测试程序

这是一个简单的测试程序,用于我们的hibernate一对一映射注释示例。


package com.journaldev.hibernate.main;import java.util.Date;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;import com.journaldev.hibernate.model.Customer1;
import com.journaldev.hibernate.model.Txn1;
import com.journaldev.hibernate.util.HibernateAnnotationUtil;public class HibernateOneToOneAnnotationMain {public static void main(String[] args) {Txn1 txn = buildDemoTransaction();SessionFactory sessionFactory = null;Session session = null;Transaction tx = null;try{//Get SessionsessionFactory = HibernateAnnotationUtil.getSessionFactory();session = sessionFactory.getCurrentSession();System.out.println("Session created using annotations configuration");//start transactiontx = session.beginTransaction();//Save the Model objectsession.save(txn);//Commit transactiontx.commit();System.out.println("Annotation Example. Transaction ID="+txn.getId());//Get Saved Trasaction DataprintTransactionData(txn.getId(), sessionFactory);}catch(Exception e){System.out.println("Exception occured. "+e.getMessage());e.printStackTrace();}finally{if(sessionFactory != null && !sessionFactory.isClosed()){System.out.println("Closing SessionFactory");sessionFactory.close();}}}private static void printTransactionData(long id, SessionFactory sessionFactory) {Session session = null;Transaction tx = null;try{//Get SessionsessionFactory = HibernateAnnotationUtil.getSessionFactory();session = sessionFactory.getCurrentSession();//start transactiontx = session.beginTransaction();//Save the Model objectTxn1 txn = (Txn1) session.get(Txn1.class, id);//Commit transactiontx.commit();System.out.println("Annotation Example. Transaction Details=\n"+txn);}catch(Exception e){System.out.println("Exception occured. "+e.getMessage());e.printStackTrace();}}private static Txn1 buildDemoTransaction() {Txn1 txn = new Txn1();txn.setDate(new Date());txn.setTotal(100);Customer1 cust = new Customer1();cust.setAddress("San Jose, USA");cust.setEmail("pankaj@yahoo.com");cust.setName("Pankaj Kr");txn.setCustomer(cust);cust.setTxn(txn);return txn;}}

这是我们执行上述程序时的输出片段。


Hibernate Annotation Configuration loaded
Hibernate Annotation serviceRegistry created
Session created using annotations configuration
Hibernate: insert into TRANSACTION (txn_date, txn_total) values (?, ?)
Hibernate: insert into CUSTOMER (cust_address, cust_email, cust_name, txn_id) values (?, ?, ?, ?)
Annotation Example. Transaction ID=20
Hibernate: select txn1x0_.txn_id as txn_id1_1_0_, txn1x0_.txn_date as txn_date2_1_0_, txn1x0_.txn_total as txn_tota3_1_0_,
customer1x1_.txn_id as txn_id1_0_1_, customer1x1_.cust_address as cust_add2_0_1_, customer1x1_.cust_email as cust_ema3_0_1_,
customer1x1_.cust_name as cust_nam4_0_1_ from TRANSACTION txn1x0_ left outer join CUSTOMER customer1x1_ on
txn1x0_.txn_id=customer1x1_.txn_id where txn1x0_.txn_id=?
Annotation Example. Transaction Details=
20, 100.0, Pankaj Kr, pankaj@yahoo.com, San Jose, USA
Closing SessionFactory

请注意,输出类似于hibernate一对一的基于XML的配置。

这就是Hibernate One to One映射示例,您可以从下面的链接下载最终项目并使用它来了解更多信息。

下载Hibernate OneToOne映射项目

转载来源:https://www.journaldev.com/2916/hibernate-one-to-one-mapping-example-annotation

Hibernate一对一映射示例注释相关推荐

  1. hibernate注释映射_Hibernate一对一映射示例注释

    hibernate注释映射 Today we will look into One to One Mapping in Hibernate. We will look into Hibernate O ...

  2. hibernate注释映射_Hibernate一对多映射示例注释

    hibernate注释映射 Today we will look into One To Many Mapping in Hibernate. We will look into Hibernate ...

  3. Hibernate一对多映射示例注释

    Hibernate一对多映射示例注释 今天我们将研究Hibernate中的One To Many Mapping.我们将使用Annotation和XML配置来研究Hibernate One To Ma ...

  4. Java程序员从笨鸟到菜鸟之(五十八)细谈Hibernate(九)hibernate一对一关系映射...

    一对一关系映射即为关系双方都含有对方一个引用,其实在生活中一对一关系也很常见,比如人和×××,学生和学号等,都是一对一的关系映射,一对一映射分为单向的和双向的,没种关系映射又可以分为主键关联映射,唯一 ...

  5. 【Hibernate步步为营】--双向关联一对一映射具体解释(一)

    一对一的映射在对象模型中是常常见到的,为了将对象模型转换为关系模型就必须在映射文件里进行配置,上篇文章讨论了一对一映射的单向关联的情况,重点是<one-to-one>标签的使用,须要在映射 ...

  6. Hibernate关联关系映射之一对一关联关系

    人和身份证之间就是一个典型的一对一关联关系.实现一对一关联关系映射的方式有两种一种是基于外键,一种是基于主键,下面我们先看基于外键的关联方式 首先看他们的实体类 Person类 ? 1 2 3 4 5 ...

  7. Hibernate中的一对一映射

    1.需求 用户和身份证是一一对应的关系. 有两种对应方式: 用户id作为身份证表的外键,身份证号作为主键: 用户id作为身份证表的主键: 2.实体Bean设计 User: public class U ...

  8. hibernate一对一主键关联映射(一)---单向关联

    1.新建工程项目hibernate_one2one_pk_1,添加hibernate所需Jar包和mysql驱动Jar包. 2.建立工具类HihernateUtils.java和ExportDB.ja ...

  9. Hibernate 一对一关系映射总结篇

    在Hibernate 关系映射中一对一是比较常见也常用的一种,一对一的关系映射类型中又可分为:一对一外键单向映射.一对一外键双向映射.一对一主键单向映射和一对一主键双向映射. 下面就简单的说下自己对这 ...

最新文章

  1. 小强的HTML5移动开发之路(6)——Canvas图形绘制基础
  2. 06-typeAliases标签和package标签
  3. 微商谋定重整纠正错误走路-经信研究:李玉庭谈微商营销
  4. Ubuntu 16.04 设置MySQL远程访问权限
  5. 【数学】十万个为什么(一) —— 为什么乘法会分为左乘和右乘,除法会分为左除和右除?
  6. netstat命令---Linux查看网络和socket信息
  7. python爬虫百度文库_百度文库爬虫,Python爬取百度文库内容输出word文档low版
  8. matlab2014a如何画电机效率云图,maxwell电机转矩扫描与使用MTPA策略绘制效率map图...
  9. 条件与循环Phython
  10. form表单回车会自动提交
  11. docker创建CentOS云主机(docker实践)
  12. 粉丝经济大爆发居然真的来了
  13. Oracle EBS专业术语与名词解释
  14. 吴恩达机器学习系列课程笔记——第十六章:推荐系统(Recommender Systems)
  15. 计算机保研-上岸华中科技大学(武汉光电国家研究中心)
  16. Node.js 前世今生
  17. excel2003函数应用完全手册
  18. 2021中科院计算机博士,北京:中国科学院大学2021年秋季入学博士招生考试初试进入复试基本分数线要求的通知...
  19. mac下mysql安装,忘记初始临时密码怎么破。
  20. Mac下Android的Eclipse开发环境的搭建

热门文章

  1. flex与JavaScript的数据交互
  2. 后端技术栈入职培训感悟
  3. 斗地主AI算法——第十章の被动出牌(4)
  4. centos7更改管理员密码
  5. 用户空间与内核空间数据交换的方式(1)------debugfs
  6. 数据预处理-数据规约-属性规约
  7. 【shell资源限制】RLIMIT_MEMLOCK too small
  8. Matlab导出高DPI图像——生成高分辨率.eps .tiff .jpg
  9. MxNet 迁移学习实现深度学习分类
  10. 解决mysql不是内部或外部命令