使用Eclipse
建立工程,源码目录为src 输出目录为bin
基础类FontClass 有字段:long recordID、String fontName、Timestamp addTime 以及相应的set、get方法
对应的数据库表为
Font
CREATE TABLE font(
recordID bigint(20) NOT NULL auto_increment,
fontName varchar(50) NOT NULL default '隶书',
addTime Timestamp,
PRIMARY KEY (recordID)
) TYPE=MyISAM;
建立对应FontClass的hbm文件
font.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name=" FontClass" table="font">
<id name="recordID" column="recordID">
<generator class="increment"/>
</id>
<property name="fontName"/>
<property name="addTime"/>
</class>
</hibernate-mapping>
在src下面建立hibernate的配置文件hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory name="java:/hibernate/HibernateFactory" >
<!-- local connection properties -->
<property name="hibernate.connection.url">jdbc:mysql://localhost/db</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">xxx</property>
<property name="hibernate.connection.password">xxx</property>
<!-- property name="hibernate.connection.pool_size"></property -->
<!-- dialect for MySQL -->
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="font.hbm.xml"/>
</session-factory>
</hibernate-configuration>
编写测试用例
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session s = factory.openSession();
Transaction tx = s.beginTransaction();
MMSTemplateFontInfoClass font = new MMSTemplateFontInfoClass();
font.setFontName("隶书");
s.save(font);
tx.commit();
s.flush();
查询可以使用
List list = s.find("from FontClass where fontName='草书'");
这里要注意数据库的字符集要使用gbk
或者使用
Query q = s.createQuery("from FontClass");
// 这句话的意思是说查询结果从第几行开始列出数据
q.setFirstResult(0);
// 这句话的意思是取多少条数据,就跟SQL SERVER的TOP方法和MYSQL的LIMIT方法一样的意思。
q.setMaxResults(3);
// 得到一个ScrollableResults,可滚动的,如果你的数据库支持游标自由移动的话可以加上,
// 也就是说可以判断查询结果有没有值,或者移动到下一行记录等等。
//ScrollableResults sc = q.scroll();
// 返回一个List接口,用来遍历结果集
list = q.list();