hibernate之1----一个简单的应用

        hibernate,作为一款全自动化的ORM框架,将原本需要通过JDBC的包括获取连接,创建statement,传入sql语句,设置参数,封装结果集以及释放连接等一系列操作进行了封装 和简化,其次,用户只要简单的配置POJO类,就能自动完成对象与数据库表的映射。在一些简单的数据库操作中,可以直接调用hibernate提供的API就能根据不同数据库生成相应的sql语句进行执行,得到想要的结果。

        hibernate中,hibernate.cfg.xml文件是用来配置数据库连接,二级缓存,sql打印输出,持久化类等一系列hibernate环境属性。持久类的hbm.xml文件是用来配置对象与数据库表的映射关系 ,可以利用注解来替换该配置文件。

        以下是我在简单的一个demo中的hibernate.cfgxml

  

<?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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_demo1</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        <!-- 数据库方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>  
        <!-- 输出sql语句 -->
        <property name="show_sql">true</property>
        <!--数据库连接池的大小  -->
        <property name="hibernate.connection.pool_size">2</property>  
        <!-- 设置使用jdbc事务 -->  
        <property name="hibernate.current_session_context_class">thread</property>  
       	<!-- 二级缓存 sessionFactory级别 -->
       	<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>  
       	<property name="hibernate.cache.use_second_level_cach">false</property>
        <!-- 配置持久化类 -->
        <mapping class="pojo.User" />
       <!--  <mapping resource="user.hbm.xml"/>--> 
	</session-factory>
</hibernate-configuration>

     

    持久化类User(用注解代替了hbm.xml配置文件)

@Entity
@Table(name="user")
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
public class User {
	@Id
	@GenericGenerator(name="nativeGenerator",strategy="native")
	@GeneratedValue(generator="nativeGenerator")
	private Integer id;
	private String username;
	private String password;
	public Integer getId() {
		
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
   

测试代码:查询id为1的用户

	private Session session;
	@Before
	public void before(){
		//加载配置文件
		Configuration configuration=new Configuration();
		configuration.configure("hibernate.cfg.xml");
		ServiceRegistry registry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
		SessionFactory sessionFactory = configuration.buildSessionFactory(registry);
		session = sessionFactory.getCurrentSession();
	}
	
	@Test
	public void selectOne(){
	    session.beginTransaction();
		User user=(User)session.get(User.class, 1);
		System.out.println(user);
		session.getTransaction().commit();
	}
执行selectOne方法后,控制台打印出来的结果如下:

Hibernate: select user0_.id as id1_0_0_, user0_.password as password2_0_0_, user0_.username as username3_0_0_ from user user0_ where user0_.id=?
User [id=1, username=xiaoyu, password=123456]


hibernate学习之1先到这里~~!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值