sakai安装配置3

5. 数据库配置

5.1. 从早期版本移植

从 2.2.0 到 2.2.1 , sakai 提供了 mysql 和 oracle 的转换脚本,保存在以下目录 reference/docs/updating ,从以下网址也可以获得:

MySQL:

https://source.sakaiproject.org/svn/reference/tags/sakai_2-2-1/docs/conversion/sakai_2_2_0-2_2_1_mysql_conversion.sql

Oracle:

https://source.sakaiproject.org/svn/reference/tags/sakai_2-2-1/docs/conversion/sakai_2_2_0-2_2_1_oracle_conversion.sql

在该目录下,你还可以发现其他版本的转换脚本。另外,需要注意的是,如果你是从更早期的版本升级到当前版本,则需要依次执行相应脚本,比如,如果你要从 2.1.2 升级到 2.2.1 ,则需要先执行 2.1.2 到 2.2.0 的转换脚本,然后再执行 2.2.0 到 2.2.1 的转换脚本。

5.2. 驱动配置

Sakai 支持的产品级的数据库包括 MySQL 4.1.12+ (注意, MySQL 5.0 还未经过充分测试)和 oracle9i+ 。 JDBC 驱动的版本也很重要, 对于 mysql 来说,需要用 MySQL a 3.1.12+ 连接器,对于 oracle 来说必须用 10g 的驱动,即使数据库版本是 9i ,这些驱动应该放到 $CATALINA_HOME/common/lib 目录下,相应的驱动可以从以下网址获得:

MySQL:

http://dev.mysql.com/downloads/connector/j/3.1.html

Oracle:

http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

5.3. 创建数据库和用户

在使用 sakai 之前,必须先创建一个 sakai 数据库,并建立相应的特权用户,下面以 mysql 为例说明操作的过程:

C:\sakai\reference\sql\legacy\mysql\>

mysql -u root -p

Enter password: ******

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 51 to server version: 4.1.5-gamma-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database sakai default character set utf8;

Query OK, 1 row affected (0.00 sec)

mysql> grant all on sakai.* to sakaiuser@'localhost' identified by 'sakaipassword';

