Hibernate实战——@Transient注解

水深无声 2021-07-24 14:03 612阅读 0赞

一 配置

  1. <?xml version="1.0" encoding="GBK"?>
  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. <hibernate-configuration>
  6. <session-factory>
  7. <!-- 指定连接数据库所用的驱动 -->
  8. <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
  9. <!-- 指定连接数据库的url,其中hibernate是本应用连接的数据库名 -->
  10. <property name="connection.url">jdbc:mysql://localhost/hibernate</property>
  11. <!-- 指定连接数据库的用户名 -->
  12. <property name="connection.username">root</property>
  13. <!-- 指定连接数据库的密码 -->
  14. <property name="connection.password">32147</property>
  15. <!-- 指定连接池里最大连接数 -->
  16. <property name="hibernate.c3p0.max_size">20</property>
  17. <!-- 指定连接池里最小连接数 -->
  18. <property name="hibernate.c3p0.min_size">1</property>
  19. <!-- 指定连接池里连接的超时时长 -->
  20. <property name="hibernate.c3p0.timeout">5000</property>
  21. <!-- 指定连接池里最大缓存多少个Statement对象 -->
  22. <property name="hibernate.c3p0.max_statements">100</property>
  23. <property name="hibernate.c3p0.idle_test_period">3000</property>
  24. <property name="hibernate.c3p0.acquire_increment">2</property>
  25. <property name="hibernate.c3p0.validate">true</property>
  26. <!-- 指定数据库方言 -->
  27. <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
  28. <!-- 根据需要自动创建数据表 -->
  29. <property name="hbm2ddl.auto">update</property><!--①-->
  30. <!-- 显示Hibernate持久化操作所生成的SQL -->
  31. <property name="show_sql">true</property>
  32. <!-- 将SQL脚本进行格式化后再输出 -->
  33. <property name="hibernate.format_sql">true</property>
  34. <!-- 罗列所有持久化类的类名 -->
  35. <mapping class="org.crazyit.app.domain.News"/>
  36. </session-factory>
  37. </hibernate-configuration>

二 PO

  1. package org.crazyit.app.domain;
  2. import javax.persistence.*;
  3. @Entity
  4. @Table(name="news_inf")
  5. public class News
  6. {
  7. // 消息类的标识属性
  8. @Id
  9. @GeneratedValue(strategy=GenerationType.IDENTITY)
  10. private Integer id;
  11. // 消息标题
  12. // @Column指定该属性映射的列信息,此处指定了列名、长度
  13. @Column(name="news_title" , length=50)
  14. private String title;
  15. // 消息内容
  16. @Transient
  17. private String content;
  18. // id的setter和getter方法
  19. public void setId(Integer id)
  20. {
  21. this.id = id;
  22. }
  23. public Integer getId()
  24. {
  25. return this.id;
  26. }
  27. // title的setter和getter方法
  28. public void setTitle(String title)
  29. {
  30. this.title = title;
  31. }
  32. public String getTitle()
  33. {
  34. return this.title;
  35. }
  36. // content的setter和getter方法
  37. public void setContent(String content)
  38. {
  39. this.content = content;
  40. }
  41. public String getContent()
  42. {
  43. return this.content;
  44. }
  45. }

三 测试

  1. package lee;
  2. import org.hibernate.*;
  3. import org.hibernate.cfg.*;
  4. import org.hibernate.service.*;
  5. import org.hibernate.boot.registry.*;
  6. import org.crazyit.app.domain.*;
  7. public class NewsManager
  8. {
  9. public static void main(String[] args)
  10. throws Exception
  11. {
  12. // 实例化Configuration,
  13. Configuration conf = new Configuration()
  14. // 不带参数的configure()方法默认加载hibernate.cfg.xml文件,
  15. // 如果传入abc.xml作为参数,则不再加载hibernate.cfg.xml,改为加载abc.xml
  16. .configure();
  17. ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
  18. .applySettings(conf.getProperties()).build();
  19. // 以Configuration实例创建SessionFactory实例
  20. SessionFactory sf = conf.buildSessionFactory(serviceRegistry);
  21. // 创建Session
  22. Session sess = sf.openSession();
  23. // 开始事务
  24. Transaction tx = sess.beginTransaction();
  25. // 创建消息对象
  26. News n = new News();
  27. // 设置消息标题和消息内容
  28. n.setTitle("疯狂Java联盟成立了");
  29. n.setContent("疯狂Java联盟成立了,"
  30. + "网站地址http://www.crazyit.org");
  31. // 保存消息
  32. sess.save(n);
  33. // 提交事务
  34. tx.commit();
  35. // 关闭Session
  36. sess.close();
  37. sf.close();
  38. }
  39. }

四 测试效果

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5ncWl1bWluZw_size_16_color_FFFFFF_t_70

发表评论

表情:
评论列表 (有 0 条评论,612人围观)

还没有评论,来说两句吧...

相关阅读