hibernate資料庫配置
⑴ hibernate連接sqlite資料庫名怎麼配置
<?xml version="1.0" encoding='utf-8'?>
<! hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.sqlite.JDBC</property>
<property name="connection.url">jdbc:sqlite:data/money.dat</property>
<property name="connection.pool_size">1</property>
<property name="dialect">com.kksoft.hibernate.dialect.SQLiteDialect</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
<property name="connection.autoReconnect">true</property>
<property name="connection.autoReconnectForPools">true</property>
<property name="connection.is-connection-validation-required">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
⑵ 怎麼hibernate連接資料庫
首先,我們把hibernate最基本的資料庫連接,使用mysql。 見一個java工程,見一個包名為book, 在的包下加一個java類Book.java,其代碼如下: package book; public class Book { private Integer id; private String name; private String writer; public Integer get hibernate最基本的資料庫連接,使用mysql。 見一個java工程,見一個包名為「book」
溫馨提示:下圖僅供欣賞,不作為教學。
然後在在book的包下加一個java類Book.java,其代碼如下: package book; public class Book { private Integer id; private String name; private String writer; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getWriter() { return writer; } public void setWriter(String writer) { this.writer = writer; } }
溫馨提示:下圖僅供欣賞,不作為教學。
然後在book包下建一個book.hbm.xml,其代碼如下: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="book" default-lazy="false"> <class name="Book"> <id name="id"> <generator class="increment"/> </id> <property name="name" ></property> <property name="writer" ></property> </class> </hibernate-mapping>
溫馨提示:下圖僅供欣賞,不作為教學。
這個事與資料庫裡面的欄位名形成映射關系,自己在mysql建立book表時與之對應,id是自增長的, 然後在工程的根目錄下建一個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> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost/mydb</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <!-- <property name="hbm2ddl.auto">${hibernate.hbm2ddl.auto}</property>--> <!-- <property name="current_session_context_class">thread</property>--> <mapping resource="book/Book.hbm.xml" /> </session-factory> </hibernate-configuration>
溫馨提示:下圖僅供欣賞,不作為教學。
這是連接mysql資料庫的,用戶名和密碼改為你mysql資料庫的 <property name="show_sql">true</property>這是在後台列印sql語句 <mapping resource="book/Book.hbm.xml" />這是找到映射文件。
溫馨提示:下圖僅供欣賞,不作為教學。
然後些個測試類:代碼如下: package test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import book.Book; public class MainTest { /** * @param args */ public static void main(String[] args) { try { Configuration cfg=new Configuration()。configure(); SessionFactory sf=cfg.buildSessionFactory(); Session session = sf.openSession(); Transaction ts=session.beginTransaction(); Book b=new Book(); b.setName("hibernate"); b.setWriter("div"); session.save(b); // Book b=(Book) session.get(Book.class,1); // if(b!=null){ // b.setName("xujun"); // System.out.println("書名為:"+b.getName()); // System.out.println("作者為:"+b.getWriter()); // session.delete(b); // } ts.commit(); session.close(); sf.close(); } catch (Exception e) { e.printStackTrace(); } } }
mysql表的欄位如下:
把資料庫建好後就可以測試。對了,關鍵的還沒有說,還得把antlr.jar,cglib.jar,asm.jar,asm-attrs.jar,commons-colletions.jar,commons-logging.jar,ehcache.jar, jta.jar,dom4.jar,log4.jar,hibernate3.jar引入到lib目錄下
溫馨提示:下圖僅供欣賞,不作為教學。
⑶ hibernate連接mysql配置文件沒有
每次載入hibernate時根據model類生成表,但是sessionFactory一關閉,表就自動刪除。
update:
最常用的屬性,第一次載入hibernate時根據model類會自動建立起表的結構(前提是先建立好資料庫),以後載入hibernate時根據model類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到伺服器後,表結構是不會被馬上建立起來的,是要等應用第一次運行起來後才會。
validate :
每次載入hibernate時,驗證創建資料庫表結構,只會和資料庫中的表進行比較,不會創建新表,但是會插入新值。
⑷ hibernate配置oracle資料庫該怎麼寫
1
既然你要鏈接oracle資料庫 ,那麼首先就是先打開我們的oracle資料庫了(登陸oracle後用scoot用戶登錄)
2
第二步,就是打開我們的MyEclipse開發工具
3
在MyEclipse中新建一個web項目
4
在我們MyEclipse右上角中選擇MyEclopse Database Explorer隨後在我們的Database Explorer中的空白處右擊新建
5
在彈出的窗體中按照圖中提示選擇(這一步注意的是Add JARS 必須要選擇的是oracle數據環境下的ojdbc6.jar包)
6
點擊下一步之後按照圖中選項選擇
7
選擇scoot用戶後點擊下一步
8
最後點擊結束!完成
9
雙擊我們的scoot可以看到我們的表空間
10
返回到我們的MyEclipse界面,在web項目上右擊→MyEclipse→add hibernate Annotations彈出如下框,隨後按照圖中選項選擇
11
選擇我們的src文件夾
12
數據連接選擇scoot用戶(如下圖)
13
創建一個新的包
14
完成我們的配置文件
15
在我們的MyEclopse Database Explore中的scoot表空間的選擇一個表然後右擊選擇hibernate Reverse Engineering
16
新建一個包為bboy2
17
將我們的 Id Generator 選為 increment
18
彈出的提示框選擇NO
19
這樣我們的MyEclipse部署hibernate配置文件和鏈接資料庫就完成了
⑸ hibernate資料庫用oracle 11g,這個配置文件你們公司寫成什麼呢
沒用11g,不過平時我都用的org.hibernate.dialect.OracleDialect
⑹ hibernate連接h2資料庫配置怎麼寫
大家可以參考下這個網站http://eoffice.im.fju.e.tw/phpbb/viewtopic.php?p=28685
1.先啟動項目上的h2/bin下的h2.bat或h2w.bat文件,把h2資料庫啟動起來
2.SSH2框架和h2資料庫整合方法
2.1先在資料庫下創建 schema目錄(相當於一個資料庫實例)
create schema fdrkftcode
目的是解決這種異常 org.h2.jdbc.JdbcSQLException: Schema "fdrkftcode" not found; ...
2.2在schema目錄下創建表,如創建系統用戶表admin
create table fdrkftcode.admin(
id int primary key,
adminname varchar(50),
username varchar(50),
userpwd varchar(50),
adminrights varchar(50),
createdate datetime,
usedtimes int,
lastlogin datetime,
curstatus int,
remark varchar(200)
)
3.為了使用hibernate操作h2,需要作如下設置,在sql編輯窗口輸入下面這些腳本
對於實體pojo對象的映射,我是用的annotation,關鍵是id主鍵的映射,如下:
@Column(name = "ID", nullable = false)
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ABC_ID_SEQ")
@SequenceGenerator(name = "ABC_ID_SEQ", sequenceName = "ABC_ID_SEQ")
protected Long id;
注意這里的GeneratedValue和SequenceGenerator的使用,這屬於JPA規范,全部來自javax.persisten
4.配置applicationContext.xml文件,主要有三個地方要注意:
4.1修改連接資料庫的JDBC驅動 driverClass的值為org.h2.Driver
4.2修改連接資料庫所用的URL字元串 jdbcUrl的值為jdbc:h2:tcp://localhost/~/FDRKFTCODE;MODE=MySQL;AUTO_SERVER=TRUE
4.3修改Hibernate的資料庫方言hibernate.dialect為org.hibernate.dialect.H2Dialect
5.h2資料庫一些常用操作
5.1幫助命令help
5.2表中某欄位重命名 ALTER TABLE fdrkftcode.admin ALTER COLUMN usepwd rename to userpwd
5.3表中新增欄位 ALTER TABLE fdrkftcode.admin ADD IF NOT EXISTS abc varchar(50)
5.4表中刪除欄位 ALTER TABLE fdrkftcode.admin DROP COLUMN IF EXISTS abc
5.5查找表中記錄 SELECT * from fdrkftcode.admin
5.6往表中插入記錄 INSERT INTO fdrkftcode.admin VALUES (1,'管理員','admin','admin','10000000000000000000','2013-05-1 00:12:34',3,'2013-05-1 15:32:57',1,'超過級管理員')
5.7修改表中某記錄 UPDATE fdrkftcode.admin SET fdrkftcode.admin.adminname='超級管理員' where fdrkftcode.admin.id=1
5.8刪除表中某記錄 DELETE FROM fdrkftcode.admin WHERE fdrkftcode.admin.id=1
6.下面是我項目的applicationContext.xml配置方法,大家可以參考下
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 定義使用C3P0連接池的數據源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 指定連接資料庫的JDBC驅動 -->
<property name="driverClass">
<value>org.h2.Driver</value>
</property>
<!-- 連接資料庫所用的URL -->
<property name="jdbcUrl">
<value>jdbc:h2:tcp://localhost/~/FDRKFTCODE;MODE=MySQL;AUTO_SERVER=TRUE</value>
</property>
<!-- 連接資料庫的用戶名 -->
<property name="user">
<value>sa</value>
</property>
<!-- 連接資料庫的密碼 -->
<property name="password">
<value></value>
</property>
<!-- 設置資料庫連接池的最大連接數 -->
<property name="maxPoolSize">
<value>50</value>
</property>
<!-- 設置資料庫連接池的最小連接數 -->
<property name="minPoolSize">
<value>5</value>
</property>
<!-- 設置資料庫連接池的初始化連接數 -->
<property name="initialPoolSize">
<value>5</value>
</property>
<!-- 設置資料庫連接池的連接的最大空閑時間,單位為秒 -->
<property name="maxIdleTime">
<value>20</value>
</property>
</bean>
<!-- 定義Hibernate的SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 依賴注入上面定義的數據源dataSource -->
<property name="dataSource" ref="dataSource"/>
<!-- 注冊Hibernate的ORM映射文件 -->
<property name="mappingResources">
<list>
<value>com/sungoal/ORM/Admin.hbm.xml</value>
</list>
</property>
<!-- 設置Hibernate的相關屬性 -->
<property name="hibernateProperties">
<props>
<!-- 設置Hibernate的資料庫方言 -->
<prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
<!-- 設置Hibernate是否在控制台輸出SQL語句,開發調試階段通常設為true -->
<prop key="show_sql">true</prop>
<!-- 設置Hibernate一個提交批次中的最大SQL語句數 -->
<prop key="hibernate.jdbc.batch_size">50</prop>
</props>
</property>
</bean>
<!--定義Hibernate的事務管理器HibernateTransactionManager -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!-- 依賴注入上面定義的sessionFactory -->
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 裝配通用資料庫訪問類BaseDAOImpl -->
<bean id="" class="com.sungoal.DAO.BaseDAOImpl">
<!-- 依賴注入上面定義的sessionFactory -->
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 部署系統用戶管理業務控制器AdminAction -->
<bean id="adminAction" class="com.sungoal.struts.action.AdminAction" scope="prototype">
<property name="" ref=""/>
</bean>
</beans>
⑺ hibernate與資料庫連接的幾種方式
三種連接都是以連接MySQl為例。
<!-- JDBC驅動程序 -->
<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK</property> <!-- 資料庫用戶名 -->
<property name="connection.username">root</property> <!-- 資料庫密碼 -->
<property name="connection.password">8888</property>
上面的一段配置,在c3p0和dbcp中,都是必需的,因為hibernate會根據上述的配置來生成connections,再交給c3p0或dbcp管理.但是,proxool則不能,雖然說服文檔上說proxool也可以和hibernate結合,但我按照官方文檔上的說明怎麼配也出錯,而且,到了sun和hibernat有的官方網站上問了幾天,都沒有一個人回復。後來我只能讓proxool自身來生成連接,這在下面再講。
1 C3P0
只需在hibernate.cfg.xml中加入
<property name="c3p0.min_size">5</property>
<property name="c3p0.max_size">30</property>
<property name="c3p0.time_out">1800</property>
<property name="c3p0.max_statement">50</property>
還有在classespath中加入c3p0-0.8.4.5.jar
2 dbcp
在hibernate.cfg.xml中加入
<property name="dbcp.maxActive">100</property>
<property name="dbcp.whenExhaustedAction">1</property>
<property name="dbcp.maxWait">60000</property>
<property name="dbcp.maxIdle">10</property>
<property name="dbcp.ps.maxActive">100</property>
<property name="dbcp.ps.whenExhaustedAction">1</property>
<property name="dbcp.ps.maxWait">60000</property>
<property name="dbcp.ps.maxIdle">10</property>
還有在classespath中加入commons-pool-1.2.jar 和commons-dbcp-1.2.1.jar.
3 proxool
在hibernate.cfg.xml中加入
<property name="proxool.pool_alias">pool1</property>
<property name="proxool.xml">ProxoolConf.xml</property>
<property name="connection.provider_class">net.sf.hibernate.connection.ProxoolConnectionProvider</property>
然後,在和hibernate.cfg.xml同一個目錄下,加一個ProxoolConf.xml文件,內容為
<?xml version="1.0" encoding="utf-8"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<alias>pool1</alias>
<!--proxool只能管理由自己產生的連接-->
<driver-url>jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK</driver-url>
<driver-class>org.gjt.mm.mysql.Driver</driver-class>
<driver-properties>
<property name="user" value="root"/>
<property name="password" value="8888"/>
</driver-properties>
<!-- proxool自動偵察各個連接狀態的時間間隔(毫秒),偵察到空閑的連接就馬上回收,超時的銷毀-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!-- 指因未有空閑連接可以分配而在隊列中等候的最大請求數,超過這個請求數的用戶連接就不會被接受-->
<maximum-new-connections>20</maximum-new-connections>
<!-- 最少保持的空閑連接數-->
<prototype-count>5</prototype-count>
<!-- 允許最大連接數,超過了這個連接,再有請求時,就排在隊列中等候,最大的等待請求數由maximum-new-connections決定-->
<maximum-connection-count>100</maximum-connection-count>
<!-- 最小連接數-->
<minimum-connection-count>10</minimum-connection-count>
</proxool>
</something-else-entirely>
並在classespath中加入proxool-0.8.3.jar
⑻ hibernate配置文件如何連接sql server 2008資料庫
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=Test</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">123</property>
<property name="c3p0.min_size">5</property>
<property name="c3p0.max_size">20</property>
<property name="c3p0.timeout">2000</property>
<property name="c3p0.max_statements">50</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="test/test.hbm.xml"/>
</session-factory>
</hibernate-configuration>
其中連接池部分如果你不需要,可以去掉。如果需要,則需要導入c3p0的jar包
⑼ hibernate的配置和資料庫的對應問題.
不知道什麼意思。但是hibernate好像並不是你這樣的吧。
hibernate配置文件和資料庫表你只內需要生成其中一種就容可以了。因為hibernate已經可以幫我們通過hibernate配置文件生成資料庫表。或者是根據資料庫反向生成hibernate配置文件了。
String設置為int不知道可不可以,因為有些時候會幫我們做類型轉換。但是你既要在資料庫做表又要弄配置文件是不必要的。
⑽ hibernate怎麼連接資料庫
1 C3P0
只需在hibernate.cfg.xml中加入
<property name="c3p0.min_size">5</property>
<property name="c3p0.max_size">30</property>
<property name="c3p0.time_out">1800</property>
<property name="c3p0.max_statement">50</property>
還有在classespath中加入c3p0-0.8.4.5.jar
2 dbcp
在hibernate.cfg.xml中加入
<property name="dbcp.maxActive">100</property>
<property name="dbcp.whenExhaustedAction">1</property>
<property name="dbcp.maxWait">60000</property>
<property name="dbcp.maxIdle">10</property>
<property name="dbcp.ps.maxActive">100</property>
<property name="dbcp.ps.whenExhaustedAction">1</property>
<property name="dbcp.ps.maxWait">60000</property>
<property name="dbcp.ps.maxIdle">10</property>
還有在classespath中加入commons-pool-1.2.jar 和commons-dbcp-1.2.1.jar.