提前有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 }