hibernate第一天
hibernate
- 一种开源轻量级框架,对j2ee中dao层操作,对数据库实现crud而不需要写sql语句。
- 使用orm(对象关系映射)思想对数据库进行crud。javabean在框架阶段称为:实体类。
orm:
- 让实体类和数据库表进行一一对应:
让实体类首先和数据库表进行对应,让实体类属性和表里字段对应。
2.不需要直接操作数据库,而操作表对应实体类。
hibernate环境搭建:
- 导jar包(hibernate->lib->required)(mysql)(log4j,slf4j)

2.创建实体类
3.配置映射关系
(1)在实体类所在包创建xml配置文件,名字没要求。
(2)配置文件中首先引入约束。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!-- 1.配置类和表对应 class标签 name属性:实体类全路径 table属性:数据库表名 --> <class name="cn.itcast.entity.User" table="t_user"> <!-- 2.hibernate要求实体类和表属性有一个属性唯一值 id标签 name属性:实体类里面id名称 column属性:生成表字段名称 --> <id name="uid" column="uid"> <!-- 设置数据库表id增长策略 native:生成表id就是主键自动增长 --> <generator class="native"></generator> </id> <!-- 3.配置其他属性和表对应 --> <property name="username" column="username"></property> <property name="password" column="password"></property> <property name="address" column="address"></property> </class> </hibernate-mapping>
4.创建hibernate核心配置文件

<?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> <!-- 第一部分:配置数据库信息 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123456</property> <!-- 第二部分:配置hibernate的信息,可选 --> <!-- 输出底层sql语句 和语句格式--> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> <!-- hibernate帮创建表,若有则更新,没有则创建 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 配置数据库方言 mysql分页关键字:limit oracle 让hibernate识别不同数据库特有的语言 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 方言:MySQL5Dialect 针对mysql 5.5以下老版本 --> <!-- 第三部分:把映射文件放在核心文件中(重要) --> <mapping resource="cn/itcast/entity/User.hbm.xml"/> </session-factory> </hibernate-configuration>
配置方言为<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>。其实它输出的建表语句,就是把TYPE=MyISAM更改为
ENGINEE=MyISAM,两个方言配置的不同只是改变了type为engine.

package cn.itcast.hibernatetest; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Test; import cn.itcast.entity.User; public class HibernateDemo { @Test public void testAdd(){ Configuration cfg = new Configuration(); cfg.configure(); SessionFactory sf = cfg.buildSessionFactory(); Session session = sf.openSession(); Transaction tx= session.beginTransaction(); User user = new User(); user.setUsername("hello"); user.setPassword("abc"); user.setAddress("drogon"); session.save(user); tx.commit(); session.close(); sf.close(); } }

浙公网安备 33010602011771号