4.3

个人作业dao类
• 所花时间:3
• 代码行数:188
• 博客容量:1
• 代码如下:

package com.example.undertaking.TaskPackage;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class DayDAO {
    private final static String driver = "com.mysql.jdbc.Driver";// MySql驱动
    private static final String url="jdbc:mysql://192.168.250.9:3306/party?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true";
    private static final String username="root";
    private static final String pwd="1234";
    private static Connection conn=null;
    public interface DayDaoInsertListener{
        public void OperationCompletely(boolean result);
    }
    public static void insert(DayTask dayTask, DayDAO.DayDaoInsertListener dayDaoInsertListener){
        new Thread(new Runnable() {
            @Override
            public void run() {
                String sql="insert into day_task(_id,week_id,today,studyInfo,dayOfWeek,startTime,EndTime,minutes) values(?,?,?,?,?,?,?,?)";
                try {
                    Class.forName(driver);
                    conn= DriverManager.getConnection(url,username,pwd);
                    PreparedStatement ps=conn.prepareStatement(sql);
                    ps.setString(1,dayTask.stuID);
                    ps.setString(2,dayTask.weekID);
                    ps.setString(3,dayTask.today_);
                    ps.setString(4,dayTask.studyInfo);
                    ps.setInt(5,dayTask.dayOfWeek);
                    ps.setString(6,dayTask.startTime);
                    ps.setString(7,dayTask.endTime);
                    ps.setInt(8,dayTask.studyMinutes);
                    boolean result=ps.executeUpdate()>0;
                    dayDaoInsertListener.OperationCompletely(result);
                } catch (ClassNotFoundException e) {
                    throw new RuntimeException(e);
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
        }).start();
    }


    public interface DayDaoQueryListener{
        public void OperationCompletely(List<DayTask> ls);
    }
    public static void queryByWeekId(String weekId, DayDaoQueryListener dayDaoQueryListener) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                List<DayTask> dayTaskList = new ArrayList<>();
                String sql = "SELECT * FROM day_task WHERE week_id = ?";
                try {
                    Class.forName(driver);
                    conn = DriverManager.getConnection(url, username, pwd);
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ps.setString(1, weekId);
                    ResultSet rs = ps.executeQuery();
                    while (rs.next()) {
                        DayTask dayTask = new DayTask();
                        dayTask.stuID=(rs.getString("_id"));
                        dayTask.weekID=(rs.getString("week_id"));
                        dayTask.today_=(rs.getString("today"));
                        dayTask.studyInfo=(rs.getString("studyInfo"));
                        dayTask.dayOfWeek=(rs.getInt("dayOfWeek"));
                        dayTask.startTime=(rs.getString("startTime"));
                        dayTask.endTime=(rs.getString("endTime"));
                        dayTask.studyMinutes=(rs.getInt("minutes"));
                        dayTaskList.add(dayTask);
                    }
                    // 关闭资源
                    rs.close();
                    ps.close();
                    conn.close();
                    // 调用回调,将结果传递回去
                    dayDaoQueryListener.OperationCompletely(dayTaskList);
                } catch (ClassNotFoundException | SQLException e) {
                    // 处理异常
                    e.printStackTrace();
                    // 调用回调,将异常传递回去
                    dayDaoQueryListener.OperationCompletely(null);
                }
            }
        }).start();
    }

    public interface DayDaoQueryByIDListener{
        public void OperationCompletely(List<DayTask> ls);
    }
    public static void queryByID(String id, DayDaoQueryByIDListener dayDaoQueryByIDListener) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                List<DayTask> dayTaskList = new ArrayList<>();
                String sql = "SELECT * FROM day_task WHERE _id = ?";
                try {
                    Class.forName(driver);
                    conn = DriverManager.getConnection(url, username, pwd);
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ps.setString(1, id);
                    ResultSet rs = ps.executeQuery();
                    while (rs.next()) {
                        DayTask dayTask = new DayTask();
                        dayTask.stuID=(rs.getString("_id"));
                        dayTask.weekID=(rs.getString("week_id"));
                        dayTask.today_=(rs.getString("today"));
                        dayTask.studyInfo=(rs.getString("studyInfo"));
                        dayTask.dayOfWeek=(rs.getInt("dayOfWeek"));
                        dayTask.startTime=(rs.getString("startTime"));
                        dayTask.endTime=(rs.getString("endTime"));
                        dayTask.studyMinutes=(rs.getInt("minutes"));
                        dayTaskList.add(dayTask);
                    }
                    // 关闭资源
                    rs.close();
                    ps.close();
                    conn.close();
                    // 调用回调,将结果传递回去
                    dayDaoQueryByIDListener.OperationCompletely(dayTaskList);
                } catch (ClassNotFoundException | SQLException e) {
                    // 处理异常
                    e.printStackTrace();
                    // 调用回调,将异常传递回去
                    dayDaoQueryByIDListener.OperationCompletely(null);
                }
            }
        }).start();
    }

    public interface DayDaoGroupBy {
        void OperationCompletely(HashMap<String, Integer> map);
    }

    public static void groupBy(DayDaoGroupBy dayDaoGroupBy) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                HashMap<String, Integer> str = new HashMap<>();
                String sql = "SELECT COUNT(*) AS count, userInfo.`name` " +
                        "FROM day_task " +
                        "JOIN userInfo ON userInfo._id = day_task._id " +
                        "GROUP BY day_task._id;";
                try {
                    Class.forName(driver);
                    conn = DriverManager.getConnection(url, username, pwd);
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ResultSet rs = ps.executeQuery();
                    while (rs.next()) {
                        int count = rs.getInt("count");
                        String name = rs.getString("name");
                        str.put(name, count);
                    }
                    // 关闭资源
                    rs.close();
                    ps.close();
                    conn.close();
                    // 调用回调,将结果传递回去
                    dayDaoGroupBy.OperationCompletely(str);
                } catch (ClassNotFoundException | SQLException e) {
                    // 处理异常
                    e.printStackTrace();
                    // 调用回调,将异常传递回去
                    dayDaoGroupBy.OperationCompletely(null);
                }
            }
        }).start();
    }


    public interface DayDaoQueryByValueListener{
        public void OperationCompletely(List<DayTask> ls);
    }
    public static void queryByValue(String values, DayDaoQueryByValueListener dayDaoQueryByValueListener) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                List<DayTask> dayTaskList = new ArrayList<>();
                String sql = "SELECT * FROM day_task WHERE studyInfo LIKE '%" + values + "%'";

                try {
                    Class.forName(driver);
                    conn = DriverManager.getConnection(url, username, pwd);
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ResultSet rs = ps.executeQuery();
                    while (rs.next()) {
                        DayTask dayTask = new DayTask();
                        dayTask.stuID=(rs.getString("_id"));
                        dayTask.weekID=(rs.getString("week_id"));
                        dayTask.today_=(rs.getString("today"));
                        dayTask.studyInfo=(rs.getString("studyInfo"));
                        dayTask.dayOfWeek=(rs.getInt("dayOfWeek"));
                        dayTask.startTime=(rs.getString("startTime"));
                        dayTask.endTime=(rs.getString("endTime"));
                        dayTask.studyMinutes=(rs.getInt("minutes"));
                        dayTaskList.add(dayTask);
                    }
                    // 关闭资源
                    rs.close();
                    ps.close();
                    conn.close();
                    // 调用回调,将结果传递回去
                    dayDaoQueryByValueListener.OperationCompletely(dayTaskList);
                } catch (ClassNotFoundException | SQLException e) {
                    // 处理异常
                    e.printStackTrace();
                    // 调用回调,将异常传递回去
                    dayDaoQueryByValueListener.OperationCompletely(null);
                }
            }
        }).start();
    }
}

