hibernate annnotation 例子

package hello;

import javax.persistence.*;

@Entity
@Table(name = "MESSAGES")
public class Message {

    @Id @GeneratedValue
    @Column(name = "MESSAGE_ID")
    private Long id;

    @Column(name = "MESSAGE_TEXT")
    private String text;

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "NEXT_MESSAGE_ID")
    private Message nextMessage;

    Message() {}

    public Message(String text) {
        this.text = text;
    }

    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }

    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }

     public Message getNextMessage() {
         return nextMessage;
     }
     public void setNextMessage(Message nextMessage) {
         this.nextMessage = nextMessage;
     }
}


package hello;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

public class HelloWorld {

	@SuppressWarnings("unchecked")
	public static void main(String[] args) {

		// Start EntityManagerFactory
		EntityManagerFactory emf = Persistence
				.createEntityManagerFactory("helloworld");

		// First unit of work
		EntityManager em = emf.createEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();

		Message message = new Message("Hello World with JPA");
		em.persist(message);

		tx.commit();
		em.close();

		// Second unit of work
		EntityManager newEm = emf.createEntityManager();
		EntityTransaction newTx = newEm.getTransaction();
		newTx.begin();

		List messages = newEm.createQuery(
				"select m from Message m order by m.text asc").getResultList();

		System.out.println(messages.size() + " message(s) found:");

		for (Object m : messages) {
			Message loadedMsg = (Message) m;
			System.out.println(loadedMsg.getText());
		}

		newTx.commit();
		newEm.close();

		// Shutting down the application
		emf.close();
	}
}


src/META-INF/persistence.xml(使用了c3p0的连接池)
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
	version="1.0">

	<persistence-unit name="helloworld">

		<!-- The provider only needs to be set if you use several JPA providers
			<provider>org.hibernate.ejb.HibernatePersistence</provider>
		-->
		<!-- This is required to be spec compliant, Hibernate however supports
			auto-detection even in JSE.
			<class>hello.Message</class>
		-->

		<properties>
			<!-- Scan for annotated classes and Hibernate mapping XML files -->
			<property name="hibernate.archive.autodetection"
				value="class, hbm" />
			
			<!-- SQL stdout logging
				<property name="hibernate.show_sql" value="true"/>
				<property name="hibernate.format_sql" value="true"/>
				<property name="use_sql_comments" value="true"/>
			-->
			<property name="hibernate.show_sql" value="true" />

			<property name="hibernate.connection.driver_class"
				value="com.mysql.jdbc.Driver" />
			<property name="hibernate.connection.url"
				value="jdbc:mysql://localhost:3306/test" />
			<property name="hibernate.connection.username" value="root" />
			<property name="hibernate.connection.password" value="root" />
			<!-- c3p0连接池 -->
			<property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider"/>
			<property name="hibernate.c3p0.min_size" value="5" />
			<property name="hibernate.c3p0.max_size" value="20" />
			<property name="hibernate.c3p0.timeout" value="300" />
			<property name="hibernate.c3p0.max_statements" value="50" />
			<property name="hibernate.c3p0.idle_test_period"
				value="3000" />

			<property name="hibernate.dialect"
				value="org.hibernate.dialect.MySQLDialect" />
			<!-- 自动建表 -->
			<property name="hibernate.hbm2ddl.auto" value="update" />

		</properties>
	</persistence-unit>

</persistence>

lib(有些是不需要的):
hibernate annnotation 例子

你可能感兴趣的:(sql,Hibernate,.net,ejb,jpa)