Hibernate学习笔记

来源:互联网 发布:网络语fl是什么意思 编辑:程序博客网 时间:2024/06/10 01:25

maven pom配置

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.wodwl</groupId><artifactId>hiblib</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><repositories><repository><id>maven</id><name>maven repository</name><url>http://repo2.maven.org/maven2/</url></repository><repository><id>JBoss repository</id><url>http://repository.jboss.org/nexus/content/groups/public/</url></repository></repositories><build><finalName>hiblib</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.6</source><target>1.6</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build><dependencies><!--servlet的引用 --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><!-- jdbc配置 --><dependency><groupId>com.oracle</groupId> <artifactId>mysql</artifactId>    <version>5.1.7</version></dependency><!--hibernate的引用 --><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>3.3.2.GA</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-annotations</artifactId><version>3.4.0.GA</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-commons-annotations</artifactId><version>3.3.0.ga</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><version>3.4.0.GA</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-nop</artifactId><version>1.5.2</version></dependency><!-- 连接池配置 -->       <dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency></dependencies></project>

hibernate连接mysql配置文件 hibernate.cfg.xml 

摘自:http://gyfbao.blog.sohu.com/158862408.html
<?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="connection.driver_class">com.mysql.jdbc.Driver</property><!-- 指定连接数据库的url,hibernate连接的数据库名 --><property name="connection.url">jdbc:mysql://localhost:3306/test</property><property name="connection.useUnicode">true</property><property name="connection.characterEncoding">utf8</property><!-- 指定连接数据库的用户名 --><property name="connection.username">root</property><!-- 指定连接数据库的密码 --><property name="connection.password">wodwl</property><!-- C3P0连接池设定 --><property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property><!-- 指定连接池里最大连接数 --><property name="hibernate.c3p0.max_size">20</property><!-- 指定连接池里最小连接数 --><property name="hibernate.c3p0.min_size">1</property><!-- 指定连接池里连接的超时时长 --><property name="hibernate.c3p0.timeout">1800</property><!-- 指定连接池里最大缓存多少个Statement对象 --><property name="hibernate.c3p0.max_statements">100</property><property name="hibernate.c3p0.idle_test_period">500</property><property name="hibernate.c3p0.acquire_increment">2</property><property name="hibernate.c3p0.validate">true</property><property name="hibernate.c3p0.preferredTestQuery ">select 1 </property><property name="hibernate.c3p0.idleConnectionTestPeriod ">18000</property><property name="hibernate.c3p0.maxIdleTime">25000</property><property name="hibernate.c3p0.testConnectionOnCheckout">true</property><!-- 指定数据库方言 --><property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property><!-- 根据需要自动创建数据库 --><property name="hbm2ddl.auto">update</property><!-- 显示Hibernate持久化操作所生成的SQL --><property name="show_sql">true</property><!-- 将SQL脚本进行格式化后再输出 --><property name="hibernate.format_sql">true</property><mapping resource="hbm/Student.hbm.xml" /></session-factory></hibernate-configuration>   




log4j.properties文件配置
 ### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n  ### direct messages to file hibernate.log ### #log4j.appender.file=org.apache.log4j.FileAppender #log4j.appender.file.File=hibernate.log #log4j.appender.file.layout=org.apache.log4j.PatternLayout #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n  ### set log levels - for more verbose logging change 'info' to 'debug' ###  log4j.rootLogger=warn, stdout  log4j.logger.org.hibernate=info #log4j.logger.org.hibernate=debug  ### log HQL query parser activity #log4j.logger.org.hibernate.hql.ast.AST=debug  ### log just the SQL #log4j.logger.org.hibernate.SQL=debug  ### log JDBC bind parameters ### log4j.logger.org.hibernate.type=info #log4j.logger.org.hibernate.type=debug  ### log schema export/update ### log4j.logger.org.hibernate.tool.hbm2ddl=debug  ### log HQL parse trees #log4j.logger.org.hibernate.hql=debug  ### log cache activity ### #log4j.logger.org.hibernate.cache=debug  ### log transaction activity #log4j.logger.org.hibernate.transaction=debug  ### log JDBC resource acquisition #log4j.logger.org.hibernate.jdbc=debug  ### enable the following line if you want to track down connection ### ### leakages when using DriverManagerConnectionProvider ### #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace





POJO类
package entity;public class Student {private int id; private String name;private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}


Student.hbm.xml映射文件

<!DOCTYPE hibernate-mapping PUBLIC         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  <hibernate-mapping>     <class name="entity.Student" table="student">         <id name="id">             <generator class="native"/>         </id>         <property name="name"/>         <property name="age" />     </class> </hibernate-mapping>


测试
SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();Student student=new Student();student.setName("jia");student.setAge(12);Session session=sessionFactory.openSession();Transaction transaction=session.beginTransaction();session.save(student);transaction.commit();session.close();sessionFactory.close();