代码MVC设计模式,前台数据发送到servlet类里面进行一系列的数据操作。
字段名 | 类型 | 约束 | 其他 |
userId | int | foreign key | primary key联合主键 |
artworkId | int | foreign key | |
collectTime | date | ||
collect_or_not | int | check(0,1) | 默认为0,取值范围0,1;0表示用户没有收藏;1表示该用户已经收藏此信息 |
package com.dao;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.concurrent.Callable;
import javax.sound.midi.VoiceStatus;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
//实现数据连接和资源关闭操作
public class BaseDAO {
public static Connection getConnection(){
try {
System.out.println("连接数据库线程启动");
return new BaseCallableGetConnection().call();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
return null;
}
}
//资源关闭操作
public static void close(java.sql.Connection con, PreparedStatement preparedStatement, ResultSet rs){
System.out.println("资源关闭线程启动");
Thread threadClose = new BaseThreadClose(con, preparedStatement, rs);
}
}
//连接数据库线程类
class BaseCallableGetConnection implements Callable<Connection>{
private static final String driver = "com.mysql.jdbc.Driver";
private static final String url = "jdbc:mysql://127.0.0.1:3306/famousmall";
private static final String user = "root";
private static final String password = "123456";
@Override
public Connection call() throws Exception {
Class.forName(driver);
Connection connection = (Connection) DriverManager.getConnection(url, user, password);
return connection;
}
}
//关闭数据库资源线程类
class BaseThreadClose extends Thread{
private Connection connection;
private PreparedStatement pstmt;
private ResultSet resultSet;
public BaseThreadClose(java.sql.Connection con, PreparedStatement pstmt, ResultSet resultSet){//构造函数
this.connection = (Connection) con;
this.pstmt = pstmt;
this.resultSet = resultSet;
}
@Override
public voi