头条实习面试问题1

有哪些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

猜你喜欢

转载自blog.csdn.net/qq_42378434/article/details/88849096