Hibernate如何动态链接数据库

Hibernate如何动态链接数据库,第1张

一.导包 mysql

二.在默认src下创建hibernate.cfg.xml

1.创建xml文件,命名为hibernate.cfg.xml

2.添加约束

(在org.hibernate/hibernate-configuration-3.0.dtd中)

1 <!DOCTYPE hibernate-configuration PUBLIC2 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"3 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration><session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.url">jdbc:mysql://localhost:3306/houserentsys</property> <!-- houserentsys是数据库名称 -->

<property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.username">root</property> <property name="connection.password">123456</property>

<property name="show_sql">true</property> <property name="format_sql">false</property> <!-- 设置为false就会不换行 --> <property name="hbm2ddl.auto">update</property> <!-- 进行 *** 作时不会删除重建-->

<!--hbm2ddl.auto属性:

create:表示启动的时候先drop,再create

c

reate-drop: 也表示创建,只不过再系统关闭前执行一下drop

update: 这个 *** 作启动的时候会去检查schema是否一致,如果不一致会做scheme更新

validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新

-->

<mapping resource="edu/tsinghua/entity/mapping/district.xml"/> <mapping resource="edu/tsinghua/entity/mapping/street.xml"/>

</session-factory></hibernate-configuration>

hbm2ddl.auto属性:

create:表示启动的时候先drop,再create

create-drop: 也表示创建,只不过再系统关闭前执行一下drop

update: 这个 *** 作启动的时候会去检查schema是否一致,如果不一致会做scheme更新

validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新

三.实体 实现序列化接口 封装属性和构造方法实体.xml 位置随意

(在org.hibernate/hibernate-mapping-3.0.dtd中)

<!DOCTYPE hibernate-mapping PUBLIC

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

在hibernate.cfg.xml 添加 映射文件的引用

<mapping resource="edu.tsinghua.entity.mapping.district"/>

七个步骤(在新建的执行文件Test.java中)

//1.加载配置文件

Configuration cfg=new Configuration().configure()

//2.获得sessionfactory

ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry()

SessionFactory sf=cfg.buildSessionFactory(serviceRegistry)

//3.创建session

Session session=sf.openSession()

//4.创建事务

Transaction tx=session.beginTransaction()

//5. *** 作

District dis=new District(100,"海淀区")

session.save(dis)

//6.提交 回滚

tx.commit()//tx.rollback()

//7.释放资源

Hibernate与各种数据库连接的配置

1. Oracle连接配置

Oracler数据库的hibernate在配置文件中配置。

连接部分

<!--驱动程序-->

<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

<!-- JDBC URL -->

<property name="connection.url">jdbc:oracle:thin:@localhost:1521:dbname</property>

<!--数据库用户名-->

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

<!--数据库密码-->

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

上例使用的驱动类为:oracle.jdbc.driver.OracleDriver,开发人员需要将相关的jar包(ojdbc14.jar)加入到classpath中。

2. MySql连接配置

MySql数据库的hibernate连接设置,在hibernate.cfg.xml文件中

<hibernate-configuration>

<session-factory>

<!--各属性的配置-->

<!—为true表示将Hibernate发送给数据库的sql显示出来 -->

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

<!-- SQL方言,这边设定的是MySQL -->

<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>

<!--一次读的数据库记录数 -->

<property name="jdbc.fetch_size">50</property>

<!--设定对数据库进行批量删除 -->

<property name="jdbc.batch_size">30</property>

<!--驱动程序-->

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

<!-- JDBC URL -->

<property name="connection.url">jdbc:mysql://localhost/dbname?

characterEncoding=gb2312</property>

<!--数据库用户名-->

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

<!--数据库密码-->

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

<!—映射文件 -->

<mapping resource="com/amigo/pojo/User.hbm.xml"/>

<mapping resource="com/amigo/pojo/Org.hbm.xml"/>

</session-factory>

</hibernate-configuration>

上面使用的驱动类是com.mysql.jdbc.Driver.需要将MySql的连接器jar包(eg. mysql-connector-java-Dbname为数据库名字5.0.4-bin.jar)加入到classpath中。

3. Sql Server连接配置

Sql Server数据库的hibernate在配置文件中配置。

连接部分

<!--驱动程序-->

<property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>

<!-- JDBC URL -->

<property

name="connection.url">jdbc:jtds:sqlserver://localhost:1433DatabaseName=dbname</property>

<!--数据库用户名-->

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

<!--数据库密码-->

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

上例的驱动类使用的是jtds的驱动类,因此读者需要将jtds的jar包(eg. jtds-1.2.jar)加入到classpath中

4. DB2连接配置

DB2数据库的hibernate在配置文件中配置。

连接部分

<!--驱动程序-->

<property name="connection.driver_class">com.ibm.db2.jdbc.app.DB2Driver</property>

<!-- JDBC URL -->

<property

name="connection.url">jdbc:db2://localhost:5000/sample </property> //sample为数据库名

<!--数据库用户名-->

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

<!--数据库密码-->

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

上例使用的驱动类为:com.ibm.db2.jdbc.app.DB2Driver,开发人员需要将相关的jar包(db2jcc.jar)加入到classpath中。

5.sybase连接配置

sybase数据库的hibernate在配置文件中配置。

连接部分

<!--驱动程序-->

<property name="connection.driver_class">com.sybase.jdbc.SybDrive</property>

<!-- JDBC URL -->

<property

name="connection.url">jdbc:sybase:Tds:localhost:5007/myDB</property>//myDB为数据库名

<!--数据库用户名-->

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

<!--数据库密码-->

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

上例使用的驱动类为:com.sybase.jdbc.SybDrive,开发人员需要将相关的jar包(jconn3.jar)加入到classpath中。

6. informix连接配置

informix数据库的hibernate在配置文件中配置。

连接部分

<!--驱动程序-->

<property name="connection.driver_class">com.informix.jdbc.IfxDrive</property>

<!-- JDBC URL -->

<property

name="connection.url">jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver </property>//myDB为数据库名

<!--数据库用户名-->

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

<!--数据库密码-->

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

上例使用的驱动类为:com.informix.jdbc.IfxDrive,开发人员需要将相关的jar包(ifxjdbc.jar)加入到classpath中。

7.PostgreSQL连接配置

PostpreSQL数据库的hibernate在配置文件中配置。

连接部分

<!--驱动程序-->

<property name="connection.driver_class">org.postgresql.Driver</property>

<!-- JDBC URL -->

<property

name="connection.url">jdbc:postgresql://localhost/myDB</property>//myDB为数据库名

<!--数据库用户名-->

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

<!--数据库密码-->

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

上例使用的驱动类为:com.informix.jdbc.IfxDrive,开发人员需要将相关的jar包(postgresql-8.1-405.jdbc3)加入到classpath中。

8.access连接配置

access数据库的hibernate在配置文件中配置。

连接部分

<!--驱动程序-->

<property name="connection.driver_class">sun.jdbc.odbc.JdbcOdbcDriver</property>

<!-- JDBC URL -->

<property

name="connection.url">jdbc:odbc:Driver={MicroSoft..Access..Driver(*.mdb)}DBQ="+application.getRealPath("/Data/ReportDemo.mdb")</property>//myDB为数据库名

<!--数据库用户名-->

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

<!--数据库密码-->

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10819119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存