简体   繁体   中英

Connecting to mysql DB using hibernate in java

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();
        }
    }
}

sample input

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));

My problem is, that I want to map the above code to mysql DB using hibernate .I just know basic of hibernate and mysql. How can I achieve this and what steps do i have to follow ?. thanks in advance

You need a configuration file in your src folder (if you're using Netbeans).

This file needs to be called hibernate.cfg.xml and its content to connect to a MySQL database would be:

<?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>

Don't copy-past and test as it is. You'll need to change some values in your hibernate.cfg.xml file.

Also, you need to decide if you're going to use annotations or mapping files for mapping your objects.

Please, refer to Hibernate's Official documentation for that what I said and more.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM