转自:http://blog.csdn.net/madison__/article/details/55677099

Hibernate4注释

@Entity(name = "tbl_user")  将一个类声明为一个实体bean(即一个持久化POJO类)
@Id注解则声明了该实体bean的标识属性,必填属性
@GenericGeneratorhibernate在JPA的基础上进行了扩展,可以用一下方式引入hibernate独有的主键生成策略。
@Column   name解决属性名和字段名不对应 length限制字符串长度 unique , nullable , precision 数据长度, scale  无小数

hibernate.cfg.xml

  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  5. <!-- Generated by MyEclipse Hibernate Tools.                   -->
  6. <hibernate-configuration>
  7. <session-factory>
  8. <property name="myeclipse.connection.profile">mysql</property>
  9. <property name="connection.url">
  10. jdbc:mysql://localhost:3306/forums
  11. </property>
  12. <property name="connection.username">root</property>
  13. <property name="connection.password">root</property>
  14. <property name="connection.driver_class">
  15. com.mysql.jdbc.Driver
  16. </property>
  17. <property name="hibernate.current_session_context_class">thread</property>
  18. <property name="dialect">
  19. org.hibernate.dialect.MySQLDialect
  20. </property>
  21. <property name="show_sql">true</property>
  22. <property name="hibernate.current_session_context_class">thread</property>
  23. <!--设置自动生成表,如果表不存在就自动生成,如果表存在就更新表结构-->
  24. <property name="hibernate.hbm2ddl.auto">update</property>
  25. <!-- 连接池 配置 c3p0-->
  26. <property name="hibernate.connection.provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property>
  27. <!-- 在连接池中可用数据连接的最大数目 -->
  28. <property name="hibernate.c3p0.max_size">20</property>
  29. <!-- 在连接池中可用数据连接的最小数目 -->
  30. <property name="hibernate.c3p0.min_size">5</property>
  31. <!-- 设定数据库连接的过期时间,以秒为单位,如果连接池中的某个数据库连接处于空闲状态的时间超过了timeout时间,就会从连接池中清除-->
  32. <property name="hibernate.c3p0.timeout">120</property>
  33. <!-- 每3000秒查询所有连接池的空闲连接以秒为单位 -->
  34. <property name="hibernate.c3p0.idle_test_period">3000</property>
  35. <!--当连接池里面的连接用完的时候,C3P0一下获取的新的连接数
  36. <property name="hibernate.c3p0.acquire_increment">2</property>
  37. 每次都验证连接是否可用
  38. <property name="hibernate.c3p0.validate">true</property> -->
  39. <!-- 映射文件引入 -->
  40. <mapping class="csdn.forum.model.TblUser" />
  41. <mapping class="csdn.forum.model.TblTopic" />
  42. <mapping class="csdn.forum.model.TblBoard" />
  43. <mapping class="csdn.forum.model.TblReply" />
  44. </session-factory>
  45. </hibernate-configuration>

解析文件hibernate.hbm.xml的类HibernateSessionFactory.java

  1. package csdn.forum.util;
  2. import org.hibernate.Session;
  3. import org.hibernate.SessionFactory;
  4. import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
  5. import org.hibernate.cfg.Configuration;
  6. import org.hibernate.service.ServiceRegistry;
  7. public class HibernateSessionFactory {
  8. static Configuration cfg;
  9. static SessionFactory sessionFactory;
  10. static ServiceRegistry serviceRegistry;
  11. static {
  12. cfg = new Configuration().configure();// 默认找文件hibernate.hbm.xml
  13. // 创建服务注册对象
  14. serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
  15. cfg.getProperties()).build();
  16. // 创建Factory工厂
  17. sessionFactory = cfg.buildSessionFactory(serviceRegistry);
  18. }
  19. // 获取session对象
  20. public static Session getSession() {
  21. // 打开session
  22. return sessionFactory.getCurrentSession();
  23. }
  24. }

fetch在Hibernate里用时默认值:FetchType.LAZY,它要求程序运行时延迟加载所有的集合和实体。
fetch设置为FetchType.EAGER,它提示程序在首次访问数据时应马上加载所有的集合和实体mappedBy默认值:如果关系是单向的,则该关联提供程序确定拥有该关系的字段。如果关系是双向的,则将关联相反(非拥有)方上的mappedBy元素设置为拥有此关系的字段或属性的名称

@BatchSize(size=10) 对查询抓取的优化方案,通过指定一个主键或外键列表,Hibernate使用单条SELECT语句获取一批对象实例或集合。

TblBoard.java

  1. package csdn.forum.model;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import javax.persistence.CascadeType;
  5. import javax.persistence.Column;
  6. import javax.persistence.Entity;
  7. import javax.persistence.FetchType;
  8. import javax.persistence.GeneratedValue;
  9. import javax.persistence.Id;
  10. import javax.persistence.JoinColumn;
  11. import javax.persistence.ManyToOne;
  12. import javax.persistence.OneToMany;
  13. import org.hibernate.annotations.GenericGenerator;
  14. @Entity(name = "tbl_board")
  15. public class TblBoard {
  16. private String id;
  17. private String name;
  18. private TblBoard parentBoard;
  19. private List<TblBoard> board = new ArrayList<TblBoard>();
  20. private List<TblTopic> topics=new ArrayList<TblTopic>();
  21. // @id必填
  22. @GenericGenerator(name = "generator", strategy = "uuid.hex")
  23. // hibernate独有的16进制算法
  24. @Id
  25. @GeneratedValue(generator = "generator")
  26. @Column(name = "id", unique = true, nullable = false, length = 32)
  27. public String getId() {
  28. return id;
  29. }
  30. public void setId(String id) {
  31. this.id = id;
  32. }
  33. @Column(name ="name")
  34. public String getName() {
  35. return name;
  36. }
  37. public void setName(String name) {
  38. this.name = name;
  39. }
  40. @ManyToOne(cascade = {CascadeType.ALL})
  41. @JoinColumn(name = "parent_id")
  42. public TblBoard getParentBoard() {
  43. return parentBoard;
  44. }
  45. public void setParentBoard(TblBoard parentBoard) {
  46. this.parentBoard = parentBoard;
  47. }
  48. @OneToMany(cascade = {CascadeType.ALL},fetch = FetchType.LAZY,mappedBy = "parentBoard")//在1这方加入@OneToMany(cascade = {CascadeType.ALL},mappedBy = "user") ,只调用session.sa//ve(user);
  49. //在多这方加入@ManyToOne(cascade = {CascadeType.ALL}) @JoinColumn(name = "user_id"),只调用s//ession.save(topic);
  50. public List<TblBoard> getBoard() {
  51. return board;
  52. }
  53. public void setBoard(List<TblBoard> board) {
  54. this.board = board;
  55. }
  56. @OneToMany(cascade = {CascadeType.ALL},fetch = FetchType.LAZY,mappedBy = "board")
  57. public List<TblTopic> getTopics() {
  58. return topics;
  59. }
  60. public void setTopics(List<TblTopic> topics) {
  61. this.topics = topics;
  62. }
  63. }

TblReply.Java

  1. package csdn.forum.model;
  2. import java.util.Date;
  3. import javax.persistence.CascadeType;
  4. import javax.persistence.Column;
  5. import javax.persistence.Entity;
  6. import javax.persistence.GeneratedValue;
  7. import javax.persistence.Id;
  8. import javax.persistence.JoinColumn;
  9. import javax.persistence.ManyToOne;
  10. import javax.persistence.Temporal;
  11. import javax.persistence.TemporalType;
  12. import org.hibernate.annotations.GenericGenerator;
  13. @Entity(name = "tbl_reply")
  14. public class TblReply{
  15. private String id;
  16. private String title;
  17. private String content;
  18. private Date publishTime;
  19. private Date modifyTime;
  20. private TblUser user;
  21. private TblTopic tblTopic;
  22. @GenericGenerator(name = "generator", strategy = "uuid.hex")
  23. @Id
  24. @GeneratedValue(generator = "generator")
  25. @Column(name = "id", unique = true, nullable = false, length = 32)
  26. public String getId() {
  27. return id;
  28. }
  29. public void setId(String id) {
  30. this.id = id;
  31. }
  32. @Column(name = "title", length = 32)
  33. public String getTitle() {
  34. return title;
  35. }
  36. public void setTitle(String title) {
  37. this.title = title;
  38. }
  39. @Column(name = "content", length = 2000)
  40. public String getContent() {
  41. return content;
  42. }
  43. public void setContent(String content) {
  44. this.content = content;
  45. }
  46. @Temporal(TemporalType.DATE)
  47. @Column(name = "publishTime")
  48. public Date getPublishTime() {
  49. return publishTime;
  50. }
  51. public void setPublishTime(Date publishTime) {
  52. this.publishTime = publishTime;
  53. }
  54. @Temporal(TemporalType.DATE)
  55. @Column(name = "modifyTime")
  56. public Date getModifyTime() {
  57. return modifyTime;
  58. }
  59. public void setModifyTime(Date modifyTime) {
  60. this.modifyTime = modifyTime;
  61. }
  62. @ManyToOne(cascade = {CascadeType.ALL})
  63. @JoinColumn(name = "user_id")
  64. public TblUser getUser() {
  65. return user;
  66. }
  67. public void setUser(TblUser user) {
  68. this.user = user;
  69. }
  70. @ManyToOne(cascade = {CascadeType.ALL})
  71. @JoinColumn(name = "topic_id")
  72. public TblTopic getTblTopic() {
  73. return tblTopic;
  74. }
  75. public void setTblTopic(TblTopic tblTopic) {
  76. this.tblTopic = tblTopic;
  77. }
  78. }

