posts - 0,  comments - 20,  trackbacks - 0

原文: http://blog.csdn.net/sonicluo3/archive/2007/06/24/1664367.aspx

最近一段时间都在学习hibernate和SQLServer .发现SQLServer有个问题就是默认安装的时候1433端口是不会打开的所以必需在连接前手动去打开.

首先看看数据库表的创建

use demo;

CREATE TABLE people(
    id 
INT identity(1,1NOT NULL  PRIMARY KEY,    --设置为自增主键
    age int not null default 20,
    name 
VARCHAR(100NOT NULL default '',
    room_id 
INT  foreign key references room(id)
);

CREATE TABLE room(
    id 
INT identity(1,1PRIMARY KEY,
    address 
VARCHAR(100NOT NULL default ''
);

然后是hibernate.cfg.xml文件的配置

<?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> 

        
<!-- 是否显示SQL语句 --> 
        
<property name="show_sql">true</property> 
        
<!-- SQL��数据库方言��SQLServer --> 
        
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property> 
        
<!-- JDBC�Driver --> 
        
<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> 
        
<!-- JDBC URL --> 
        
<property name="connection.url">jdbc:sqlserver://localhost:1433;databaseName=demo;</property> 
        
<!-- 用户名� --> 
        
<property name="connection.username">sa</property> 
        
<!-- 密码 --> 
        
<property name="connection.password">sonicluo3</property> 
        
<!--数据库连接池-->
        
<property name="c3p0.min_size">5</property> 
        
<property name="c3p0.max_size">20</property> 
        
<property name="c3p0.timeout">1800</property> 
        
<property name="c3p0.max_statements">50</property>
        
<!-- 配置每次提交SQL的数量  -->
        
<property name=" hibernate.jdbc.batch_size">50</property>
        
<!-- 关系映射  --> 
        
<mapping resource="com/sonic/User.hbm.xml"/> 
        
<mapping resource="com/sonic/Room.hbm.xml"/>
        
    
</session-factory> 
</hibernate-configuration>

 由于beans的编写很简单所以在这里就不列出了.

下面看bean的maping文件

User.hbm.xml

 

<?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> 

    
<class name="onlyfun.caterpillar.User" table="people"> 

        
<id name="id" column="id" type="java.lang.Integer"> 
            
<generator class="native"/> 
        
</id> 

        
<property name="name" column="name" type="java.lang.String"/> 

        
<property name="age" column="age" type="java.lang.Integer"/> 

        
<many-to-one name="room" 
                     column
="room_id" 
                     class
="com.sonic.Room"
                     cascade
="all"
                     outer-join
="true"/>  
                
    
</class> 

</hibernate-mapping>

 

Room.hbm.xml

 

<?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> 

    
<class name="onlyfun.caterpillar.Room" table="room"> 
        
<id name="id" column="id"> 
            
<generator class="native"/> 
        
</id> 

        
<property name="address" 
                  column
="address" 
                  type
="java.lang.String"/> 
    
</class> 

</hibernate-mapping>

最后测试是否能连接成功

 

import java.util.Random;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import java.util.*;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import java.io.Console;
/**
 * Hello Hibernate
 * 
 * 
 *  @hibernate.query
 
*/

public class HibernateTest {
     
     
private   Configuration config;
     
private   SessionFactory sessionFactory ;
     
private   String in="东四-442";
     
     
public HibernateTest(){
  
          
// Configuration 負責管理 Hibernate 配置訊息
          config= new Configuration().configure();
          
// 根據 config 建立 SessionFactory , SessionFactory 將用於建立 Session
          sessionFactory = config.buildSessionFactory();
           Session session 
= sessionFactory.openSession(); 
          Criteria criteria
=session.createCriteria(User.class);
          List users 
= criteria.list();  //列出全部user对象列表
          Iterator iterator = users.iterator();
          
while(iterator.hasNext()){
               User user 
= (User)iterator.next();
               System.out.println(user.getName()
+ " "+user.getRoom().getAddress()+" " );  
          }

          sessionFactory.close();
  }

     
public static void main(String[] args) {
          
          
new HibernateTest();
            
     }

}
posted on 2008-08-24 00:17 Documents 阅读(1165) 评论(1)  编辑  收藏 所属分类: HibernateSQL Server


FeedBack:
# re: 用hibernate 连接SQLServer2005
2012-05-10 10:03 | ss
sfdf  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

留言簿

文章分类

文章档案

J2EE

搜索

  •  

最新评论