1首先在数据库中建立一个用户表User(我推荐刚起步的时候这样起名字,因为它会和你接下来的类名相同,减少出错误的可能性)
2我这里用的是idea,但是你用其他IDE也一样,没有关系。建立一个User类。
public class User {
private int userId;
private String userName;
private String password;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
3然后开始建立hibernate的配置文件。
首先建立orm文件(就是把你建立的User类和数据库中的User表关联起来)
这个文件可以随便起名字,但为了规范(也就是别人看的懂)一般都是 类名+hbm.xml.
所以我们这里User的映射文件名为: User-hbm.xml
然后开始写配置文件。这里我强调一下,大家千万不要不太多的精力放在配置文件上,因为对于初学者这个并不是很重要,即使对于开发多年的老手或者高手他们也不会对配置文件很了解,他们也是碰到来问题然后去解决,只不过他们的解决办法是看文档,新手是靠百度。所以我也不会讲太多,大家直接把我这个复制下来就可以了。
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
任何配置文件都要有这个开头。我建议大家在写配置文件的时候用那些比较智能的,就是写的时候会把标签提示给你,因为这样会减少出错的可能性。(再强调一遍,hibernate的重点不是配置文件)
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="model">
<!-- 配置信息-->
</hibernate-mapping>
我担心不能把颜色显示出来所以我把图片上传了。
<hibernate-mapping package="model">
<!-- 配置信息-->
</hibernate-mapping>
model就是根标签(没有为什么,规定就是这样),里面有一个package属性,就是写你类的包名(这个包名可以写在这里,接下来写全类名的时候,你就写类名就可以了,不用加包名)。如果你这里没写package这个属性也没事,在下面写包名的时候写全类名就可以了。
class
hibernate-mapping的下一个标签就是class标签,看名字就可以猜到,接下来我们要写类的一些信息了。
类的第一个属性当然就是类名了,因为我们前面已经指定来包名,所以这里直接写User就可以了。当然也需要下这个类所映射的表名,当然也是User了。
每一张表中都有主键,也就是id。所以id这个标签是用来指定id的。
name属性是类中的字段的名称。也就是User 中的private int userId这个变量。
所以name=”userId”
cloumn属性User表中对应的字段,当然也是userId(当时我们为了减少出错的可能性全部用来相同的名字,其实在实际开发中也是尽量用相同的名字)
type类型:就是###类###中数据的类型
因为我们这里id是int类型,为了方便我们希望id以自增的方式,所以又加了一个 generator 标签,它的class值为increment。
除了id之外其他字段全部用property标签,它和id大同小异,也是写column,name,type这三个属性值。
这里我就不再重复讲了.
好了,orm文件写完来,接下来就是hibernate的配置文件。
建议大家起的名字为 hibernate-cfg.xml 很直观,就是hibernate config的缩写嘛。
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">jdbc:hsqldb:hsql://localhost</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<mapping resource="mapping/User-hbm.xml"/>
</session-factory>
</hibernate-configuration>
开始标签就是hibernate-configuration这没什么可以讲的。
接下来就是session-factory:如何理解session-facotry呢,其实它就是一个连接工厂,在jdbc里面连接是Connection,在hibernate里面连接时Session。
在yongjdbc连接的时候,我们需要加载jdbc驱动,用户名,密码,url同样在这里也需要这些的加载。
当然加载完这些之后,我们需要将映射文件也配置进去。
也就是mapping标签,我们这里只有一个映射文件,因此只写一个mapping。
好了,现在貌似基本都完了,我们来实践一下吧。
Configuration configuration=new Configuration();
configuration.configure("hibernate-cfg.xml");
SessionFactory sessionFactory=configuration.buildSessionFactory();
User user=new User();
user.setUserName("liu");
Session session=sessionFactory.openSession();
Transaction transaction=session.beginTransaction();
session.save(user);
transaction.commit();
解释一下这段代码,Configuration就是配置,SessionFactory就是链接工厂,Session就是连接,Transaction就是事物,学过数据库事物有一个特点就是要么全部执行成功,要么全部都不成功。