TblTopic.java

  1. package csdn.forum.model;
  2. import java.util.ArrayList;
  3. import java.util.Date;
  4. import java.util.List;
  5. import javax.persistence.CascadeType;
  6. import javax.persistence.Column;
  7. import javax.persistence.Entity;
  8. import javax.persistence.FetchType;
  9. import javax.persistence.GeneratedValue;
  10. import javax.persistence.Id;
  11. import javax.persistence.JoinColumn;
  12. import javax.persistence.ManyToOne;
  13. import javax.persistence.OneToMany;
  14. import javax.persistence.Temporal;
  15. import javax.persistence.TemporalType;
  16. import org.hibernate.annotations.BatchSize;
  17. import org.hibernate.annotations.GenericGenerator;
  18. @Entity(name = "tbl_topic")
  19. public class TblTopic  {
  20. private String id;
  21. private String title;
  22. private String content;
  23. private Date pubishTime;
  24. private Date modifyTime;
  25. private TblUser user;
  26. private TblBoard board;
  27. private List<TblReply> replys=new ArrayList<TblReply>();
  28. @GenericGenerator(name = "generator", strategy = "uuid.hex")
  29. @Id
  30. @GeneratedValue(generator = "generator")
  31. @Column(name = "id", unique = true, nullable = false, length = 32)
  32. public String getId() {
  33. return id;
  34. }
  35. public void setId(String id) {
  36. this.id = id;
  37. }
  38. @Column(name = "title", length = 32)
  39. public String getTitle() {
  40. return title;
  41. }
  42. public void setTitle(String title) {
  43. this.title = title;
  44. }
  45. @Column(name = "content", length = 2000)
  46. public String getContent() {
  47. return content;
  48. }
  49. public void setContent(String content) {
  50. this.content = content;
  51. }
  52. @Temporal(TemporalType.DATE)
  53. @Column(name = "publishTime")
  54. public Date getPubishTime() {
  55. return pubishTime;
  56. }
  57. public void setPubishTime(Date pubishTime) {
  58. this.pubishTime = pubishTime;
  59. }
  60. @Temporal(TemporalType.DATE)
  61. @Column(name = "modifyTime")
  62. public Date getModifyTime() {
  63. return modifyTime;
  64. }
  65. public void setModifyTime(Date modifyTime) {
  66. this.modifyTime = modifyTime;
  67. }
  68. //  多这方映射user_id
  69. @ManyToOne(cascade = {CascadeType.ALL})
  70. @JoinColumn(name = "user_id")
  71. public TblUser getUser() {
  72. return user;
  73. }
  74. public void setUser(TblUser user) {
  75. this.user = user;
  76. }
  77. @OneToMany(cascade = {CascadeType.ALL},fetch = FetchType.LAZY,mappedBy = "tblTopic")
  78. public List<TblReply> getReplys() {
  79. return replys;
  80. }
  81. public void setReplys(List<TblReply> replys) {
  82. this.replys = replys;
  83. }
  84. @ManyToOne(cascade = {CascadeType.ALL})
  85. @JoinColumn(name = "board_id")
  86. public TblBoard getBoard() {
  87. return board;
  88. }
  89. public void setBoard(TblBoard board) {
  90. this.board = board;
  91. }
  92. }

TblUser.java

  1. package csdn.forum.model;
  2. import java.util.ArrayList;
  3. import java.util.Date;
  4. import java.util.List;
  5. import javax.persistence.CascadeType;
  6. import javax.persistence.Column;
  7. import javax.persistence.Entity;
  8. import javax.persistence.FetchType;
  9. import javax.persistence.GeneratedValue;
  10. import javax.persistence.Id;
  11. import javax.persistence.OneToMany;
  12. import javax.persistence.Temporal;
  13. import javax.persistence.TemporalType;
  14. import org.hibernate.annotations.GenericGenerator;
  15. @Entity(name="tbl_user")
  16. public class TblUser {
  17. /**
  18. *
  19. */
  20. private static final long serialVersionUID = 1L;
  21. private String id;
  22. private String uname;
  23. private String upass;
  24. private String head;
  25. private Date regTime;
  26. private boolean gender;
  27. private  List<TblTopic>  topic=new ArrayList<TblTopic>();
  28. private  List<TblReply>  replies=new ArrayList<TblReply>();
  29. //@id必填
  30. @GenericGenerator(name = "generator", strategy = "uuid.hex")//hibernate独有的16进制算法
  31. @Id
  32. @GeneratedValue(generator = "generator")
  33. @Column(name = "id", unique = true, nullable = false, length = 32)
  34. public String getId() {
  35. return id;
  36. }
  37. public void setId(String id) {
  38. this.id = id;
  39. }
  40. @Column (name="uname",length=20)
  41. public String getUname() {
  42. return uname;
  43. }
  44. public void setUname(String uname) {
  45. this.uname = uname;
  46. }
  47. @Column (name="upass",length=20)
  48. public String getUpass() {
  49. return upass;
  50. }
  51. public void setUpass(String upass) {
  52. this.upass = upass;
  53. }
  54. @Column (name="head")
  55. public String getHead() {
  56. return head;
  57. }
  58. public void setHead(String head) {
  59. this.head = head;
  60. }
  61. @Temporal(TemporalType.DATE)
  62. @Column(name = "regTime")
  63. public Date getRegTime() {
  64. return regTime;
  65. }
  66. public void setRegTime(Date regTime) {
  67. this.regTime = regTime;
  68. }
  69. @Column(name="gender",length=20)
  70. public boolean isGender() {
  71. return gender;
  72. }
  73. public void setGender(boolean gender) {
  74. this.gender = gender;
  75. }
  76. //现在是一的一方直接通过它映射user,user是多的这一方的属性
  77. // @OneToMany(mappedBy="user")
  78. @OneToMany(cascade = {CascadeType.ALL},fetch = FetchType.LAZY,mappedBy = "user")
  79. public List<TblTopic> getTopic() {
  80. return topic;
  81. }
  82. public void setTopic(List<TblTopic> topic) {
  83. this.topic = topic;
  84. }
  85. @OneToMany(cascade={CascadeType.ALL},fetch=FetchType.LAZY,mappedBy="user")
  86. public List<TblReply> getReplies() {
  87. return replies;
  88. }
  89. public void setReplies(List<TblReply> replies) {
  90. this.replies = replies;
  91. }
  92. }

