當前位置:首頁 » 數據倉庫 » hibernate測試資料庫連接
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

hibernate測試資料庫連接

發布時間: 2023-06-01 14:14:06

A. 如何測試hibernate是否連接上資料庫

寫一個測試的類看看,例如關鍵部分可以這么寫:知昌

privatestaticSessionFactorysf=null;
try{
搭仔扒Configurationcfg=newConfiguration().configure();
sf=cfg.buildSessionFactory();
Sessionsession=sf.openSession();
System.out.println("能打開session,那就沒錯了"戚做);
returnsession;
}catch(HibernateExceptione){
e.printStackTrace();
}

B. hibernate連接不上資料庫

error while trying to login to database
應該還有下文吧?關鍵的一句話你沒給出來

我碰到過以下幾種情況:
(1)是不是。。。。DRIVER什麼的,
如果是這很有可能由於Eclipse--Window--Preferences--MyEclipse--Database Explorer--Drivers下面沒有加驅動
(2)[Microsoft][sqlServer 2000 Driver for JDBC]Error establishing socket.
如果是:你可以試著配置個數據源,而不用4類驅動
配置方法如下:
「控制面板」->「管理工具」->「數據源(ODBC)」
點擊打開後 看見「用戶DSN」 "系統DSN"等等選項卡
選擇「用戶DSN」或者「系統DSN」
右邊有「添加」按鈕,點擊
在新界面中找到「SQL SERVER」 點「完成」
彈出新界面,其中「名稱」欄,寫個名字,並記住(一會兒要用到),「服務塵談器」欄寫一個「.」
點擊進入「下一步」選擇第二項「輸入登錄ID和密碼」在下面填寫用戶名和密碼
點擊進入「下一步」(如果卡住了,說明你的用戶名密碼錯誤,或者SQL安裝不正確)
在新窗口最上面 選擇「更改默認資料庫」,選擇你要連接的資料庫
點擊「下一步」,點擊「完成」。
在新窗口點擊「測試數據源...」 如果成功,會提示成功字樣。
之後確認並退出以上界面。
回到代碼或者.properties配置文件
將原來的driver改成: 'sun.jdbc.odbc.JdbcOdbcDriver'
將原先的url改成: 'jdbc:odbc:數據源名'
用戶名密碼不變,其他代碼不轎拿變,再試
(3)Unable to create Connection.Check your URL.
那不用問了,你的URL寫錯了,看看埠號,或者IP什麼的
(4)其他,如果能把派帆碰關鍵錯誤寫出來能幫你更多。

僅供參考

C. 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>

D. 如何使用hibernate訪問資料庫

首先,我們把hibernate最基本的資料庫連接,使用mysql。 見一個java工程,見一個包名為book, 在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目錄下
溫馨提示:下圖僅供欣賞,不作為教學。

E. 怎樣在hibernate中使用資料庫連接池

經過一個周末的折騰,終於找到了hibernate中使用資料庫連接池的解決方案。
從網上google了一下,發現大致有三種可以實施的解決方案:
1、使用hibernate自帶的連接池;
2、使用c3po包的連接池功能;
3、使用Proxool包的連接池功能;

第一種方案,就是在myeclipse產生的hibernate.cfg.xml中添加一個屬性:
<property >20</property>
第二種方案是:
<property >test</property>
<property >com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
<property >jdbc:microsoft:sqlserver://localhost:1433;databasename=test</property>
<property >sa</property>
<property >123</property>
<property >2</property>
<property >10</property>
<property >1800</property>
<property >4</property>
<property >1</property>
<property >36000</property>
<property >2</property>
<property >10</property>
<property >1200</property>
<property >30</property>
<property >2</property>
<property >org.hibernate.connection.C3P0ConnectionProvider</property>

第三中方案是Proxool:
在hibernate.cfg.xml中添加:
<!-- Proxool Database connection settings -->

<property >org.hibernate.connection.ProxoolConnectionProvider</property>
<property >DBPool</property>
<property >Proxool.xml</property>

<property >org.hibernate.dialect.SQLServerDialect</property>

<property >false</property>

然後再添加一個Proxool.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>DBPool</alias>
<driver-url>jdbc:microsoft:sqlserver://localhost:1433;databasename=test</driver-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<driver-properties>
<property value="sa"/>
<property value="123"/>
</driver-properties>
<maximum-connection-count>10</maximum-connection-count>
</proxool>
</something-else-entirely>

F. hibernate資料庫連接問題

G. 求救,hibernate連接資料庫

Hibernate連接資料庫
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
</property>
<property name="url"
value="jdbc:sqlserver://localhost:1433;databaseName=資料庫名">
</property>
<property name="username" value="sa"></property> 資料庫用戶名
<property name="password" value="123"></property> 資料庫密碼
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
</bean>

H. hibernate 怎麼知道資料庫連接成功不成功

你可以再寫一個測試類,進行junit測試,測試連接是否通過(變綠)。
如果通李畢過則說棚擾信明數鏈輪據庫連接成功,如果是紅色則連接失敗