eclipse配置hibernate环境
-
下载hibernate所需jar包
-
创建项目
在eclipse创建一个web项目 ,在左上角依次选择File–>New–>Dynamic Web project(若没有这个,可以选择other,再在里面找到Dynamic Web project)–>填写项目名–>finish即可。
-
导入项目所需jar包
在项目中依次展开WebContent–>WEB-INF可以看到有一个lib文件夹(若没有,右键手动创建一个即可),接下来就是导入我们需要的jar包,除需导入hibernate核心jar包外,我们还需用到mysql驱动包,Junit单元测试包(非必须)。这里是博主导入的所有jar包(本项目所导入的jar包),接下来我们将jar包复制到eclipse中
导入后的jar包我们还不能直接使用,需要Build Path,在lib文件夹上右键,选择Build Path–>Use as Source Folder,完成后,将会看到java Resources中会多一个WebContent/WEB-INF/lib
到目前,我们所导入的jar就可以使用了。 -
创建数据库
打开mysql管理工具(我这里使用的是navicat),连接好数据库,在数据库上右键,新建数据库,填写数据库名,字符集与排序规则,点击确定。
若没有数据库管理工具,可以在cmd中登录数据库,写入以下语句
CREATE DATABASE `hibernate_test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
- 编写java bean
- 在entity包下创建一个名为student的实体类
package entity; public class Student { private int id; private String name; private String sex; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
- 在entity包上右键New–>Other–>输入file–>选择General下的File,点击Next。编写编写数据库与java Bean对应的映射文件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="entity.Student" table="student"> <id name="id" column="id"> <generator class="identity"/> </id> <property name="name" column="name"/> <property name="sex" column="sex"/> </class> </hibernate-mapping>
- 在src下创建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> <!-- mysql驱动 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- mysql连接url --> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate_test?useUnicode=true&charachterEncoding=UTF-8</property> <!-- mysql用户名 --> <property name="connection.username">root</property> <!-- mysql密码 --> <property name="connection.password">root</property> <!-- 数据库方言 --> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 是否在控制台显示SQL语句 --> <property name="show_sql">true</property> <!-- 是否格式显示SQL语句 --> <property name="format_sql">true</property> <!-- 自动创建数据表 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 映射关系配置 --> <mapping class="entity.Student"/> <mapping resource="entity/Student.hbm.xml"/> </session-factory> </hibernate-configuration>
- 编写测试类StudentTest
运行成功的截图package test; import java.util.EnumSet; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.MetadataSources; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.boot.spi.MetadataImplementor; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.hibernate.tool.schema.TargetType; import org.junit.Test; import entity.Student; public class StudentTest { /** * 创建数据表 */ @Test public void addTable() { ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build(); MetadataImplementor metadataImplementor = (MetadataImplementor) new MetadataSources(serviceRegistry).buildMetadata(); SchemaExport export = new SchemaExport(); export.create(EnumSet.of(TargetType.DATABASE), metadataImplementor); } /** * 添加一个学生 */ @Test public void addStudent() { Configuration configuration = new Configuration().configure(); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build(); SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry); Session session = sessionFactory.openSession(); Student student = new Student(); student.setName("Tom"); student.setSex("男"); session.save(student); session.beginTransaction().commit(); session.close(); sessionFactory.close(); } }
接下来我们到navicat中刷新数据库查看运行结果