测试类TestUser.java

  1. package csdn.forum.test;
  2. import java.util.Date;
  3. import java.util.List;
  4. import org.hibernate.Query;
  5. import org.hibernate.Session;
  6. import org.junit.Test;
  7. import csdn.forum.model.TblBoard;
  8. import csdn.forum.model.TblReply;
  9. import csdn.forum.model.TblTopic;
  10. import csdn.forum.model.TblUser;
  11. import csdn.forum.util.HibernateSessionFactory;
  12. public class TestUser {
  13. @Test
  14. public void save() {
  15. Session session = HibernateSessionFactory.getSession();
  16. session.getTransaction().begin();
  17. /*
  18. * //1.保存java板块包含jsp,ajax,struts2,hiberante子版块 TblBoard java =new
  19. * TblBoard(); java.setName("java");
  20. *
  21. * TblBoard jsp =new TblBoard(); jsp.setName("jsp"); TblBoard struts2
  22. * =new TblBoard(); struts2.setName("struts2"); TblBoard hiberante =new
  23. * TblBoard(); hiberante.setName("hiberante"); //相互持有
  24. * java.getBoard().add(jsp); java.getBoard().add(struts2);
  25. * java.getBoard().add(hiberante); jsp.setParentBoard(java);
  26. * struts2.setParentBoard(java); hiberante.setParentBoard(java);
  27. *
  28. *
  29. * session.save(java); session.getTransaction().commit();
  30. */
  31. // 2.利用csdn用户身份,在struts2板块下发表帖子
  32. /*
  33. * TblUser user=new TblUser(); user.setUname("csdn"); TblBoard
  34. * struts2=(TblBoard
  35. * )session.get(TblBoard.class,"2c96c05e44da48600144da4861f60002");
  36. * TblTopic topic=new TblTopic(); topic.setTitle("struts  TblBoard");
  37. * topic.setUser(user); topic.setBoard(struts2); topic.setPubishTime(new
  38. * Date()); user.getTopic().add(topic); session.save(topic);
  39. * session.getTransaction().commit();
  40. */
  41. /*
  42. * //3.利用admin用户身份,给帖子回帖 TblUser user=new TblUser();
  43. * user.setUname("admin"); TblTopic topic1=(TblTopic)
  44. * session.get(TblTopic.class,"2c96c05e44da44660144da4469390000");
  45. * TblReply reply=new TblReply(); reply.setTitle("reply title");
  46. * reply.setUser(user); user.getReplies().add(reply);
  47. * reply.setTblTopic(topic1); topic1.getReplys().add(reply);
  48. * session.getTransaction().commit();
  49. */
  50. // 4.利用admin用户身份,修改回帖内容
  51. /*
  52. * Query query=session.createQuery(
  53. * "from csdn.forum.model.TblReply  r where r.user.uname='admin'");
  54. * TblReply reply=(TblReply) query.list().get(0);
  55. * reply.setTitle("update"); session.save(reply);
  56. * session.getTransaction().commit();
  57. */
  58. // 5.利用admin用户身份,查看回帖//根据帖子查看回帖,查看下面的所有回帖
  59. /*
  60. * Query query=session.createQuery(
  61. * "from csdn.forum.model.TblReply t where t.user.uname='admin'");
  62. * List<TblReply> lisst=query.list();
  63. *
  64. * for(TblReply tabl:lisst){ System.out.println("1111111111111");
  65. * System.out.println(tabl.getContent()); }
  66. * session.getTransaction().commit();
  67. */
  68. // 6.利用csdn用户身份,删除回帖,条件限制为有回帖存在不允许删除
  69. /*
  70. * Query query1=session.createQuery(
  71. * "from csdn.forum.model.TblTopic  t where t.user.uname='csdn'");
  72. * TblTopic topic1=(TblTopic) query1.list().get(0);
  73. * if(topic1.getReplys().size()==0){ session.delete(topic1); }else{
  74. * System.out.println("提示不能删除"); }
  75. *
  76. * session.getTransaction().commit();
  77. */
  78. // 7.统计struts2板块下的发帖数
  79. // Query
  80. // query2=session.createQuery("select count(*) from csdn.forum.model.TblTopic  t where t.board.name='struts2'");
  81. /*
  82. * Query query2 = session.createQuery(
  83. * " from csdn.forum.model.TblTopic t where t.board.name='struts2'");
  84. *
  85. * System.out.println(query2.list().size()+"---"); //
  86. * System.out.println(query2.list().get(0)); //
  87. * System.out.println(query2.list().get(1)); //
  88. * System.out.println(query2.list().get(2));
  89. * session.getTransaction().commit();
  90. */
  91. // 8.查询struts2板块下所有帖子按时间倒序排列
  92. /*
  93. * Query query=session.createQuery(
  94. * "from csdn.forum.model.TblTopic t where t.board.name='struts2' order by t.pubishTime  desc"
  95. * ); //System.out.println(query); for(int
  96. * i=0;i<query.list().size();i++){ TblTopic topic=(TblTopic)
  97. * query.list().get(i); System.out.println(topic.getTitle()); }
  98. */
  99. // 9.查询帖子下所有回帖,按时间倒序排列
  100. /*
  101. * Query query=session.createQuery(
  102. * "from csdn.forum.model.TblReply t where t.tblTopic.title='struts  TblBoard' order by t.publishTime  desc"
  103. * ); //System.out.println(query); for(int
  104. * i=0;i<query.list().size();i++){ TblReply topic=(TblReply)
  105. * query.list().get(i); System.out.println(topic.getTitle()); }
  106. */
  107. /*
  108. *
  109. * 查询父亲java板块
  110. * TblBoard board = (TblBoard) session.get(TblBoard.class,
  111. "2c96c05e44da48600144da4861dd0000");
  112. System.out.println(board);
  113. session.getTransaction().commit();*/
  114. // 10.查出最后发表帖子标题
  115. Query query = session
  116. .createQuery("from csdn.forum.model.TblTopic t  order by t.pubishTime  asc");
  117. // System.out.println(query);
  118. TblTopic topic=(TblTopic) query.list().get(query.list().size()-1);
  119. System.out.println(topic.getTitle());
  120. }
  121. }

 转自:http://blog.csdn.net/madison__/article/details/55677099