package com.example.undertaking.TaskPackage;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class WeekDAO {
    private final static String driver = "com.mysql.jdbc.Driver";// MySql驱动
    private static final String url="jdbc:mysql://192.168.250.9:3306/party?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true";
    private static final String username="root";
    private static final String pwd="1234";
    private static Connection conn=null;

    public interface WeekDaoInsertListener{
        public void OperationCompletely(boolean result);
    }
    public static void insert(WeekTask weekTask,WeekDaoInsertListener weekDaoInsertListener){
        new Thread(new Runnable() {
            @Override
            public void run() {
                String sql="insert into week_task(week_id,_id,goal,finishRate) values(?,?,?,?)";
                try {
                    Class.forName(driver);
                    conn= DriverManager.getConnection(url,username,pwd);
                    PreparedStatement ps=conn.prepareStatement(sql);
                    ps.setString(1,weekTask.week_id);
                    ps.setString(2,weekTask.stuID);
                    ps.setString(3,weekTask.goal);
                    ps.setString(4,weekTask.finishRate);
                    boolean result=ps.executeUpdate()>0;
                    weekDaoInsertListener.OperationCompletely(result);
                } catch (ClassNotFoundException e) {
                    throw new RuntimeException(e);
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
        }).start();

    }

    public interface WeekDaoRowListener{
        void OperationCompletely(int result);
    }
    public static void getRowCount(String id, WeekDaoRowListener weekDaoRowListener) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                String sql = "SELECT COUNT(*) FROM week_task WHERE _id=?";
                try {
                    Class.forName(driver);
                    conn = DriverManager.getConnection(url, username, pwd);
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ps.setString(1, id);
                    ResultSet rs = ps.executeQuery();
                    int result = 0;
                    if (rs.next()) {
                        result = rs.getInt(1); // 获取查询结果
                    }
                    weekDaoRowListener.OperationCompletely(result); // 将结果传递给回调函数
                } catch (ClassNotFoundException | SQLException e) {
                    throw new RuntimeException(e);
                } finally {
                    try {
                        if (conn != null) {
                            conn.close();
                        }
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }).start();
    }

    public interface WeekQueryByWeekId{
        void OperationCompletely(String finishRate);
    }
    public static void queryByWeekId(String weekId, WeekQueryByWeekId weekQueryByWeekId) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                String sql = "SELECT finishRate FROM week_task WHERE week_id=?";
                try {
                    Class.forName(driver);
                    conn = DriverManager.getConnection(url, username, pwd);
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ps.setString(1, weekId);
                    ResultSet rs = ps.executeQuery();
                    String result=null;
                    if (rs.next()) {
                        result=rs.getString("finishRate");
                    }
                    weekQueryByWeekId.OperationCompletely(result); // 将结果传递给回调函数
                } catch (ClassNotFoundException | SQLException e) {
                    throw new RuntimeException(e);
                } finally {
                    try {
                        if (conn != null) {
                            conn.close();
                        }
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }).start();
    }

    public interface WeekFinishRateUpdate{
        void OperationCompletely(Boolean result);
    }
    public static void finishRateUpdate(String weekID, WeekFinishRateUpdate weekFinishRateUpdate) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                String sql = "UPDATE week_task SET finishRate = finishRate + 0.2 where week_ID=?";
                try {
                    Class.forName(driver);
                    conn = DriverManager.getConnection(url, username, pwd);
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ps.setString(1, weekID);
                    int result = ps.executeUpdate();
                    weekFinishRateUpdate.OperationCompletely(result > 0); // 将结果传递给回调函数
                } catch (ClassNotFoundException | SQLException e) {
                    throw new RuntimeException(e);
                } finally {
                    try {
                        if (conn != null) {
                            conn.close();
                        }
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }).start();
    }

    public interface QueryAll{
        void OperationCompletely(List<WeekTask> result);
    }
    public static void finishQueryAll(String id,QueryAll queryAll) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                String sql = "select * from week_task where _id = ?";
                try {
                    List<WeekTask> ls=new ArrayList<>();
                    Class.forName(driver);
                    conn = DriverManager.getConnection(url, username, pwd);
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ps.setString(1, id);
                    ResultSet rs=ps.executeQuery();
                    while(rs.next()){
                        WeekTask weekTask=new WeekTask();
                        weekTask.stuID=id;
                        weekTask.week_id=rs.getString("week_id");
                        weekTask.goal=rs.getString("goal");
                        weekTask.finishRate=rs.getString("finishRate");
                        ls.add(weekTask);
                    }
                    queryAll.OperationCompletely(ls);
                } catch (ClassNotFoundException | SQLException e) {
                    throw new RuntimeException(e);
                } finally {
                    try {
                        if (conn != null) {
                            conn.close();
                        }
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }).start();
    }

}

