Mahout之——数据源为MySQL数据库

转载请注明出处:https://blog.csdn.net/l1028386804/article/details/82795264

1、Tomcat基于JNDI配置数据库

在Tomcat的server.xml中增加如下配置

<Resource
	name="jdbc/taste"
	auth="Container"
	type="javax.sql.DataSource"
	username="root"
	password="root"
	driverClassName="com.mysql.jdbc.Driver"
	url="jdbc:mysql://localhost:/mydatabase"/>

默认的名字(jdbc/taste)可以根据环境需要更换.

2、利用程序配置DataSource

//基于MySQL数据源的推荐程序
@Test
public void testJDBCDataModel() throws TasteException {
	//配置MysqlDataSource
	MysqlDataSource dataSource = new MysqlDataSource();
	dataSource.setServerName("my_server_name");
	dataSource.setUrl("my_database_url");
	dataSource.setUser("root");
	dataSource.setPassword("root");
	dataSource.setDatabaseName("mydatabase");
	//构建推荐数据模型
	JDBCDataModel jdbcDataModel = new MySQLJDBCDataModel(dataSource, "my_prefer_table", "my_user_column", "my_item_column", "my_pref_value_column", "my_timestamp_column");
	//推荐
	Recommender recommender = new SlopeOneRecommender(jdbcDataModel);
	List<RecommendedItem> itemList = recommender.recommend(1L, 200);
	//打印结果
	itemList.stream().forEach(System.out::println);
}

3、对于数据库表设计的几点说明

  • 用户ID列和物品ID列必须非空,同时必须被索引;
  • 主键必须为用户ID和物品ID的组合;
  • 列的数据类型根据Java中对应的long和float类型选择,在MySQL中,应为bigint和float
  • 注意调节缓冲区和查询高速缓存(query cache)
  • 当使用MySQL的Connector/J驱动时,将驱动的参数(cachePreparedStatements)设置为true

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰 河

可以吃鸡腿么?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值