java: framework from BLL、DAL、IDAL、MODEL、Factory, using MySql 8.0

2023-11-06

sql:

drop table BookKindList;
#书目录
create table BookKindList
(
    BookKindID INT NOT NULL AUTO_INCREMENT, #自动增加
    BookKindName nvarchar(500) not null,
    BookKindParent int null,
   PRIMARY KEY(BookKindID)  #主键
);

#删除
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`DeleteBookKind` $$
CREATE PROCEDURE `geovindu`.`DeleteBookKind` (IN param1 INT)
BEGIN
         Delete From bookkindlist WHERE BookKindID = param1;
END $$
DELIMITER ;
 
delete from bookkindlist WHERE BookKindID =10;
 
 
SELECT * FROM bookkindlist;
    
 execute DeleteBookKind(10);
  
  
  
#查询所有
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Select_BookKindListAll` $$
CREATE PROCEDURE `geovindu`.`proc_Select_BookKindListAll` ()
BEGIN
    SELECT * FROM bookkindlist;
END $$
DELIMITER ;
  
 DROP PROCEDURE proc_Select_BookKindListAll;
  
  
  
select * from  `geovindu`.`bookkindlist`;
SELECT * FROM bookkindlist;
  
#统计
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`BookKindCount` $$
CREATE PROCEDURE `geovindu`.`BookKindCount` (OUT param1ID INT)
BEGIN
        select COUNT(*) into param1ID  From bookkindlist;
END $$
DELIMITER ;
  
#更新
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Update_BookKindList` $$
CREATE PROCEDURE `geovindu`.`proc_Update_BookKindList` (IN param1ID Int,IN param1Name NVarChar(1000),IN param1Parent Int)
BEGIN
IF NOT EXISTS (SELECT * FROM BookKindList WHERE BookKindName=param1Name) then #如果存在相同的记录,不更新名称
UPDATE BookKindList
    SET
        BookKindName=param1Name ,
        BookKindParent=param1Parent
    where
        BookKindID=param1ID;
ELSE
    UPDATE BookKindList
    SET BookKindParent=param1Parent
    where
        BookKindID=param1ID;
END IF;
END $$
DELIMITER ;
  
  
#查询一条
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Select_BookKindList` $$
CREATE PROCEDURE `geovindu`.`proc_Select_BookKindList` (IN param1 INT)
BEGIN
        SELECT * FROM BookKindList WHERE BookKindID = param1;
END $$
DELIMITER ;
  
#插入一条
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Insert_BookKindList` $$
CREATE PROCEDURE `geovindu`.`proc_Insert_BookKindList` (IN param1Name NVarChar(1000),IN param1Parent Int)
BEGIN
        insert into BookKindList(BookKindName,BookKindParent) values(param1Name,param1Parent);
END $$
DELIMITER ;
  