Query OK, 0 rows affected (0.00 sec

mysql> grant all on sakai.* to sakaiuser@'127.0.0.1' identified by 'sakaipassword';

Query OK, 0 rows affected (0.00 sec)

mysql> quit

UTF-8 字符集

创建数据库时,必须确保使用 UTF-8 字符集,就像 tomcat 也必须配置成 UTF-8 字符集一样。如果你不确定你的数据库的当前配置,你可以通过 sql 来查询,下面是以 oralce 为例,说明如何确定你的数据库使用的字符集:

SQL> select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';

VALUE

--------------------------------------------------------------------------------

AL32UTF8

5.4. Database 属性

数据库的属性也是在 sakai.properties 文件中进行配置,以下分别是 mysql 和 oracle 数据库的配置信息,你所需要的是根据自己的具体设置来进行本地化的修改:

MySQL:

hibernate.dialect=org.hibernate.dialect.MySQLDialect

vendor@org.sakaiproject.db.api.SqlService=mysql

driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver

url@javax.sql.BaseDataSource=jdbc:mysql://SERVER:3306/DB?useUnicode=true&characterEncoding=UTF-8

username@javax.sql.BaseDataSource=USER

password@javax.sql.BaseDataSource=PASSWORD

validationQuery@javax.sql.BaseDataSource=select 1 from DUAL

defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED

Oracle:

hibernate.dialect=org.hibernate.dialect.Oracle9Dialect

vendor@org.sakaiproject.db.api.SqlService=oracle

driverClassName@javax.sql.BaseDataSource=oracle.jdbc.driver.OracleDriver

url@javax.sql.BaseDataSource=jdbc:oracle:thin:@SERVER:1521:DB

username@javax.sql.BaseDataSource=USER

password@javax.sql.BaseDataSource=PASSWORD

validationQuery@javax.sql.BaseDataSource=select 1 from DUAL

defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED

Oracle 的性能

如果采用和 mysql 或者 HSQL 类似的配置, oracle 可能会出现一些性能方面的问题,因此 sakai 强烈建议采用 oracle 数据库时采用以下配置来避免可能出现的性能问题:

# For improved Oracle performance (from the University of Michigan)

validationQuery@javax.sql.BaseDataSource=

defaultTransactionIsolationString@javax.sql.BaseDataSource=

testOnBorrow@javax.sql.BaseDataSource=false

oracle 将自动配置前两项的值。

一旦你修改了数据库的配置,你只需重起 tomcat 即可生效,可以查看启动日志,看是否有数据库连接方面的错误。

Oracle and Tests&Quizzes

如果你使用的是 oracle 数据库,你还必须检查 SAM_MEDIA_T 表中的 MEDIA 字段, hibernate 能够为每个字段选择正确的数据类型,但是在这个字段上,对于 oracle 经常会出现错误。对于不同数据库,正确的数据类型应该是如下:

HSQL:

varbinary

MySQL:

longblob

Oracle:

blob

如果你需要在你的数据库中改变这个字段的数据类型,你还必须重建该表的主键,以下是一个例子:

SQL> alter table SAM_MEDIA_T modify MEDIA BLOB;

Table altered.

SQL> select constraint_name from user_constraints where table_name='SAM_MEDIA_T'

and CONSTRAINT_TYPE='P';

CONSTRAINT_NAME

------------------------------

SYS_C0064435

SQL> alter table sam_media_t drop constraint SYS_C0064435;

Table altered.

SQL> alter table SAM_MEDIA_T add constraint SYS_C0064435 primary key (MEDIAID);

Table altered.

SQL> desc SAM_MEDIA_T;

[table with BLOB type]

SQL> select constraint_name from user_constraints where table_name='SAM_MEDIA_T'

and CONSTRAINT_TYPE='P';

CONSTRAINT_NAME

------------------------------

SYS_C0064435

SQL> commit;

Commit complete.

多角色体系 支持管理员、商家、消费者三种角色,权限分级管控: 管理员:负责平台整体配置、用户审核、数据监控等全局操作。 商家:管理店铺信息、发布商品、处理订单、回复评价等。 消费者:浏览商品、加入购物车、下单支付、评价商品等。 实现用户注册(手机号 / 邮箱验证)、登录(支持密码 / 验证码 / 第三方登录)、个人信息管理(头像、收货地址、密码修改)。 权限精细化控制 商家仅能管理自家店铺及商品,消费者仅能查看和购买商品,管理员拥有全平台数据访问权限。 二、商品管理功能 商品信息维护 商家可发布商品:填写名称、分类(如服饰、电子产品)、子类别(如手机、笔记本)、规格(尺寸、颜色、型号)、价格、库存、详情描述(图文)、物流信息(运费、发货地)等。 支持商品上下架、库存调整、信息编辑,系统自动记录商品状态变更日志。 商品分类与搜索 按多级分类展示商品(如 “数码产品→手机→智能手机”),支持自定义分类体系。 提供智能搜索功能:按关键词(名称、品牌)搜索,支持模糊匹配和搜索联想;结合用户浏览历史对搜索结果排序(优先展示高相关度商品)。 商品推荐 基于用户浏览、收藏、购买记录,推荐相似商品(如 “浏览过该商品的用户还买了…”)。 首页展示热门商品(销量 TOP10)、新品上架、限时折扣等推荐列表。 三、订单与交易管理 购物车与下单 消费者可将商品加入购物车,支持修改数量、选择规格、移除商品,系统自动计算总价(含运费、折扣)。 下单流程:确认收货地址→选择支付方式(在线支付、货到付款)→提交订单→系统生成唯一订单号。 订单处理流程 订单状态跟踪:待支付→已支付→商家发货→物流运输→消费者收货→订单完成,各状态变更实时通知用户。 商家端功能:查看新订单提醒、确认发货(填写物流单号)、处理退款申请(需审核理由)。 消费者端功能:查看订单详情、追踪物流、申请退款 / 退货、确认收货。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值