赞
踩
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
- package entity;
-
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenerationType;
- import javax.persistence.Id;
- import javax.persistence.Table;
-
- @Entity
- @Table(name = "student")
- public class Student {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private int id;
- private String xh;
- private String name;
- private String className;
- private String sex;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getXh() {
- return xh;
- }
-
- public void setXh(String xh) {
- this.xh = xh;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getClassName() {
- return className;
- }
-
- public void setClassName(String className) {
- this.className = className;
- }
-
- public String getSex() {
- return sex;
- }
-
- public void setSex(String sex) {
- this.sex = sex;
- }
-
- @Override
- public String toString() {
- return "学号:" + xh + "\t" + "姓名:" + name + "\t" + "性别:" + sex + "\t"+ "班级:" + className + "\t";
- }
- }

2.Hibernate 配置文件——hibernate.cfg.xml
- <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
- <hibernate-configuration> <!--配置数据库 -->
- <session-factory>
- <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
- <property name="connection.url">jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8</property>
- <property name="connection.username">root</property>
- <property name="connection.password"></property>
- <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
- <property name="myeclipse.connection.profile">mysql</property> <!--注册实体 -->
- <mapping class="entity.Student" />
- </session-factory>
- </hibernate-configuration>
3.测试代码——Ha.java:
- package entity;
-
- import java.io.UnsupportedEncodingException;
- import java.util.List;
- import java.util.Scanner;
- import org.hibernate.Query;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.cfg.Configuration;
-
- import entity.Student;
-
- public class Ha {
- /**
- * @param args
- * * @throws UnsupportedEncodingException
- */
- public static void main(String[] args) throws UnsupportedEncodingException {
- Ha h = new Ha();
- Scanner sc = new Scanner(System.in);
- while (true) {
- switch (h.menu(sc)) {
- case 1:
- h.list();
- break;
- case 2:
- Student stu = new Student();
- stu.setXh(sc.next());
- stu.setName(sc.next());
- byte[] b = stu.getName().getBytes("utf-8");
- stu.setName(new String(b, "utf-8"));
- stu.setSex(sc.next());
- stu.setClassName(sc.next());
- h.add(stu);
- h.list();
- break;
- case 3:
- h.edit(sc.nextInt(), sc);
- break;
- case 4:
- int id = sc.nextInt();
- h.deleteByKey(id);
- h.list();
- break;
- case 5:
- System.exit(0);
- break;
- default:
- break;
- }
- }
- }
-
- private SessionFactory sf;
-
- @SuppressWarnings("deprecation")
- public Ha() {
- Configuration config = new Configuration()
- .configure("/hibernate.cfg.xml");
- sf = config.buildSessionFactory();
- }
-
- private int menu(Scanner sc) {
- System.out.println("1.list");
- System.out.println("2.add");
- System.out.println("3.edit");
- System.out.println("4.delete");
- System.out.println("5.exit");
- return sc.nextInt();
- }
-
- /*** 学生信息列表 */
- private void list() {
- Session session = sf.openSession();
- Query qry = session.createQuery("from Student");
- List<Student> stus = qry.list();
- for (Student stu : stus) {
- System.out.println(stu);
- }
- session.close();
- }
-
- /*** 添加学生信息 * @param stu */
- private void add(Student stu) {
- Session session = sf.openSession();
- session.beginTransaction();
- session.save(stu);
- session.getTransaction().commit();
- session.close();
- }
-
- private void edit(int id, Scanner sc) {
- Session session = sf.openSession();
- Student stu = (Student) session.get(Student.class, id);
- System.out.println(stu);
- stu.setXh(sc.next());
- stu.setName(sc.next());
- stu.setSex(sc.next());
- stu.setClassName(sc.next());
- session.beginTransaction();
- session.update(stu);
- session.getTransaction().commit();
- session.close();
- }
-
- /*** 按主键删除 * @param id */
- private void deleteByKey(int id) {
- Session session = sf.openSession();
- Student stu = (Student) session.get(Student.class, id);
- session.beginTransaction();
- session.delete(stu);
- session.getTransaction().commit();
- session.close();
- }
- }

结果如图:(实例只演示了“delete”功能)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。