在java中使用hibernate连接到mysql DB

时间:2015-05-29 05:27:19

标签: java mysql hibernate jpa

public class Tree<I, A> {
    private final HashMap<I, Node<I, A>> map = new HashMap<>();
    private final Node<I, A> root;

    public Tree(I id, A value) {
        root = new Node<>(id, value);
        map.put(id, root);
    }

    public void addChild(I parentId, I id, A value) {
        Node<I, A> parent = map.get(parentId);
        Node<I, A> child = new Node<>(id, value);
        parent.children.add(child);
        map.put(id, child);
    }

    public A getById(I id) {
        return map.get(id).value;
    }

    public String subtreeToString(I id) {
        return map.get(id).toString();
    }

    private static class Node<I, A> {
        private final I id;
        private final A value;
        private final ArrayList<Node<I, A>> children = new ArrayList<>();

        private Node(I id, A value) {
            this.id = id;
            this.value = value;
        }

        private void print(int depth, PrintWriter pw) {
            for (int i = 0; i < depth; i++) {
                pw.print("\t");
            }
            pw.println("[" + id + ", " + value + "]");
            for (Node<I, A> child : children) {
                child.print(depth + 1, pw);
            }
        }

        @Override
        public String toString() {
            StringWriter writer = new StringWriter();
            print(0, new PrintWriter(writer));
            return writer.toString();
        }
    }
}

示例输入

Tree<Integer, String> tree = new Tree<>(1, "Bob");
tree.addChild(1, 2, "John");
tree.addChild(1, 3, "James");
tree.addChild(2, 4, "David");
tree.addChild(2, 5, "Alice");

System.out.println(tree.subtreeToString(1));
System.out.println(tree.subtreeToString(2));

我的问题是,我想使用hibernate将上面的代码映射到mysql数据库。我只知道hibernate和mysql的基本知识。我怎样才能实现这一点以及我必须遵循哪些步骤? 提前谢谢

1 个答案:

答案 0 :(得分:0)

您需要src文件夹中的配置文件(如果您正在使用Netbeans)。

此文件需要调用hibernate.cfg.xml,其连接MySQL数据库的内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- Conection string for a MySQL DB -->
        <property name="connection.url">jdbc:mysql://localhost:3306/your_db_name</property>
        <!-- Your DB username -->
        <property name="connection.username">db_username</property>
        <!-- Your password DB username -->
        <property name="connection.password">password_db_username</property>
        <!-- Default schema -->
        <property name="default_schema">public</property>
        <!-- Hibernate dialect for MySQL DB -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- Shows SQL instructions in shell when you run your program and do any CRUD operation into the DB -->
        <property name="show_sql">true</property>
        <!-- Updates DB schema on startup -->
        <property name="hbm2ddl.auto">update</property>
    </session-factory>
</hibernate-configuration>

不要复制过去并按原样进行测试。您需要更改hibernate.cfg.xml文件中的某些值。

此外,您需要决定是否要使用annotationsmapping files来映射对象。

请参考Hibernate's Official documentation了解我所说的内容以及更多内容。