标签:
1、建立新java项目,名为hibernate_0100_HelloWorld
2、学习建User-library-hibernate,并加入相应的jar包
3、引入mysql的JDBC驱动包
4、在mysql中建立对应的数据库以及表
5、建立hibernate配置文件hibernate.cfg.xml
6、建立Student类
7、建立Student映射文件Student.hbm.xml,数据库中表Student和类Student对应关系
8、将映射文件加入到hibernate.cfg.xml中
9、写测试类Main,在Main中对Student对象进行直接的存储测试
10、HibernateUtil将获取SessionFactory做成单例
<!--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可以理解为一个Connection工厂或者Connection池 --> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost/hibernate</property> <property name="connection.username">root</property> <property name="connection.password">bjsxt</property> <!-- 这个是hibernate自带的连接池用的不多,一般使用applicaton Server用JNDI注册的连接池> <property name="connection.pool_size">1</property> <!-- SQL dialect(方言),参考文档 --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- Enable Hibernate‘s automatic session context management,后面讲 --> <!-- <property name="current_session_context_class">thread</property>--> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup,hibernate自动生成建表语句,后面讲 --> <!-- <property name="hbm2ddl.auto">update</property>--> <mapping resource="com/bjsxt/hibernate/Student.hbm.xml"/> </session-factory> </hibernate-configuration>
public class Student { //省略set、get private int id; private String name; private int age; }
<!--Student.hbm.xml,名称固定,按约定俗称写,放在和Student类相同包下 --> <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.bjsxt.hibernate.Student"> <id name="id" /> <property name="name" />//不写column默认和name一样 <property name="age" /> </class> </hibernate-mapping>
//测试类 public class Test { public static void main(String[] args) { Student s = new Student(); s.setId(1); s.setName("zhangsan"); s.setAge(8); SessionFactory sessionFactory = new AnnotationConfiguration() .configure().buildSessionFactory(); Session session = sessionFactory.getCurrentSession();// 可以把Session理解为Connection session.beginTransaction();// hibernate必须开启事务 session.save(s);// 这样就把数据插入到了数据库中 session.getTransaction().commit(); } }
10 FAQ:
a) 要调用 new Configuration().configure().buildSessionFactory(),而不是
要省略 configure,否则会出 hibernate dialect must be set 的异常
11 Note:
b) 重要的是:
iii. 主动学习,砍弃被动接受灌输的习惯!
a) 错误读完整
b) 读—昔误的关键行
c) 排除法
d) 比较法
e) google
标签:
原文地址:http://www.cnblogs.com/wangweiNB/p/5121995.html