当前位置:首页 » 数据仓库 » 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测试,测试连接是否通过(变绿)。
如果通李毕过则说棚扰信明数链轮据库连接成功,如果是红色则连接失败