jdbc datasource 怎么设置schema

jdbc datasource 怎么设置schema,第1张

JDBC -最基本的连接数据库的方式, 每次对数据库打交道的时候 ,连接数据库是需要实例下你实现连接数据库的方法或者类。 JNDI DataSource 英文全称是:Java Naming and Directory Interface java 命明接口,当服务启动时 事先把连接数据库的已经

大家可以参考下这个网站http://eoffice.im.fju.edu.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/~/FDRKFTCODEMODE=MySQLAUTO_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/~/FDRKFTCODEMODE=MySQLAUTO_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="dao" 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="dao" ref="dao"/>

</bean>

</beans>

配置Schema Workbench

1.准备

Windows XP

jdk-1_5_0_14

workbench-2.3.2.9247

SQLServer2000+SP4

mysql-6.0.0

Oracle10.2.0.1.0

SQLServer2000 Driver for JDBC Service Pack 4--->msbase.jarmssqlserver.jarmsutil.jar

MySQL Driver for JDBC--->mysql-connector-java-5.1.2-beta-bin.jar

Oracle Driver for JDBC--->ojdbc14.jar

2.解压缩workbench-2.3.2.9247.zip

3.将数据库Driver for JDBC(jar包)拷贝进\lib

4.编辑workbench.bat

找到25行--->rem put mondrian.properties on the classpath for it to be picked up

添加如下内容

set CP=%CP%./mondrian.properties

找到34行--->rem add all needed JDBC drivers to the classpath

添加如下内容,目的是让程序能够找到数据库驱动.

set CP=%CP%lib/mysql-connector-java-5.1.2-beta-bin.jar

set CP=%CP%lib/msutil.jar

set CP=%CP%lib/mssqlserver.jar

set CP=%CP%lib/msbase.jar

set CP=%CP%lib/ojdbc14.jar

5.运行workbench.bat

Tools--->Prefereces或者直接点击Prefereces按钮,在d出的对话框处填写JDBC连接信息.

以下为配置示例

[MySQL6]

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/foodmart?user=root&password=root

不填

不填

[MySQL6]

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/foodmart

root

root

[SQLServer2000]

com.microsoft.jdbc.sqlserver.SQLServerDriver

jdbc:microsoft:sqlserver://localhost:1433databasename=Northwind

sa

12345678

[Oracle10g]

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@localhost:1521:ora10g

sys as sysdba

ora456

[Oracle10g]

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:sys as sysdba/ora456@localhost:1521:ora10g

不填

不填

6.测试数据库连接

File--->New--->Schema或直接点击New按钮--->Schema

注意界面左下角的提示信息

MySQL6,SQLServer2000成功

Oracle10g 报错--->ORA-01424: 转义符之后字符缺失或非法

7.总结

SQLServer2000如果没有打补丁会报错--->[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

打开SQL查询分析器--->帮助--->关于

查看sql server的详细版本号

如果是 8.00.194 就是还没打补丁

8.00.760 就是SP3

8.00.2039 就是SP4

--->没打补丁

--->sp4

打完补丁后使用最新的SQLServer2000 Driver for JDBC Service Pack 4

Oracle10g的报错,试着用了'删除oracle10g垃圾表'的方法仍旧没有解决.


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

原文地址: https://outofmemory.cn/tougao/11232097.html

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

发表评论

登录后才能评论

评论列表(0条)

保存