初试hibernate4.3.6

hibernate最新下载地址:http://jaist.dl.sourceforge.net/project/hibernate/hibernate4/4.3.6.Final/hibernate-release-4.3.6.Final.zip

示例只提供一个表的增删改查操作.

一,基础

  导入lib下\required的类包.

  创建类:com.hbm.Dbcon, 主要代码:private int id;  private String userName;  private String userPW;  private String url; private String dialect;

  还有相应的get/set方法.

         创建hbm.cfg.xml和Dbcon.xml文件.同时复制资源文件:project\hibernate-core\src\main\resources\org\hibernate文件夹下hibernate-configuration-3.0.dtd和hibernate-mapping-3.0.dtd到com.hbm下.

  形成的目录结构:


  其中Test为测试类,后面会详细讲到.

    Dbcon.xml文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"src/com/hbm/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hbm.Dbcon" table="dbcon">
<id column="id" name="id" />
<property name="userName" column="userName" type="java.lang.String" />
<property name="userPW" column="userPW" type="java.lang.String" />
<property name="url" column="url" type="java.lang.String" />
<property name="dialect" column="dialect" type="java.lang.String" />
</class>
</hibernate-mapping>

   hbm.cfg.xml文件的内容:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "src/com/hbm/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">sa</property>
<property name="hibernate.connection.url">jdbc:jtds:sqlserver://localhost/hbm;charset=gb2312;instance=SQLEXPRESS</property>

<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="show_sql">true</property>

<property name="hibernate.c3p0.max_size">2</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.timeout">5000</property>
<property name="hibernate.c3p0.max_statements">100</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<property name="hibernate.c3p0.validate">false</property>
<property name="checkoutTimeout">2000</property>

<mapping resource="com\hbm\Dbcon.xml" />
</session-factory>
</hibernate-configuration>

jdbc的驱动为jtds-1.2.8.jar最新下载地址:http://sourceforge.net/projects/jtds/files/?source=navbar  ,并导入.

同时,在数据库中新建表,表名:dbcon

建表语句:

CREATE TABLE hbm.dbo.dbcon (
id int NOT NULL,
userName nchar(10),
userPW nchar(10),
url nchar(100),
dialect nchar(100),
CONSTRAINT PK_dbcon PRIMARY KEY (id)
);
CREATE INDEX DBCON_INDEX ON hbm.dbo.dbcon ();
CREATE INDEX PK_dbcon ON hbm.dbo.dbcon (id);

二,增删改查

  新建类,com.hbm.Test

        main方法内容:


public static void main(String[] args) {

Configuration configuration = new Configuration();
configuration.configure("com/hbm/hbm.cfg.xml");
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
builder.applySettings(configuration.getProperties());

StandardServiceRegistry standardServiceRegistry = builder.build();
SessionFactory sessionFactory = configuration.buildSessionFactory(standardServiceRegistry);


Session session = sessionFactory.openSession();


Test test = new Test();
Dbcon dbcon = test.insert(session);
System.out.println(dbcon.getUserPW());


test.update(session, dbcon);
System.out.println(dbcon.getUserPW());


List<Dbcon> cons = test.select1(session);
System.out.println(cons == null ? -1 : cons.size());


test.delete(session, dbcon);
List<Dbcon> afterDelete = test.select1(session);
System.out.println(afterDelete == null ? -1 : afterDelete.size());


session.flush();
session.clear();
session.close();
sessionFactory.close();
}

所有import的类,都是org.hibernate开头的类.

insert,update,select,delete方法:

private Dbcon insert(Session session) {
Transaction transaction = session.getTransaction();
transaction.begin();


Dbcon mssql = new Dbcon();
mssql.setId(1);
mssql.setDialect("mssql");
mssql.setUrl("url");
mssql.setUserName("sa");
mssql.setUserPW("sa");
session.save(mssql);
transaction.commit();


return mssql;
}

private Dbcon update(Session session, Dbcon con) {
Transaction transaction = session.getTransaction();
transaction.begin();
con.setUserPW("sa2");
session.update(con);
transaction.commit();
return con;
}

private void delete(Session session, Dbcon con) {
Transaction transaction = session.getTransaction();
transaction.begin();
session.delete(con);
session.delete(con);
}

private List<Dbcon> select1(Session session) {
Query query = session.createQuery("FROM Dbcon as dbcon WHERE id>0 AND dialect=:dialect");
query.setString("dialect", "mssql");// 将查询语句中"dialect=:dialect"中后面的:"=:dialect"的dialect具体的值设为:mssql
List<Dbcon> cons = query.list();
return cons;
}

其它查询方式

private List<Dbcon> select2(Session session) {
Criteria c = session.createCriteria(Dbcon.class);
c.add(Restrictions.eq("dialect", "mssql"));// eq是等于,gt是大于,lt是小于,or是或
c.add(Restrictions.gt("id", 0));
List<Dbcon> cons = c.list();
return cons;
}


private List<Dbcon> select3(Session session) {
SQLQuery query = session.createSQLQuery("SELECT * FROM dbcon WHERE id>? AND dialect=?");
query.addEntity(Dbcon.class);
query.setInteger(0, 0);
query.setString(1, "mssql");
List<Dbcon> cons = query.list();
return cons;
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值