利用Hibernate注解生成表的更多相关文章

  1. Hibernate用注解生成表

    User.java实体来 package com.tao.pojo; import javax.persistence.Column; //用注解的方式生成表 import javax.persist ...

  2. 使用hibernate利用实体类生成表和利用表生成实体类

    1,配置数据库,这里以oracle数据库为例.点击右侧Database图标:

  3. hibernate使用注解生成表,有时无法生成数据表的原因

    待生成表中有字段“desc”或“descripe”等和hibernate关键字,导致和hibernate冲突

  4. Hibernate笔记②--hibernate类生成表、id生成策略、级联设置、继承映射

    一.多表的一个关联关系 老师和学生是一对多的关系 student:tid属性 外键约束 对应teacher表中的id属性 teacher:id 在myeclipse的db窗口中选中两个表来生成类.   ...

  5. hibernate注解创建表总是失败,显示表不存在

    import java.io.Serializable; import javax.persistence.*; import org.hibernate.annotations.GenericGen ...

  6. 利用Xstream注解生成和解析xml

    实体类: @XStreamAlias("person") public class PersonBean {     @XStreamAlias("firstName&q ...

  7. java 利用Xstream注解生成和解析xml

    https://www.oschina.net/code/snippet_116183_14202#23325

  8. hibernate如何配置自动生成表

    hibernate自动生成表有两种方法: 1.直接写代码,通过方法来创建数据库表. 2.通过 hibernate.cfg.xml配置标签来创建数据表. 下面依次实现: 1.直接写代码,通过方法来创建数 ...

  9. Hibernate注解使用以及Spring整合

    Hibernate注解使用以及Spring整合 原文转自:http://wanqiufeng.blog.51cto.com/409430/484739 (1) 简介: 在过去几年里,Hibernate ...

随机推荐

  1. nginx只允许域名访问,禁止ip访问

    背景:为什么要禁止ip访问页面呢?这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生. 解决方法:这里介绍修改配置文 ...

  2. Python 的数据表示

    一.常量.变量和对象 1.常量:是指在程序的执行过程中不变的量.如:1,2,3,4,……,true.false 也有一些包含在模块中的用符号表示的常量,常用的如math模块中的pi和e,如: > ...

  3. 在php中修改cookie值遇到的奇怪问题

    本想修改cookie的值比较简单,结果测试发现并不是. 刚开始实现cookie修改的思路:先删除以前的cookie值,再创建一个新的. setcookie('name',value,time()-1) ...

  4. rtp协议详解/rtcp协议详解

    转自:http://www.cnblogs.com/li0803/archive/2010/11/20/1882792.html 1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应 ...

  5. Android AIDL Service 跨进程传递复杂数据

    黑夜 黑夜给了我黑色的眼睛,我却用它寻找光明~ 传值方式 AIDL是同意跨进程传递值的,一般来说有三种方式: - 广播:这样的算是比較常见的一种方式了,传递小数据不错 - 文件:这个是保存到文件里.然 ...

  6. Leetcode--easy系列3

    #26 Remove Duplicates from Sorted Array Given a sorted array, remove the duplicates in place such th ...

  7. WCF 动态调用(1)

    很多时候,服务地址都不止一个的,这个时候就要动态去配置地址.配置Web.config,很麻烦 下面就看看怎样实现动态调用WCF. using System; using System.Collecti ...

  8. volatile关键字比较好的解释

    http://www.tuicool.com/articles/IRvUJbN http://tengj.top/2016/05/06/threadvolatile4/?utm_source=tuic ...

  9. Help Tomisu UVA - 11440 难推导+欧拉函数,给定正整数N和M, 统计2和N!之间有多少个整数x满足,x的所有素因子都大于M (2<=N<=1e7, 1<=M<=N, N-M<=1E5) 输出答案除以1e8+7的余数。

    /** 题目:Help Tomisu UVA - 11440 链接:https://vjudge.net/problem/UVA-11440 题意:给定正整数N和M, 统计2和N!之间有多少个整数x满 ...

  10. Oracle 数据库排错之 ORA-00600

    [错误代码] ORA-00600 [问题描述] ORA-00600: [kcratr1_lastbwr]错误的处理办法 [问题分析] 出现该错误是因为系统强制关机造成的!症状为数据库无法打开! [问题 ...