当前位置:   article > 正文

Hibernate 简单使用_heiberlite

heiberlite

1) 创建表

在 MySQL 数据库服务器上的 test 中创建 student 表,字段如下:

2) 创建数据库连接

(不同版本的myeclipse链接数据库的方法不一样,大同小异。请参考另一种创建数据库链接的方法:https://jingyan.baidu.com/article/6b97984dfbe84d1ca2b0bf3d.html

通过菜单“window”->“show view”打开“DB Browser”窗口,在该窗口中点击右键,在弹出菜

单总选择“New”,打开如下窗口。

在 “Driver template” 中选择 “MySQL”,“Driver name” 中输入一个名称(mysql),修改 “Connection URL”为:jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8,输入数据库的用户名和口令, 点击“Add JARS”按钮添加 Mysql 的驱动 Jar (mysql-connector-java-xxx-bin.jar)包,点击“Finish”按钮完成创建。

3)创建工程及添加 Hiberbate 支持

创建一个 Java 工程,名称为 hh。在左侧“package explore”窗口的“hh”工程名上点击右键,在弹出的菜单中选择“MyEclipse”->“Project Facets[Capapilities]”->“Install Hibernate Facet”,弹出如下对话框:

在本对话框中选择 Hibernate 的版本及服务器,使用默认选择即可,点击“Next”按钮,弹出如下窗口:

在本对话框中上半部分用于指定 Hibernate 的配置文件的位置及名称,使用默认即可;下半部分(Create SessionFactory class)用于创建一个会话工厂工具类,取消选择。点击“Next”按钮弹出如下窗口:

本窗口用于选择设置在 Hibernate 中使用数据库的信息,在“DB Driver”中选择我们在第二步创建的数据库连接,点击“Next”按钮,弹出如下对话框:

本对话框用于选择所需的 jar 包,使用默认(选择 Core)即可,点击“Finish”按钮即可完成工程对 Hibernate 的支持。

4)编写代码

 整体结构如图:

1.实体——Student.java

  1. package entity;
  2. import javax.persistence.Entity;
  3. import javax.persistence.GeneratedValue;
  4. import javax.persistence.GenerationType;
  5. import javax.persistence.Id;
  6. import javax.persistence.Table;
  7. @Entity
  8. @Table(name = "student")
  9. public class Student {
  10. @Id
  11. @GeneratedValue(strategy = GenerationType.AUTO)
  12. private int id;
  13. private String xh;
  14. private String name;
  15. private String className;
  16. private String sex;
  17. public int getId() {
  18. return id;
  19. }
  20. public void setId(int id) {
  21. this.id = id;
  22. }
  23. public String getXh() {
  24. return xh;
  25. }
  26. public void setXh(String xh) {
  27. this.xh = xh;
  28. }
  29. public String getName() {
  30. return name;
  31. }
  32. public void setName(String name) {
  33. this.name = name;
  34. }
  35. public String getClassName() {
  36. return className;
  37. }
  38. public void setClassName(String className) {
  39. this.className = className;
  40. }
  41. public String getSex() {
  42. return sex;
  43. }
  44. public void setSex(String sex) {
  45. this.sex = sex;
  46. }
  47. @Override
  48. public String toString() {
  49. return "学号:" + xh + "\t" + "姓名:" + name + "\t" + "性别:" + sex + "\t"+ "班级:" + className + "\t";
  50. }
  51. }

2.Hibernate 配置文件——hibernate.cfg.xml

  1. <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  2. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  3. <hibernate-configuration> <!--配置数据库 -->
  4. <session-factory>
  5. <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
  6. <property name="connection.url">jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8</property>
  7. <property name="connection.username">root</property>
  8. <property name="connection.password"></property>
  9. <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
  10. <property name="myeclipse.connection.profile">mysql</property> <!--注册实体 -->
  11. <mapping class="entity.Student" />
  12. </session-factory>
  13. </hibernate-configuration>

 3.测试代码——Ha.java:

  1. package entity;
  2. import java.io.UnsupportedEncodingException;
  3. import java.util.List;
  4. import java.util.Scanner;
  5. import org.hibernate.Query;
  6. import org.hibernate.Session;
  7. import org.hibernate.SessionFactory;
  8. import org.hibernate.cfg.Configuration;
  9. import entity.Student;
  10. public class Ha {
  11. /**
  12. * @param args
  13. * * @throws UnsupportedEncodingException
  14. */
  15. public static void main(String[] args) throws UnsupportedEncodingException {
  16. Ha h = new Ha();
  17. Scanner sc = new Scanner(System.in);
  18. while (true) {
  19. switch (h.menu(sc)) {
  20. case 1:
  21. h.list();
  22. break;
  23. case 2:
  24. Student stu = new Student();
  25. stu.setXh(sc.next());
  26. stu.setName(sc.next());
  27. byte[] b = stu.getName().getBytes("utf-8");
  28. stu.setName(new String(b, "utf-8"));
  29. stu.setSex(sc.next());
  30. stu.setClassName(sc.next());
  31. h.add(stu);
  32. h.list();
  33. break;
  34. case 3:
  35. h.edit(sc.nextInt(), sc);
  36. break;
  37. case 4:
  38. int id = sc.nextInt();
  39. h.deleteByKey(id);
  40. h.list();
  41. break;
  42. case 5:
  43. System.exit(0);
  44. break;
  45. default:
  46. break;
  47. }
  48. }
  49. }
  50. private SessionFactory sf;
  51. @SuppressWarnings("deprecation")
  52. public Ha() {
  53. Configuration config = new Configuration()
  54. .configure("/hibernate.cfg.xml");
  55. sf = config.buildSessionFactory();
  56. }
  57. private int menu(Scanner sc) {
  58. System.out.println("1.list");
  59. System.out.println("2.add");
  60. System.out.println("3.edit");
  61. System.out.println("4.delete");
  62. System.out.println("5.exit");
  63. return sc.nextInt();
  64. }
  65. /*** 学生信息列表 */
  66. private void list() {
  67. Session session = sf.openSession();
  68. Query qry = session.createQuery("from Student");
  69. List<Student> stus = qry.list();
  70. for (Student stu : stus) {
  71. System.out.println(stu);
  72. }
  73. session.close();
  74. }
  75. /*** 添加学生信息 * @param stu */
  76. private void add(Student stu) {
  77. Session session = sf.openSession();
  78. session.beginTransaction();
  79. session.save(stu);
  80. session.getTransaction().commit();
  81. session.close();
  82. }
  83. private void edit(int id, Scanner sc) {
  84. Session session = sf.openSession();
  85. Student stu = (Student) session.get(Student.class, id);
  86. System.out.println(stu);
  87. stu.setXh(sc.next());
  88. stu.setName(sc.next());
  89. stu.setSex(sc.next());
  90. stu.setClassName(sc.next());
  91. session.beginTransaction();
  92. session.update(stu);
  93. session.getTransaction().commit();
  94. session.close();
  95. }
  96. /*** 按主键删除 * @param id */
  97. private void deleteByKey(int id) {
  98. Session session = sf.openSession();
  99. Student stu = (Student) session.get(Student.class, id);
  100. session.beginTransaction();
  101. session.delete(stu);
  102. session.getTransaction().commit();
  103. session.close();
  104. }
  105. }

结果如图:(实例只演示了“delete”功能)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/870880
推荐阅读
相关标签
  

闽ICP备14008679号