`
xyzroundo
  • 浏览: 498960 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

Hibernate连接数据库

阅读更多
2.4  通过Hibernate连接数据库
Hibernate能够访问多种关系数据库,如SQL Server、MySQL、Oracle和Access等。在访问这些数据库时,只需要在Hibernate的配置文件中指定正确的连接属性值。下面将给出通过Hibernate连接几种常用数据库的Hibernate配置文件。

2.4.1  连接SQL Server 2000数据库的Hibernate配置文件
连接SQL Server 2000的Hibernate配置文件有两种格式,一种是xml格式的,另一种是Java属性文件格式的。下面将分别给出这两种格式的配置文件的代码。

1.xml格式的配置文件
下面将给出连接本地SQL Server服务器上的db_database02数据库时Hibernate配置文件hibernate.cfg.xml的代码。

例程2-1:光盘\mr\02\sl\01\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-3.0.dtd">

<hibernate-configuration>

<!--SessionFactory配置-->

  <session-factory>

<!--指定数据库使用的SQL方言-->

    <property name="hibernate.dialect">

    org.hibernate.dialect.SQLServerDialect

    </property>

    <!--指定连接数据库用的驱动-->

    <property name="connection.driver_class">

      com.microsoft.jdbc.sqlserver.SQLServerDriver

    </property>

    <!--指定连接数据库的路径-->

    <property name="connection.url">

      jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=db_database02

    </property>

    <!--指定连接数据库的用户名-->

    <property name="connection.username">sa</property>

<!--指定连接数据库的密码-->

    <property name="connection.password"></property>

<!--当show_sql属性为true时,表示当程序运行时在控制台输出SQL语句,默认为false-->

    <property name="show_sql">true</property>

<!--指定是否按照标准格式在控制台上输出SQL语句-->

<property name="format_sql">true</property>

<!--指定是否在SQL语句中输出便于调试的注释信息-->

<property name="use_sql_comments">true</property>

<!--指定持久化类映射文件-->

    <mapping resource="com/BranchForm.hbm.xml"/>

  </session-factory>

</hibernate-configuration>

在上面的代码中,“127.0.0.1”代表本地SQL Server服务器,如果想连接其他服务器可以修改为要连接的SQL Server服务器的IP地址,也可以是服务器名(如wgh);“db_database02”为要连接的数据库名称;“sa”为连接SQL Server服务器的登录用户;“<property name="connection.password"></property>”表示连接SQL Server服务器的登录密码为空,如果不为空,只需在“>”和“<”之间加入密码即可;“BranchForm.hbm.xml”为持久化类对应的映射文件名称。

2.Java属性文件格式的配置文件
下面将给出连接本地SQL Server服务器上的db_database02数据库时Hibernate配置文件hibernate.properties的代码。

例程2-2:光盘\mr\02\sl\02\hibernate.properties

#指定连接数据库使用的SQL方言#

hibernate.dialect=org.hibernate.dialect.SQLServerDialect

#指定连接数据库的驱动程序#

hibernate.connection.driver_class=com.microsoft.jdbc.sqlserver.SQLServerDriver

#指定连接数据库的URL#

hibernate.connection.url=jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=db_database02

#指定连接数据库的用户名#

hibernate.connection.username=sa

#指定连接数据库的密码#

hibernate.connection.password=

#指定在执行程序时,是否在控制台上输出SQL语句#

hibernate.show_sql=true

#-指定是否按照标准格式在控制台上输出SQL语句#

hibernate.format_sql=true

#指定是否在SQL语句中输出便于调试的注释信息#

hibernate.use_sql_comments=true

在上面的代码中,“127.0.0.1”代表本地SQL Server服务器,如果想连接其他服务器可以修改为要连接的SQL Server服务器的IP地址,也可以是服务器名(如wgh);“db_database02”为要连接的数据库名称;“sa”为连接SQL Server服务器的登录用户;“hibernate.connection.password=”表示连接SQL Server服务器的登录密码为空,如果不为空,只需在等号“=”后面加上密码即可。

2.4.2  连接MySQL数据库的Hibernate配置文件
连接MySQL的Hibernate配置文件有两种格式,一种是xml格式的,另一种是Java属性文件格式的。下面将分别给出这两种格式的配置文件的代码。

1.xml格式的配置文件
下面将给出连接本地MySQL服务器上的db_database02数据库时Hibernate配置文件hibernate.cfg.xml的代码。

例程2-3:光盘\mr\02\sl\03\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-3.0.dtd">

<hibernate-configuration>

  <session-factory>

    <property name="connection.driver_class"><!--指定连接数据库用的驱动-->

      com.mysql.jdbc.Driver

    </property>

    <property name="connection.url"><!--指定连接数据库的路径-->

      jdbc:mysql://localhost:3306/db_database02

    </property>

    <property name="connection.username">root</property><!--指定连接数据库的用户名-->

    <property name="connection.password">111</property><!--指定连接数据库的密码-->

<!--指定数据库使用的SQL方言-->

    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!--指定一个Transaction实例工厂类-->

    <property name="hibernate.transaction.factory_class">

       org.hibernate.transaction.JDBCTransactionFactory

</property>

<!--当show_sql属性为true时表示在程序运行时在控制台输出SQL语句,默认为false,建议在调试程序时设为true,发布程序之前再改为false,因为输出SQL语句会影响程序的运行速度-->

    <property name="show_sql">true</property>

    <!--指定是否按照标准格式在控制台上输出SQL语句-->

    <property name="format_sql">true</property>

    <!--指定是否在SQL语句中输出便于调试的注释信息-->

    <property name="use_sql_comments">true</property>

    <mapping resource="UserForm.hbm.xml"/><!--指定持久化类映射文件-->

  </session-factory>

</hibernate-configuration>

在上面的代码中,“localhost”代表本地MySQL服务器,如果想连接其他服务器可以修改为要连接的MySQL服务器的名称;“db_database02”为要连接的数据库名称;“root”为登录用户名;“111”表示用户密码;“org.hibernate.transaction.JDBCTransactionFactory”表示采用JDBC的事务处理机制;“UserForm.hbm.xml”为持久化类对应的映射文件名称。

2.Java属性文件格式的配置文件
下面将给出连接本地MySQL服务器上的db_database02数据库时Hibernate配置文件hibernate.properties的代码。

例程2-4:光盘\mr\02\sl\04\hibernate.properties

#指定连接数据库使用的SQL方言#

hibernate.dialect=org.hibernate.dialect.MySQLDialect

#指定连接数据库的驱动程序#

hibernate.connection.driver_class=com.mysql.jdbc.Driver

#指定连接数据库的URL#

hibernate.connection.url=jdbc:mysql://localhost:3306/db_database02

#指定连接数据库的用户名#

hibernate.connection.username=root

#指定连接数据库的密码#

hibernate.connection.password=111

#指定一个Transaction实例工厂类#

hibernate.transaction.factory_class=org.hibernate.transaction.JDBCTransactionFactory

#指定在执行程序时,是否在控制台上输出SQL语句#

hibernate.show_sql=true

#-指定是否按照标准格式在控制台上输出SQL语句#

hibernate.format_sql=true

#指定是否在SQL语句中输出便于调试的注释信息#

hibernate.use_sql_comments=true

在上面的代码中,“localhost”代表本地MySQL服务器,如果想连接其他服务器可以修改为要连接的MySQL服务器的名称;“db_database02”为要连接的数据库名称;“root”为登录用户名;“111”表示用户密码;“org.hibernate.transaction.JDBCTransactionFactory”表示采用JDBC的事务处理机制。

2.4.3  连接Oracle数据库的Hibernate配置文件
连接Oracle的Hibernate配置文件有两种格式,一种是xml格式的,另一种是Java属性文件格式的。下面分别给出这两种格式配置文件的代码。

1.xml格式的配置文件
下面将给出连接本地Oracle服务器上的db_database02数据库时Hibernate配置文件hibernate.cfg.xml的代码。

例程2-5:光盘\mr\02\sl\05\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-3.0.dtd">

<hibernate-configuration>

  <session-factory>

    <!--指定连接数据库用的驱动-->

    <property name="connection.driver_class">

    oracle.jdbc.driver.OracleDriver

    </property>

    <!--指定连接数据库的路径-->

    <property name="connection.url">

    jdbc:oracle:thin:@localhost:1521:db_database02

    </property>

    <!--指定连接数据库的用户名-->

    <property name="connection.username">SYSTEM</property>

    <property name="connection.password">SYSTEM</property><!--指定连接数据库的密码-->

    <!--指定数据库使用的SQL方言-->

    <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>

<!--当show_sql属性为true时表示在程序运行时在控制台输出SQL语句,默认为false,建议在调试程序时设为true,发布程序之前再改为false,因为输出SQL语句会影响程序的运行速度-->

    <property name="show_sql">true</property>

    <mapping resource="UserForm.hbm.xml"/><!--指定持久化类映射文件-->

  </session-factory>

</hibernate-configuration>

在上面的代码中,“localhost”代表本地Oracle服务器,如果想连接其他服务器可以修改为要连接的Oracle服务器的名称;“db_database02”为要连接的数据库名称;“SYSTEM”为登录用户名;“SYSTEM”表示用户密码;“UserForm.hbm.xml”为持久化类对应的映射文件名称。

2.Java属性文件格式的配置文件
下面将给出连接本地Oracle服务器上的db_database02数据库时Hibernate配置文件hibernate.properties的代码。

例程2-6:光盘\mr\02\sl\06\hibernate.properties

#指定连接数据库使用的SQL方言#

hibernate.dialect=org.hibernate.dialect.MySQLDialect

#指定连接数据库的驱动程序#

hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver

#指定连接数据库的URL#

hibernate.connection.url=jdbc:oracle:thin:@localhost:1521:db_database02

#指定连接数据库的用户名#

hibernate.connection.username=SYSTEM

#指定连接数据库的密码#

hibernate.connection.password=SYSTEM

#指定在执行程序时,是否在控制台上输出SQL语句#

hibernate.show_sql=true

在上面的代码中,“localhost”代表本地Oracle服务器,如果想连接其他服务器可以修改为要连接的Oracle服务器的名称;“db_database02”为要连接的数据库名称;“SYSTEM”为登录用户名;“SYSTEM”表示用户密码。

说明:在Hibernate包的etc目录下附带了一个用于连接各种关系数据库配置代码的hibernate.properties文件,读者可以根据该文件写出连接其他数据库的配置文件。



1433是SQLserver默认的端口号,如果要连接到其他机器上,要将localhost改为其他机器的IP地址,如192.168.0.101。


其中数据库名是你所新建的数据库的名称,用户名和密码是你登陆SQLserver是的用户名和密码。

有的人安装SQLserver时用的是Windows身份验证,那么用户名和密码都为空。如果不能登陆,或者要用SQL身份验证的话,需要修改注册表。在运行里打开regedit,然后查找loginmode(具体位置:hkey_local_machine\software\microsoft\MSSQLserver\
mssqlserver\),仅用Windows身份验证的值为1,混合身份验证的值为2。只要将1改为2,就可以用SQL身份验证了,用户名为‘sa',密码为空。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics