初学Hibernate(1)
Hibernate的作用:
ORP: Object—Relation Mapping 对象关系映射,将对象与数据库映射起来实现持久化。
使用:
1.需要先写hibernate.cfg.xml
<!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="show_sql">true</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://localhost:3306/center</property><property name="connection.username">root</property><property name="connection.password">1111111</property><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="current_session_context_class">Thread</property><property name="format_sql">true</property><mapping resource="myhibernate/domain/User.hbm.xml"/></session-factory></hibernate-configuration>
<?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="myhibernate.domain.User" table="user" catalog="center"><id name="id" type="java.lang.Integer" column="id"><generator type="java.lang.String" column="name"/><property name="score" type="java.lang.Integer" column="score"/></class></hibernate-mapping>
Configuration config = new Configuration();config.configure();SessionFactory factory = config.buildSessionFactory();Session session = factory.openSession()/getCurrentSession();Transaction tx = session.beginTransaction();User u = new User();u.setName(“xx”);u.setScore(100);session.save(u);tx.commit();if(session.isOpen()){session.close();}User u = (User)session.get(User.class,1);//或者用这种方法查询,延迟加载,提高性能//User u = (User)session.load(User.class,1);增加:Transaction tx = session.beginTransaction();User u = new User();u.setName(“xx”);u.setScore(100);session.save(u);tx.commit();if(session.isOpen()){session.close();}Transaction tx = session.beginTransaction();//加载实体对象User user = (User)session.load(User.class, 3);//修改实体对象,修改后当提交事务时会自动修改user.setName("王五");user.setScore(40);tx.commit();