package zjn.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import zjn.model.Movie;
import zjn.util.DBUtil;
import zjn.util.StringUtil;
public class MovieDao {
public final static String TABLE_NAME = "movies";
public final static String ID_COLUMN = "id";
public final static String NAME_COLUMN = "name";
public final static String PUBLISHED_YEAR_COLUMN = "published_year";
public final static String TYPE_COLUMN = "type";
public static void insertMovie(Movie movie){
}
public static void insertMovies(List<Movie> movies){
Connection conn = DBUtil.getConnection();
PreparedStatement ps = null;
String sql = "insert into "
+ TABLE_NAME + " ( "
+ ID_COLUMN + ", "
+ NAME_COLUMN + ", "
+ TYPE_COLUMN
+ ") values (?, ?, ?)";
try {
conn.setAutoCommit(false);
ps = conn.prepareStatement(sql);
for (Movie movie : movies) {
ps.setInt(1, movie.getId());
ps.setString(2, movie.getName());
ps.setString(3, StringUtil.connectString(movie.getType(), ", "));
//ps.setString(4, movie.getType().get(0));
ps.addBatch();
}
ps.executeBatch();
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static Movie getMovieById(int movieID){
Connection conn = DBUtil.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
Movie movie = null;
String sql = "SELECT * FROM " + TABLE_NAME + " WHERE " + ID_COLUMN + " = "+movieID+" ";
try {
conn.setAutoCommit(false);
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
movie = constructMovieFromResultSet(rs);
}
return movie;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static Movie constructMovieFromResultSet(ResultSet rs){
try {
Movie movie = new Movie();
movie.setId(rs.getInt(ID_COLUMN));
movie.setName(rs.getString(NAME_COLUMN));
String type = rs.getString(TYPE_COLUMN);
if(type != null){
movie.setType(Arrays.asList(type.split(", ")));
}
return movie;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static List<Movie> getMovies(Collection<Integer> movieIDs){
List<Movie> movies = new ArrayList<Movie>();
String movieIDString = StringUtil.connectString(movieIDs);
String sql = "SELECT * FROM " + TABLE_NAME + " WHERE " + ID_COLUMN + " IN ( " + movieIDString + " )";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
//conn = DBUtil.getConnectionFromDataSource();
conn = DBUtil.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
// conn = DBUtil.getConnection();
// pstmt = conn.prepareStatement(sql);
// rs = pstmt.executeQuery();
while (rs.next()) {
Movie movie = constructMovieFromResultSet(rs);
if(movie != null){
movies.add(movie);
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return movies;
}
public static Map<String, Movie> getMovieMap(Collection<String> movieIDs){
Map<String, Movie> movies = new HashMap<String, Movie>();
String movieIDString = StringUtil.connectString(movieIDs, ", ");
String sql = "SELECT * FROM " + TABLE_NAME + " WHERE " + ID_COLUMN + " IN ( " + movieIDString + " )";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnectionFromDataSource();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
// conn = DBUtil.getConnection();
// pstmt = conn.prepareStatement(sql);
// rs = pstmt.executeQuery();
while (rs.next()) {
Movie movie = constructMovieFromResultSet(rs);
if(movie != null){
movies.put(String.valueOf(movie.getId()), movie);
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return movies;
}
public static List<Integer> getAllMoviesId(){
List<Integer> ids=new ArrayList<Integer>();
String sql = "SELECT "+ ID_COLUMN +" FROM " + TABLE_NAME;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
conn = DBUtil.getConnection();
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
int aa=rs.getInt(ID_COLUMN);
ids.add(aa);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ids;
}
public static List<Movie> getAllMovies(){
List<Movie> movies = new ArrayList<Movie>();
String sql = "SELECT * FROM " + TABLE_NAME;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// conn = DBUtil.getConnectionFromDataSource();
// pstmt = conn.prepareStatement(sql);
// rs = pstmt.executeQuery();
conn = DBUtil.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
Movie movie = constructMovieFromResultSet(rs);
if(movie != null){
movies.add(movie);
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return movies;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
对电影进行个性化推荐,基于Mahout框架实现的,使用的协同过滤算法+源代码+文档说明
共117个文件
class:39个
java:38个
png:15个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 37 浏览量
2024-04-18
16:11:59
上传
评论
收藏 277KB ZIP 举报
温馨提示
- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
对电影进行个性化推荐,基于Mahout框架实现的,使用的协同过滤算法+源代码+文档说明
(117个子文件)
style.css.bak 2KB
MovieDao.class 7KB
DataTest.class 7KB
CountScore.class 7KB
UserDao.class 6KB
RatingDao.class 6KB
UserBasedRecommender.class 5KB
PrefileDao.class 4KB
MovieSimilarityDao.class 4KB
UserRegisterServlet.class 4KB
GenderRescorer.class 4KB
Movie.class 3KB
ItemBasedRecommender.class 3KB
ItemBasedRecommender$EmbededItemBasedRecommender.class 3KB
SimilarItemsRecommender.class 3KB
MovieRatingServlet.class 3KB
RecommendMovieList.class 3KB
MovieRecommenderServlet.class 3KB
StringUtilTest.class 3KB
UserLoginServlet.class 3KB
DBUtil.class 3KB
SlopOneRecommender.class 3KB
SimilarItemsRecommenderServlet.class 3KB
RandomData.class 2KB
AnonymousRecommenderServlet.class 2KB
StringUtil.class 2KB
MovieList.class 2KB
GenderItemSimilarity.class 2KB
MovieServlet.class 2KB
User.class 2KB
MovieShowServlet.class 2KB
CharacterFilter.class 2KB
UserBaseDRecommenderTest.class 2KB
AnonymousRecommender.class 2KB
RecommendMovie.class 2KB
Prefile.class 1KB
MovieDataModel.class 1KB
MovieSimilarity.class 1KB
FactoryBean.class 998B
Rating.class 853B
.classpath 639B
org.eclipse.wst.common.component 533B
org.eclipse.wst.jsdt.ui.superType.container 49B
jquery-ui-1.8.18.custom.css 33KB
demos.css 14KB
style.css 2KB
loading.gif 1KB
dashed.gif 43B
index.html 16KB
MovieDao.java 6KB
CountScore.java 6KB
DataTest.java 5KB
UserDao.java 5KB
RatingDao.java 4KB
ItemBasedRecommender.java 4KB
UserBasedRecommender.java 3KB
GenderRescorer.java 3KB
PrefileDao.java 3KB
DBUtil.java 3KB
MovieSimilarityDao.java 3KB
UserRegisterServlet.java 3KB
SimilarItemsRecommender.java 2KB
MovieRatingServlet.java 2KB
SlopOneRecommender.java 2KB
UserLoginServlet.java 2KB
RandomData.java 2KB
MovieRecommenderServlet.java 2KB
SimilarItemsRecommenderServlet.java 2KB
Movie.java 2KB
GenderItemSimilarity.java 2KB
AnonymousRecommenderServlet.java 2KB
AnonymousRecommender.java 1KB
MovieShowServlet.java 1KB
RecommendMovieList.java 1KB
MovieServlet.java 1KB
CharacterFilter.java 1KB
StringUtilTest.java 1KB
User.java 1KB
StringUtil.java 1003B
RecommendMovie.java 897B
MovieList.java 858B
FactoryBean.java 838B
MovieDataModel.java 810B
MovieSimilarity.java 712B
UserBaseDRecommenderTest.java 653B
Prefile.java 584B
Rating.java 462B
butten.jpg 1KB
jquery-ui-1.8.18.custom.min.js 205KB
jquery-1.7.1.min.js 92KB
.jsdtscope 481B
MANIFEST.MF 36B
.mymetadata 296B
org.eclipse.wst.jsdt.ui.superType.name 6B
ui-bg_fine-grain_68_b83400_60x60.png 8KB
ui-bg_fine-grain_65_654b24_60x60.png 7KB
ui-icons_3572ac_256x240.png 5KB
ui-icons_b83400_256x240.png 5KB
ui-bg_fine-grain_15_f7f3de_60x60.png 5KB
ui-bg_fine-grain_10_eceadf_60x60.png 4KB
共 117 条
- 1
- 2
资源评论
机器学习的喵
- 粉丝: 518
- 资源: 1269
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功