hibernate——第一次简单的使用
Posted xiaostudy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate——第一次简单的使用相关的知识,希望对你有一定的参考价值。
提前有jdk、mysql、hibernate必须jar包、mysql连接jar包
mysql中的表
Java中的bean,User类
1 package com.xiaostudy.demo; 2 3 public class User { 4 5 private int id; 6 private String username; 7 private String password; 8 9 public int getId() { 10 return id; 11 } 12 13 public void setId(int id) { 14 this.id = id; 15 } 16 17 public String getUsername() { 18 return username; 19 } 20 21 public void setUsername(String username) { 22 this.username = username; 23 } 24 25 public String getPassword() { 26 return password; 27 } 28 29 public void setPassword(String password) { 30 this.password = password; 31 } 32 33 }
JavaBean的对应xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 6 <!-- 导入bean所在的包路径 --> 7 <hibernate-mapping package="com.xiaostudy.demo"> 8 <!-- 把bean中的类名和mysql中的表名对应 --> 9 <class name="User" table="user"> 10 <!-- bean中id和mysql中主键对应 --> 11 <id name="id" column="id"> 12 <!-- generator:主键生成策略 13 1.increment 数据库自己生成主键. 先从数据库中查询最大的ID值,将ID值加1作为新的主键 14 2.identity 依赖于数据的主键自增功能 15 3.sequence 序列,依赖于数据中的序列功能(Oracle). 16 4.hilo(纯了解,永远用不到) : Hibernate自己实现序列的算法,自己生成主键. (hilo算法 ) 17 5.native 自动根据数据库判断,三选一. identity|sequence|hilo 18 6.uuid 生成32位的不重复随机字符串当做主键 19 7.assigned 自己指定主键值. 表的主键是自然主键时使用. 20 21 --> 22 <generator class="native"></generator> 23 </id> 24 <!-- bean中的属性和mysql中的字段对应 --> 25 <property name="username" column="username"></property> 26 <property name="password" column="password"></property> 27 </class> 28 </hibernate-mapping>
hibernate的xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 5 6 <hibernate-configuration> 7 <session-factory> 8 <!-- 注册驱动 --> 9 <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 10 <!-- mysql的用户名 --> 11 <property name="connection.username">root</property> 12 <!-- mysql的用户密码 --> 13 <property name="connection.password">123456</property> 14 <!-- 连接mysql的某库 --> 15 <property name="connection.url">jdbc:mysql://localhost:3306/user</property> 16 <!-- 控制台输出sql --> 17 <property name="show_sql">true</property> 18 <!-- 格式化输出的sql --> 19 <property name="format_sql">true</property> 20 <!-- 自动提交事务 --> 21 <property name="connection.autocommit">true</property> 22 <!-- 导入映射文件 --> 23 <mapping resource="com/xiaostudy/demo/User.hbm.xml"/> 24 </session-factory> 25 </hibernate-configuration>
测试Java类
1 package com.xiaostudy.demo; 2 3 import org.hibernate.SessionFactory; 4 import org.hibernate.cfg.Configuration; 5 import org.hibernate.classic.Session; 6 7 public class Test1 { 8 9 public static void main(String[] args) { 10 //加载hibernate.cfg.xml文件,前提是默认放在src目录下 11 Configuration conf = new Configuration().configure(); 12 //根据配置,创建Factory 13 SessionFactory sf = conf.buildSessionFactory(); 14 //通过SessionFactory来获取Session, 15 //getCurrentSession()方法是,获取当前的Session,一般在事务中使用 16 //但是需要在hibernate.cfg.xml中配置才可以使用 17 //<property name="current_session_context.class">thread</property> 18 Session session = sf.getCurrentSession(); 19 User user = new User(); 20 user.setUsername("demo3"); 21 user.setPassword("123456"); 22 session.save(user); 23 //关闭资源 24 session.close(); 25 sf.close(); 26 } 27 28 }
以上是关于hibernate——第一次简单的使用的主要内容,如果未能解决你的问题,请参考以下文章