#插入一条返回值
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Insert_BookKindOut` $$
CREATE PROCEDURE `geovindu`.`proc_Insert_BookKindOut` (IN param1Name NVarChar(1000),IN param1Parent Int,OUT ID INT)
BEGIN
     IF NOT EXISTS (SELECT * FROM BookKindList WHERE BookKindName=param1Name) then   #如果存在相同的记录,不添加
        INSERT INTO BookKindList (BookKindName,BookKindParent)VALUES(param1Name ,param1Parent);
        #set ID=Last_insert_id()
        SELECT LAST_INSERT_ID() into ID;
      end if;
END $$
DELIMITER ;

MODEL:

/*
 * 版权所有 2021 涂聚文有限公司
 * 许可信息查看:
 * 描述:实体类,连接MySQL
 *
 * 历史版本:  JDK 14.02
 * 数据库:My SQL 8.0
 * IDE: IntelliJ IDEA 2021.2.3
 * OS: Windows 10 x64
 * 2021-12-12 创建者 geovindu
 * 2021-12-15 添加 Lambda
 * 2021-12-15 修改:date
 * 接口类
 * 2021-12-15 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc BookKind.java
 * 配置文件:
 * driver=com.mysql.jdbc.Driver
 *url=jdbc\:mysql\://localhost\:3306/数据库名称
 *user=root
 *password=root
 *
 * */
 
 
package Geovin.Model;
 
 
/**
 * 实体类
 *@author geovindu  涂聚文 Geovin Du
 * @
 *
 * */
public class BookKind {
    //
    private int bookKindID;
 
 
    private String bookKindName;
 
 
    private int bookKindParent;
    /**
     * @param
     * @return  得到ID
     * */
    public int getBookKindID() {
        return bookKindID;
    }
    /**
     * @param bookKindID 设置输入参数
     *
     * */
    public void setBookKindID(int bookKindID) {
        this.bookKindID = bookKindID;
    }
    /**
     * @param
     * @return 得到目录名称
     * */
    public String getBookKindName() {
        return bookKindName;
    }
    /**
     * @param bookKindName 设置输入参数
     *
     * */
    public void setBookKindName(String bookKindName) {
        this.bookKindName = bookKindName;
    }
    /**
     * @param
     * @return 得到父节点的值
     * */
    public int getBookKindParent() {
        return bookKindParent;
    }
    /**
     * @param bookKindParent 设置输入参数
     *
     * */
    public void setBookKindParent(int bookKindParent) {
        this.bookKindParent = bookKindParent;
    }
 
}

DAL

/*
 * 版权所有 2021 涂聚文有限公司
 * 许可信息查看:
 * 描述:DAL数据访问层  数据业务层,连接MySQL
 *
 * 历史版本:  JDK 14.02
 * 数据库:My SQL 8.0
 * IDE: IntelliJ IDEA 2021.2.3
 * OS: Windows 10 x64
 * 2021-12-22 创建者 geovindu
 * 2021-12-25 添加 Lambda
 * 2021-12-25 修改:date
 * 接口类
 * 2021-12-25 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc GeovinDuDAL.java
 * 配置文件:
 * driver=com.mysql.jdbc.Driver  com.mysql.cj.jdbc.Driver
 *url=jdbc\:mysql\://localhost\:3306/数据库名称
 *user=root
 *password=root
 *
 * */
 
//#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
 
 
package Geovin.DAL;
 
import java.awt.print.Book;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.sql.*;
import java.lang.reflect.Parameter;
import Geovin.Model.*;
import Geovin.UtilitieDB.DuMySqlHelper;
 
 
/**
 * 数据业务层操作
 * @author geovindu 涂聚文 Geovin Du
 * @version 1.0
 *
 *
 * */
 
public class GeovinDuDAL {
 
    DuMySqlHelper duMySqlHelperr=new DuMySqlHelper();
 
    /**
     *SQL 语句添加
     * @param bookKind
     * @return bool
     * */
    public Boolean AddSql(BookKind bookKind)
    {
        Boolean isok=false;
        String sql="INSERT INTO BookKindList(BookKindName,BookKindParent) values(? ,?)";
        ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>();
        DuParameter duParameter=null;
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindName());
        duParameter.setDataType("String");
        duParameters.add(duParameter);
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindParent());
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        isok=duMySqlHelperr.ExecuteInsertSql(sql,duParameters);
        return isok;
 
    }
    /**
     * 存储过程添加
     * @param bookKind
     * @return bool
     * **/
    public Boolean AddProc(BookKind bookKind)
    {
        Boolean isok=false;
        String sql="{CALL proc_Insert_BookKindList(? ,?)}";
        ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>();
        DuParameter duParameter=null;
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindName());
        duParameter.setDataType("String");
        duParameters.add(duParameter);
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindParent());
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        isok=duMySqlHelperr.ExecuteInsert(sql,duParameters);
        return  isok;
 
    }
    /**
     * 添加有返回值
     * @param bookKind 输入参数
     * @param outValue 返回参数
     * @return  bool 返回添加是否成功
     *
     * */
    public Boolean AddProc(BookKind bookKind,int outValue)
    {
        Boolean isok=false;
        String sql="{CALL proc_Insert_BookKindList(? ,?)}";
        ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>();
        DuParameter duParameter=null;
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindName());
        duParameter.setDataType("String");
        duParameters.add(duParameter);
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindParent());
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        isok=duMySqlHelperr.ExecuteInsertOutSingleInt(sql,duParameters,outValue);
        return  isok;
 
    }
 
    /**
     * 修改 sql
     * @param bookKind
     * @return  int
     * */
    public  int EditSQL(BookKind bookKind)
    {
        int isok=0;
        String sql="UPDATE BookKindList SET BookKindName=?,BookKindParent=? where BookKindID=?";
        ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>();
        DuParameter duParameter=null;
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindName());
        duParameter.setDataType("String");
        duParameters.add(duParameter);
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindParent());
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        duParameter.setParameterValue(bookKind.getBookKindID());
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        isok=duMySqlHelperr.ExecuteUpdateSql(sql,duParameters);
        return isok;
    }
    /**
     *修改 存储过程
     * @param bookKind
     * @return  int
     * */
    public  int EditProc(BookKind bookKind)
    {
        int isok=0;
        String sql="CALL proc_Update_BookKindList(?,?,?)";
        ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>();
        DuParameter duParameter=null;
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindID());
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindName());
        duParameter.setDataType("String");
        duParameters.add(duParameter);
        duParameter=new DuParameter();
        duParameter.setParameterValue(bookKind.getBookKindParent());
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        isok=duMySqlHelperr.ExecuteUpdate(sql,duParameters);
        return isok;
    }
   /**
    * 删除 SQL语句
    * @param id
    * @return  int
    *
    * */
    public  int DelSQL(int id) {
        int isok=0;
        String sql="Delete From bookkindlist WHERE BookKindID =?";
        ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>();
        DuParameter duParameter=null;
        duParameter=new DuParameter();
        duParameter.setParameterValue(id);
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        isok= duMySqlHelperr.ExecuteDeletSql(sql,duParameters);
        return isok;
    }
    /**
     * 删除 存储过程语句
     * @param id
     * @return  int
     *
     * */
    public  int DelProc(int id) {
        int isok=0;
        String sql="{CALL DeleteBookKind(?)}";
        ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>();
        DuParameter duParameter=null;
        duParameter=new DuParameter();
        duParameter.setParameterValue(id);
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        isok= duMySqlHelperr.ExecuteDelte(sql,duParameters);
        return isok;
    }
    /**
     *SQL语句查询
     * @param id
     * @return
     * */
    public BookKind selectSQL(int id)
    {
        ResultSet resultSet=null;
        BookKind bookKind=null;
        String sql = "SELECT * FROM BookKindList where BookKindID=?";
        ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>();
        DuParameter duParameter=null;
        duParameter=new DuParameter();
        duParameter.setParameterValue(id);
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        try {
 
            resultSet = duMySqlHelperr.ExecuteQuery(sql, duParameters);
            while (resultSet.next()) {
                bookKind =new BookKind();
                bookKind.setBookKindID(resultSet.getInt("BookKindID"));
                bookKind.setBookKindName(resultSet.getString("BookKindName"));
                bookKind.setBookKindParent(resultSet.getInt("BookKindParent"));
 
            }
        }
        catch (Exception exception)
        {
            exception.printStackTrace();
        }
        return bookKind;
 
    }
    /**
     *存储过程语句
     * @param id
     * @return
     * */
    public BookKind selectProc(int id)
    {
        ResultSet resultSet=null;
        BookKind bookKind=null;
        String sql = "{CALL proc_Select_BookKindList(?)}";
        ArrayList<DuParameter> duParameters=new ArrayList<DuParameter>();
        DuParameter duParameter=null;
        duParameter=new DuParameter();
        duParameter.setParameterValue(id);
        duParameter.setDataType("int");
        duParameters.add(duParameter);
        try {
 
            resultSet = duMySqlHelperr.ExecuteQuery(sql, duParameters);
            while (resultSet.next()) {
                bookKind =new BookKind();
                bookKind.setBookKindID(resultSet.getInt("BookKindID"));
                bookKind.setBookKindName(resultSet.getString("BookKindName"));
                bookKind.setBookKindParent(resultSet.getInt("BookKindParent"));
 
            }
        }
        catch (Exception exception)
        {
            exception.printStackTrace();
        }
        return bookKind;
 
    }
 
 
 
 
    /**
     *SQL语句查询
     * @param
     * @return
     * */
    public ArrayList<BookKind> selectAllSQL()
    {
        ArrayList<BookKind> list=new ArrayList<BookKind>();
        ResultSet resultSet=null;
        BookKind bookKind=null;
        String sql = "SELECT * FROM BookKindList";
        try {
 
            resultSet = duMySqlHelperr.ExecuteQuery(sql, null);
            while (resultSet.next()) {
                bookKind =new BookKind();
                bookKind.setBookKindID(resultSet.getInt("BookKindID"));
                bookKind.setBookKindName(resultSet.getString("BookKindName"));
                bookKind.setBookKindParent(resultSet.getInt("BookKindParent"));
                list.add(bookKind);
            }
        }
        catch (Exception exception)
        {
            exception.printStackTrace();
        }
        return list;
 
    }
    /**
     *存储过程语句
     * @param
     * @return
     * */
    public ArrayList<BookKind> selectAllProc()
    {
        ArrayList<BookKind> list=new ArrayList<BookKind>();
        ResultSet resultSet=null;
        BookKind bookKind=null;
        String sql = "{CALL proc_Select_BookKindListAll()}";
        try {
 
            resultSet = duMySqlHelperr.ExecuteQuery(sql, null);
            while (resultSet.next()) {
                bookKind =new BookKind();
                bookKind.setBookKindID(resultSet.getInt("BookKindID"));
                bookKind.setBookKindName(resultSet.getString("BookKindName"));
                bookKind.setBookKindParent(resultSet.getInt("BookKindParent"));
                list.add(bookKind);
            }
        }
        catch (Exception exception)
        {
            exception.printStackTrace();
        }
        return list;
 
    }
 
 
 
 
 
 
}

IDAL:

/*
 * 版权所有 2021 涂聚文有限公司
 * 许可信息查看:
 * 描述:Interface 接口层,连接MySQL
 *
 * 历史版本:  JDK 14.02
 * 数据库:My SQL 8.0
 * IDE: IntelliJ IDEA 2021.2.3
 * OS: Windows 10 x64
 * 2021-12-12 创建者 geovindu
 * 2021-12-15 添加 Lambda
 * 2021-12-15 修改:date
 * 接口类
 * 2021-12-15 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc BookKindInterface.java
 * 配置文件:
 * driver=com.mysql.jdbc.Driver  com.mysql.cj.jdbc.Driver
 *url=jdbc\:mysql\://localhost\:3306/数据库名称
 *user=root
 *password=root
 *
 * */
 
 
package Geovin.Interface;
 
import Geovin.Model.BookKind;
 
import java.util.ArrayList;
 
/**
 * #parse("接口")
 * @author geovindu 涂聚文 Geovin Du
 * @version 1.0
 * */
 
public interface BookKindInterface {
 
 
    /**
     * @param info
     * @return
     * */
    public int Add(BookKind info);
    /**
     *
     * @param info
     * @return
     *
     * */
    public int AddOut(BookKind info);
    /**
     *
     * @param info
     * @return
     *
     * */
    public int Update(BookKind info);
    /**
     *
     * @param id
     * @return
     *
     * **/
    public BookKind SelectSQLBookKindInfo(String id);
 
    /**
     *
     * @param
     * @return
     *
     * */
    public ArrayList<BookKind> SelectSQLBookKindAll();
 
}

Factory:

 

/*
 * 版权所有 2021 涂聚文有限公司
 * 许可信息查看:
 * 描述:工厂层,抽象工厂 连接MySQL
 *
 * 历史版本:  JDK 14.02
 * 数据库:My SQL 8.0
 * IDE: IntelliJ IDEA 2021.2.3
 * OS: Windows 10 x64
 * 2021-12-12 创建者 geovindu
 * 2021-12-15 添加 Lambda
 * 2021-12-15 修改:date
 * 接口类
 * 2021-12-15 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc BookKind.java
 * 配置文件:
 * driver=com.mysql.jdbc.Driver
 *url=jdbc\:mysql\://localhost\:3306/数据库名称
 *user=root
 *password=root
 *
 * */
 
 
package Geovin.Factory;
 
 
import Geovin.DAL.BookKindDAL;
import Geovin.Interface.BookKindInterface;
 
/**
 * #parse("抽象工厂")
 * @author geovindu 涂聚文 Geovin Du
 * @version 1.0
 *
 * */
 
public class AbstractFactory {
 
 
    /**
     *
     *
     * */
    public static  BookKindInterface CreateBookKind()
    {
        BookKindInterface iBookKindInterface=new BookKindDAL();
        return  iBookKindInterface;
    }
 
}

BLL:

/*
 * 版权所有 2021 涂聚文有限公司
 * 许可信息查看:
 * 描述:业务逻辑层,连接MySQL
 *
 * 历史版本:  JDK 14.02
 * 数据库:My SQL 8.0
 * IDE: IntelliJ IDEA 2021.2.3
 * OS: Windows 10 x64
 * 2021-12-12 创建者 geovindu
 * 2021-12-15 添加 Lambda
 * 2021-12-15 修改:date
 * 接口类
 * 2021-12-15 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc BookKind.java
 * 配置文件:
 * driver=com.mysql.jdbc.Driver
 *url=jdbc\:mysql\://localhost\:3306/数据库名称
 *user=root
 *password=root
 *
 * */
 
 
package Geovin.BLL;
 
 
import Geovin.Model.*;
import Geovin.Factory.AbstractFactory;
import Geovin.Interface.*;
 
import java.util.ArrayList;
 
/**
 * #parse("业务逻辑层")
 * @author geovindu 涂聚文 Geovin Du
 * @
 * */
public class BookKindBLL {
 
    private  static BookKindInterface dal=AbstractFactory.CreateBookKind();
 
    /**
     *
     * */
    public int Add(BookKind info)
    {
       return dal.Add(info);
    }
    /**
     *
     * */
    public int AddOut(BookKind info)
    {
        return dal.AddOut(info);
    }
    /**
     *
     * */
    public int Update(BookKind info)
    {
        return dal.Update(info);
    }
    /**
     *
     * */
    public BookKind SelectSQLBookKindInfo(String id)
    {
        return dal.SelectSQLBookKindInfo(id);
    }
    /**
     *
     * */
    public ArrayList<BookKind> SelectSQLBookKindAll()
    {
        return dal.SelectSQLBookKindAll();
    }
}

测试:

//CustomerDAL dal=new CustomerDAL();
        //dal.SelectSQLCustomer("1");
       // BookKindDAL dal=new BookKindDAL();
       BookKindBLL dal=new BookKindBLL();
        BookKind info=dal.SelectSQLBookKindInfo("1");
 
        System.out.println("\t\n实体读出:id-"+info.getBookKindID()+";类目名称:"+info.getBookKindName()+";父节点ID:"+info.getBookKindParent());
 
        BookKind newinfo=new BookKind();
 
       newinfo.setBookKindID(5);
       newinfo.setBookKindName("聚文小说");
       newinfo.setBookKindParent(2);
        int ok=dal.Update(newinfo);
        if(ok>0) {
         System.out.println("更新记录,ok"+String.valueOf(ok));
        }
       else
       {
       System.out.println("更新不成功,no");
       }
        info=new BookKind();
       info=dal.SelectSQLBookKindInfo("5");
       System.out.println("\t\n"+info.getBookKindName());

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java: framework from BLL、DAL、IDAL、MODEL、Factory, using MySql 8.0 的相关文章

  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • Grafana

    一 Grafana 数据可视化 1 下载各种环境以及版本地址 https grafana com grafana download platform windows 2 windows下的安装并运行 https www jianshu co
  • Leetcode2488-统计中位数为 K 的子数组

    数组中的元素只有三种 等于k的 大于k 小于k的 首先找到k在数组中的位置p 分别统计p左侧和右侧的每个位置有多少个元素大于或小于k 假设向左开始记录 首先记c 0 遇到大于k的元素则c 否则c 表示这个位置到p之间净有c个元素大于k 同理
  • 科学计算库Numpy

    一 创建Numpy数组 创建一个一维数组 data1 np array 1 2 4 创建一个二维数组 data2 np array 1 2 3 4 5 6 1 2 3 创造元素值都是0的数组 np zeros 3 4 创建元素值全是1的数组
  • ai作文批改_好未来:AI智能批改中英文作文为老师“减负”

    开篇诗词点题 结尾升华主题 非常赞 细节上 人物描写方法多样 人物的性格特点描绘细致 整体上 内容凸显文章主题 语言新颖清爽 读来令人如沐春风 这是一份语文作文的批改反馈 不过 这份生动详细的批改反馈并不普通 它是利用好未来自主研发的 中英
  • vue动态渲染ref,获取this.$refs.xxx.style为undefined获取循环元素中的style

    正常情况下通过this refs xxx style获取是没问题的 本文遇到的是要获取循环列表中某一元素 并改变其样式 设置ref在v for列表上 直接获取this r e f s n a
  • antd4.x 使用setfieldsvalue动态修改表单值

    表单的默认值可以用 Form 里的 initialValues 来设置 但是 initialValues 不能被 setState 动态更新 因此需要用 setFieldsValue 来更新 1 创建ref实例 创建ref实例 export
  • 技术支持岗位面试问题汇总,绝对有你遇到的面试题!!

    交换机与路由器的区别 1 路由器能拨号 交换机不能 2 无线路由器能使无线设备WIFI上网 交换机不行 3 外形上 从外形上我们区分两者 交换机通常端口比较多看起来比较笨重 而路由器的端口就少得多体积也小得多 4 工作层次不同 最初的交换机
  • 2019最新计算机毕业设计-题目汇总大全-系列1

    课设题目 备注 基于NLP ASR及TTS技术的智能语音分析工具 负责语义分析部分 论文替代 基于SpringBoot的用户音乐平台 家装设计公司客户关系系统 基于机器学习的文本语义分析工具 基于微信小程序的私教预约系统 标准化轮胎仓库管理
  • (转)读源码品Caffe - 结构流程篇

    原文链接 https blog csdn net jinzhuojun article details 79834697 背景 本文主要介绍深度学习框架Caffe的工作原理和实现 时至今日 各种深度学习框架百花齐放 百家争鸣 从流行程度来说
  • R软件的rattle安装指南

    rattle安装问题 1 正常安装情况 2 无法正常安装情况 2 1版本号不对应 2 2网络不稳定 2 3文字乱码问题 1 正常安装情况 这是先基于R4 0 0 这个在3 6的版本都成功过 看到有人说4 0 0不能安装 因此特地去安装尝试下
  • maven环境变量配置(超详细!)

    下载地址 官网地址 建议不要下载在C盘 配置过程 1 解压下载好的压缩包 2 此电脑 右键 属性 高级系统设置 环境变量 3 新建一个系统变量 点击系统变量的新建 变量名 MAVEN HOME 变量值 maven解压的目录 通过浏览目录选择
  • pyspark访问hive数据实战

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 之前我们部门在数据分析这边每天的日报都是直接使用hive脚本进行调用 随着APP用户行为和日志数据量的逐渐累积 跑每天的脚本运行需要花的时间越来越长 虽然进行了sql优化
  • 理解内连接中的隐式内连接、显式内连接和外连接中的左外连接、右外连接

    一 多表查询 二 在 MySQL 中创建 book 和 actor 两张表 1 创建 book 表及添加数据 CREATE TABLE book id INT PRIMARY KEY NOT NULL AUTO INCREMEN bookN
  • 容器技术之Docker&K8S

    1 Docker K8S区别 区别 1 k8s是一种开放源码的容器集群管理系统 而Docker是一种开放源码的应用容器引擎 2 k8s是一套自动化部署工具 可以管理docker容器是容器编排层面的 docker是容器化技术 是容器层面的 2
  • Axure RP9笔记--页面自适应

    笔记2 页面自适应 大三的时候曾经对猫耳FM进行重构 使用HTML 现在看看真是一塌糊涂 只做出了静态页面 当时还遇到了个问题 浏览器变成小窗后 里面的内容并不会改变大小 但是现在大部分网站都做了页面自适应 当时还对前端一无所知 今天的学习
  • 如何在macOS中编译LLVM

    第一步 在App Store中搜索并安装Xcode 如果不想安装整个Xcode 可以在terminal中运行以下命令来只安装命令行工具 xcode select install 第二步 安装LLVM的依赖库 首先运行以下命令 以官网为准 来
  • sql尚硅谷day1

    mysql基础 1 通过mysql自带服务端 只限root用户 2 cmd进入mysql命令 mysql h localhost P 3306 u 用户名 p 停止exit 显示数据库 show databases 打开一个库 use 库名
  • 五大板块(5)——字符串

    参考 五大板块 5 字符串 作者 丶PURSUING 发布时间 2021 03 18 16 03 48 网址 https blog csdn net weixin 44742824 article details 114982019 目录
  • 华为OD机试真题-士兵过河II【2023Q2】【JAVA、Python、C++】

    题目描述 一支N个士兵的军队正在趁夜色逃亡 途中遇到一条湍急的大河 敌军在T的时长后达河面 没到过对岸的士兵都会被消灭 现在军队只找到了1只小船 这船最多能同时坐上2个士兵 1 当1个士兵划船过河 用时为 a i 0 lt i lt N 2
  • java: framework from BLL、DAL、IDAL、MODEL、Factory, using MySql 8.0

    sql drop table BookKindList 书目录 create table BookKindList BookKindID INT NOT NULL AUTO INCREMENT 自动增加 BookKindName nvarc