Hibernate使用注解配置持久化类
来源:互联网 发布:linux 启动自动挂载 编辑:程序博客网 时间:2024/04/29 05:26
接上篇文章(点击打开链接),给出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 > <!-- mysql数据库驱动 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- mysql数据库名称 --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/world</property> <!-- 数据库的登陆用户名 --> <property name="hibernate.connection.username">root</property> <!-- 数据库的登陆密码 --> <property name="hibernate.connection.password">1988419</property> <!-- 配置方言为每一种数据库提供特殊sql适配--> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- c3p0连接池配置 --><property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property><!-- 连接池最大连接 --><property name="hibernate.c3p0.max_size">10</property><!-- 连接池最小连接 --><property name="hibernate.c3p0.min_size">1</property> <!-- 连接池超时时长(毫秒) --> <property name="hibernate.c3p0.timeout">5000</property> <!-- 指定连接池最大缓存多少Statment对象 --> <property name="hibernate.c3p0.max_statment">50</property> <!-- 空闲检测周期(毫秒) --> <property name="hibernate.c3p0.idle_test_period">3000</property> <!-- 连接池一次增加的连接数 --> <property name="hibernate.c3p0.acquire_increment">5</property> <!-- 每次都验证连接是否可用 --> <property name="hibernate.c3p0.validate">true</property> <!-- 是否在控制台输出sql语句 --> <property name="hibernate.show_sql">true</property> <!-- 使用xml配置时,指定持久化类xml的路径 --><!-- <mapping resource="org/lcwben/Student.hbm.xml"></mapping> --> <!-- 使用注解持久化类配置时,指定持久化类.java文件配置 --><mapping class="org.lcwben.Student" /> </session-factory> </hibernate-configuration>
import java.util.Date;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;//注意:所有的注解均使用jpa规范@Entity@Table(name="test_stu")public class Student {@Id //uid作为主键@GenericGenerator(name = "generator", strategy = "increment") //自增选项@GeneratedValue(generator="generator")private Integer uid;private String uname;private Date regtime;private Integer status;private Integer score;private Integer classes;//所有成员变量的getter与setterpublic Integer getUid() {return uid;}public void setUid(Integer uid) {this.uid = uid;}public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public Date getRegtime() {return regtime;}public void setRegtime(Date regtime) {this.regtime = regtime;}public Integer getStatus() {return status;}public void setStatus(Integer status) {this.status = status;}public Integer getScore() {return score;}public void setScore(Integer score) {this.score = score;}public Integer getClasses() {return classes;}public void setClasses(Integer classes) {this.classes = classes;}}
三、JUnit测试:
import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.Test;public class Client {private static SessionFactory sf;static {Configuration cfg = new Configuration().configure();ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();sf = cfg.buildSessionFactory(sr);}@Testpublic void testSelectAll() {Configuration cfg = new Configuration().configure();ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();SessionFactory sf = cfg.buildSessionFactory(sr); Session sess = null;try {sess = sf.openSession();String hql = "from Student";Query qy = sess.createQuery(hql);List<Student> stus = qy.list();for (Student stu : stus) {System.out.println(stu.getUid()+" "+stu.getUname()+" "+stu.getRegtime()+" "+stu.getStatus()+" "+stu.getScore()+" "+stu.getClasses());}} catch (Exception e) {e.printStackTrace();} finally {if(sess!=null) {sess.close();}}}}
结果如下:
三月 08, 2017 3:05:22 下午 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateServiceINFO: HHH000399: Using default transaction strategy (direct JDBC transactions)三月 08, 2017 3:05:22 下午 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>INFO: HHH000397: Using ASTQueryTranslatorFactoryHibernate: select student0_.uid as uid1_0_, student0_.classes as classes2_0_, student0_.regtime as regtime3_0_, student0_.score as score4_0_, student0_.status as status5_0_, student0_.uname as uname6_0_ from test_stu student0_1 lcwben1 2017-01-18 0 60 12 lcwben2 2017-01-18 1 67 13 lcwben3 2017-01-19 1 51 34 benhbm2 2017-01-19 0 78 35 lcwben5 2017-01-19 0 80 36 lcwben6 2017-01-22 1 97 27 lcwben7 2017-01-23 0 73 18 lcwben8 2017-01-25 1 48 29 lcwben9 2017-01-28 1 100 310 lcwben10 2017-01-31 0 92 3
0 0
- Hibernate使用注解配置持久化类
- Hibernate使用xml配置持久化类
- Hibernate通过注解写持久化类
- Hibernate使用持久化注解实现多对一映射
- 注解:Hibernate通过实体类数据持久化
- Hibernate的配置和Hibernate的持久化类
- hibernate使用注解配置过程
- Hibernate使用注解配置映射
- JPA注解持久化类
- hibernate教程____hibernate持久化(基于实体类注解和hbm.xml映射文件区别)
- hibernate中设置字段不持久化 注解
- 配置OSWorkFlow通过Hibernate持久化
- 配置OSWorkFlow通过Hibernate持久化
- Hibernate持久化映射文件配置说明
- Hibernate的持久化配置和操作
- Hibernate配置及持久化操作(CRUD)
- Hibernate 注解配置实体类
- HIbernate实体类注解配置
- android_error
- DLL两种加载的详解
- 数据库表 设计
- scala筛选460亿条记录的hive表
- 在iis上借助vs2012调试网站
- Hibernate使用注解配置持久化类
- java 堆栈的理解
- 关于hadoop伪分布式启动的小问题
- CentOS7使用firewalld
- 下载源码
- [BZOJ1503][NOI2004]郁闷的出纳员(平衡树splay)
- VOC2007数据集制作
- Windows caffe (一) MNIST手写体跑起来
- 以太坊go-ethereum客户端docker安装(一)