package com.example.undertaking.userDB;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserDAO {
    private final static String driver = "com.mysql.jdbc.Driver";// MySql驱动
    private static final String url="jdbc:mysql://192.168.250.9:3306/party?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true";
    private static final String username="root";
    private static final String pwd="1234";
    private static Connection conn=null;
    private static User user=null;
    private static int res=0;

    public interface DatabaseOperationListener {
        void onOperationCompleted(boolean success);
    }

    public static void insert(User user1, DatabaseOperationListener listener) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                String sql = "insert into userinfo(_id,name,password,class,phone,selecto) values(?,?,?,?,?,?)";
                Connection conn = null;
                PreparedStatement ps = null;
                try {
                    Class.forName(driver);
                    conn = DriverManager.getConnection(url, username, pwd);
                    ps = conn.prepareStatement(sql);
                    ps.setString(1, user1.id);
                    ps.setString(2, user1.name);
                    ps.setString(3, user1.password);
                    ps.setString(4, user1.sClass);
                    ps.setString(5, user1.phone);
                    ps.setInt(6, user1.select);
                    int res = ps.executeUpdate();
                    if (listener != null) {
                        listener.onOperationCompleted(res > 0);
                    }
                } catch (ClassNotFoundException | SQLException e) {
                    e.printStackTrace(); // 可以根据实际情况处理异常
                } finally {
                    try {
                        if (ps != null) {
                            ps.close();
                        }
                        if (conn != null) {
                            conn.close();
                        }
                    } catch (SQLException e) {
                        e.printStackTrace(); // 可以根据实际情况处理异常
                    }
                }
            }
        }).start();
    }

    public interface findUserByIDListener{
        void onOperationCompleted(User user);
    }
    //查找方法,根据id_返回user对象
    public static void findUserById(String userId,findUserByIDListener listener) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                String sql = "SELECT * FROM userinfo WHERE _id = ?";
                try {
                    Class.forName(driver);
                    conn = DriverManager.getConnection(url, username, pwd);
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ps.setString(1, userId);
                    ResultSet rs = ps.executeQuery();
                    if (rs.next()) {
                        user=new User();
                        user.id=(rs.getString("_id"));
                        user.name=(rs.getString("name"));
                        user.password=(rs.getString("password"));
                        user.sClass=(rs.getString("class"));
                        user.phone=(rs.getString("phone"));
                        user.select=(rs.getInt("selecto"));
                    }
                    listener.onOperationCompleted(user);
                } catch (ClassNotFoundException | SQLException e) {
                    throw new RuntimeException(e);
                } finally {
                    try {
                        if (conn != null) {
                            conn.close();
                        }
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }).start();
    }
}

posted @ 2024-04-03 16:18  aallofitisst  阅读(6)  评论(0)    收藏  举报