有哪些ORM框架?
其实我连ORM是什么我都不知道…
言归正传:
ORM框架:
Object_Relative DateBase-Mapping,在Java对象与数据库之间建立某种映射,以实现直接存取Java对象;
所以:Hibernate是关于Java对象与数据库之间的联系;
ORM简化了数据创建,数据处理和数据访问。是对象映射到数据库中的存储的数据表的编程技术;
在DAO层实现数据与数据库之间的映射关系:
- 插入数据时,将JavaBean对象拆分,拼装成SQL语句;
- 查询数据时,使用SQL将数据库表中的列组合,拼成JavaBean对象;
Hibernate即实现了自动生成SQL语句,满足JavaBean对象与数据表中的列的映射关系;简化开发;
ORM表示为对象关系映射:
将User中的id,name存储在数据库中以及从数据库中取用User对象是DAO实现的主要功能;
使用Hibernate实现的主要步骤是:
1.创建一个User对象
public class User
{
private int id;
private String username;
private String password;
}
2.编写User.hbm.xml文件
<hibernate-mapping package="com.zm.blog.domain">
<!--类名为User,表名也为User-->
<class name="User" table="user">
<!--主键映射,属性名为id,列名为id-->
<id name="id" column="id">
<!--根据底层数据库主键自动增长-->
<generator class="native"/>
</id>
<!--非主键映射,属性与列名对应-->
<property name="username" column="username"/>
<property name="password" column="password"/>
</class>
<hibernate-mapping>
3.主配置文件
<hibernate-configuration>
<!--通常,一个session-factory节点代表数据库-->
<session-factory>
<!--1.数据库连接配置-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://com.zm.blog</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<!--数据库方法配置,hibernate在运行时,会根据不同的方言生成符合当前数据库语法的sql-->
<!-其他相关配置>
<!--2.1显示hibernate在运行时执行的sql语句-->
<property name="hibernate.show_sql">true</property>
<!--2.2格式化sql-->
<property name="hibernate.format_sql">true</property>
<!--2.3自动建表-->
<property name="hibernate.hbm2ddl.auto">create</property>
<!--3.加载所有映射-->
<mapping resource="com.zm.blog/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
public static void main(String[] args) {
//创建对象
User user = new User();
user.setPassword("123");
user.setCellphone("122222");
user.setUsername("nihao");
//获取加载配置管理类,管理配置文件;可以使用注解代替XML文件配置对应信息;
Configuration configuration = new Configuration();
//不给参数就默认加载hibernate.cfg.xml文件,
configuration.configure();
//创建Session工厂对象
SessionFactory factory = configuration.buildSessionFactory();
//得到Session对象
Session session = factory.openSession();
//使用Hibernate操作数据库,都要开启事务,得到事务对象
Transaction transaction = session.getTransaction();
//开启事务
transaction.begin();
//把对象添加到数据库中
session.save(user);
//提交事务
transaction.commit();
//关闭Session
session.close();
}
//session
public interface Session extends SharedSessionContract, EntityManager, HibernateEntityManager, AutoCloseable, Closeable {
SharedSessionBuilder sessionWithOptions();
/**
Session 是Hibernate中最重要的类,维护了一个连接,只要使用Hibernate操作数据库,均需要使用Session对象;
Session类中的方法提供了对数据库的操作方法;
void saveOrUpdate(Object var1)
*/
感谢:https://blog.csdn.net/u013407099/article/details/86551895