什么是ORM?
- ORM(Object Relationship Mapping):对象关系映射。是一种解决程序面向对象模型与数据库的关系模型互不匹配问题的技术。可以让数据在两种形式中相互转换。
使用hibernate访问数据库基本步骤:
public class StudentTest {
private SessionFactory sessionFactory;
private Session session;
private Transaction transaction;
@Before
public void init() {
// 创建配置对象
Configuration config = new Configuration().configure();
// 创建服务注册对象
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
// 创建会话工厂对象
sessionFactory = config.buildSessionFactory(serviceRegistry);
// 打开会话
session = sessionFactory.openSession();
// 开启事务
transaction = session.beginTransaction();
}
// 通过学生查找班级
@Test
public void testQuery() {
Student s = (Student)session.get(Student.class, 1);
}
@After
public void destroy() {
// 提交事务
transaction.commit();
// 关闭会话
session.close();
// 关闭会话工厂
sessionFactory.close();
}
}
hibernate常用配置
hibernate.cfg.xml:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.username">root</property>
<property name="connection.password">1234</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=UTF-8</property>
<!-- 数据库方言 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 控制台显示SQL语句 -->
<property name="show_sql" >true</property>
<!-- 格式化SQL语句 -->
<property name="format_sql">true</property>
<!-- DDL语句生成策略:create|update|create-drop|validate -->
<property name="hbm2ddl.auto">update</property>
<!-- 需要加载的对象关系映射文件 -->
<mapping resource="Student.hbm.xml" ></mapping>
</session-factory>
</hibernate-configuration>
Student.hbm.xml:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.modal.Student" table="STUDENT" >
<id name="sid" type="int">
<column name="SID"/>
<generator class="increment"/>
</id>
<property name="sname" type="java.lang.String">
<column name="SNAME"/>
</property>
<property name="sex" type="java.lang.String">
<column name="sex"/>
</property>
</class>
</hibernate-mapping>