1 Star 0 Fork 2

JavaObjects / myLibary

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MulanPSL-2.0

Java 8 Spring Boot 2 Vue 3
Github stars Github forks Gitee stars Gitee forks

图书管理系统

  • 此项目是一个Java J2SE(Java 2 Platform, Standard Edition)开发体系CMS(内容管理系统)JAVASE项目,前端为GUI,主要使用以及应用到的技术如下:

项目描述

  1. Eclipse/Mysql/Navicat/Oracle/PlSQL/Git/Tomcat安装以及Jdk和Jre和Jvm在项目中的应用
  2. properties文件配置驱动用户名密码以及url链接数据库
  3. 对象的创建以及方法的定义及调用以及调用堆栈及流程控制语句/垃圾回收机制的使用
  4. 常量/变量/四类八种数据类型以及数据类型(隐/显)以及引用数据类型(上/下溯造型)的转换
  5. 数组/集合/包装类/字符串类/Math类/日期类/的使用
  6. 文件与流/多线程/异常处理以及自定义异常使用
  7. JDBC与Java数据库编程的使用
  8. DDL、DML、DQL在项目中的应用
  9. Oracle数据库迁移至Mysql数据库
  10. Java GUI技术的应用

开发环境

  • Windows

配置环境

程序 版本 说明
Jdk 1.8.0 161 Java 开发工具包
Mysql 5.5.27 关系型数据库
或者 Oracle 11.2.0.1.0 关系型数据库

开发工具

工具 版本 说明
Eclipse IDE 4.11.0(2022.12) 前后端开发IDE
Git 2.24.1 代码托管平台
Navicat 12 数据库连接工具
PL/SQL 11.2.0.1.0 数据库连接工具

编码规范

  • 规范方式:严格遵守阿里编码规约。
  • 命名统一:简介最大程度上达到了见名知意。
  • 分包明确:层级分明可快速定位到代码位置。
  • 注释完整:描述性高大量减少了开发人员的代码阅读工作量。
  • 工具规范:使用统一jar包避免出现内容冲突。
  • 代码整洁:可读性、维护性高。

包的作用

作用
config.images 存放图片
config.dbconfig 存放数据库配置文件
lib 存放程序驱动
entity 实体类
util 公共类
view 视图类
factory 工厂类,专门生产各类dao的实例
ifac 接口类
impl 接口实现类
test 测试类

项目运行

  1. 保证已安装jdk1.8的环境
  2. Eclipse与jdk要配置好
  3. navicat导入mylibary_all.sql运行生成对应的数据表前提是你安装好对应的mysql以及navicat
  4. 利用Eclipse打开测试类运行此项目

技术选型:

数据库:Oralce11G
JDBC工具:DBUtils
层与层之间解耦合:工厂设计模式
数据展示控件:JTable
访问数据库的查询方法封装使用技术:泛型,反射机制

总体架构:

MVC设计模式:

  1. M(Model) 模型: 应⽤程序的核⼼功能,管理这个模块中⽤的数据和值(bean,dao) 数据访问层:Dao
  2. V(View )视图: 视图提供模型的展示,管理模型如何显示给⽤户,它是应⽤程序的外观;(jsp/html)
  3. C(Controller)控制器: 对⽤户的输⼊做出反应,管理⽤户和视图的交互,是连接模型和视图的枢纽。(servlet/service)

在此项目中用的工厂模式 其实 ifac 包就相当于service

  1. entity文件夹 实体类属于公共层 不属于mvc任何层,也可存放于domain文件夹
  2. 本项目中view层调用dao层,dao层调用数据库,其中 dao层中 ifac为接口 impl为接口的实现 通过factory解耦合 并实现连接

模块划分

用户前台模块部分:
1. 注册信息
2. 用户登陆
3. 查看所有图书信息
4. 查看热门图书信息
5. 查看可借图书信息
6. 查看已借图书信息(不可借)
7. 查看本人所有借书记录
8. 查看本人未归还图书记录
9. 查看本人已归还图书记录(已还借书记录)
10. 借书
11. 还书
管理员后台模块部分:
1. 用户登陆
2. 查看所有图书信息
3. 查看热门图书信息
4. 查看可借图书信息
5. 查看已借图书信息(不可借)
6. 查看指定 图书名 的图书信息
7. 添加图书
8. 查看 所有用户的借阅记录
9. 查看 所有用户的未还记录
10. 查看 所用用户的已还记录
11. 查看 当前用户的借阅记录
12. 查看 当前用户的未还记录
13. 查看 当前用户的已还记录
14. 查看 指定用户的借阅记录
15. 查看 指定用户的未还记录
16. 查看 指定用户的已还记录
17. 查询所有用户
18. 查询指定用户

系统结构图

主要功能

  1. 普通用户注册,主要功能为图书查询和借阅记录查询两大模块。
    1. 查询所有图书
    2. 借书
    3. 还书
    4. 查询自己的所有借书记录
    5. 查询自己所有未还的图书
    6. 查询自己的已还的借书记录
  1. 管理员用户注释,主要功能也是图书查询和借阅记录查询两大模块。
      1. 查询所有的图书
      2. 借书
      3. 还书
      4. 查询所有用户或指定用户的借书记录
      5. 查询所有用户或指定用户的所有未还的图书
      6. 查询所有用户或指定用户的已还的借书记录
      7. 添加图书
      8. 删除图书
      9. 修改图书

数据库设计

myLibary_book表
列名 数据类型 可否为空 说明
book_id int not null 书籍编号,自增长
book_name varchar not null 书籍名称
book_count int not null 借出次数
status int not null 书籍状态(0,已借出,1,可借)
myLibary_user表
列名 数据类型 可否为空 说明
user_id int not null 用户编号,自增长
user_name varchar not null 用户名,唯一
user_password varchar not null 用户密码
user_type int 1not null 用户类型,1,普通用户,2,管理员

myLibary_record表

存放所有的借阅记录的表

列名 数据类型 可否为空 说明
record_id int not null 记录编号,自增长
user_id int not null 借书人的编号,外键
book_id int not null 书籍编号,外键
lend_time date not null 借出时间
return_time date 归还时间

业务功能简介

  1. 用户登录

  1. 用户注册

  1. 所有图书查询功能

  1. 热门图书查询

  1. 可借图书查询

  1. 不可借图书查询

  1. 指定图书查询

  1. 添加图书

  1. 借阅记录查询 当前用户指定用户所有用户

  1. 指定用户查询所有用户查询

参考博客

  1. JavaWeb中的MVC模式(有案例)
  2. Java语言使用JDBC连接Mysql数据库的详细步骤,以及详细解释(一)
  3. 各个数据库中,查询前n条记录的方法
  4. MySQL序列的使用
  5. 如何在MySQL中创建和使用序列?
  6. mysql与oracle的区别_MySQL
  7. Oracle与MySQL的几点区别
  8. [MySQL与Oracle之间的区别]
  9. mysql与oracle区别
  10. Oracle转MySQL日记(三) ---关于Oracle序列(Sequence)的转化
  11. Navicat设置自动递增的基本步骤
  12. Java Swing 隐藏JTable的某一列
  13. Java Swing 只关闭当前窗体
  14. Java代码中如何判断一个字符串中是否包含特殊字符呢?
  15. 如何给combobox设定一个默认值?
  16. JTextField显示提示信息
  17. Eclipse 快捷键返回值Alt+shift+L和Ctrl+1
  18. gitee的markdown文件图片显示不出来

技术应用

    1. Jdk和Jre和Jvm在项目中的应用
    1. Eclipse搭建Tomcat服务器以及Jdk8的应用
    1. 通过properties文件配置数据库驱动用户名密码url链接
    1. 变量和运算符
    • Java程序运行原理

    • 注释的使用

    • 空白符和行号

    • 类和主方法

    • 标识符、关键字和保留字

    • 常量

      • 整型字面常量,如:123,067,0X1D,123L - 浮点数字面常量,如:123.4,.18,1.8e1,1.2D,1.2F - 布尔型字面常量,如:true,false - 字符字面常量,如:’a’,’8’,‘\n’,‘\u123f’ - 字符串字面常量,如:“a”,“hello” - 引用类型字面常量,:null
    • 数据类型

      • 基本数据类型:4类8种基本数据类型
        • 数值型
          • 整数类型 — byte、short、int默认、long
          • 浮点数类型 — float、double
        • 字符型 char
        • 布尔型 boolean
      • 引用数据类型
        • 类 class
        • 接口 interface
        • 数组 array
    • 变量

    • 数据类型的转换

      • 自动类型转换(隐式类型转换)

        • 有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后进行计算
        • 自动转换规则
          • boolean类型不可以转换为其他的数据类型
          • 整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵守以下原则(byte/short/char) --> int --> long --> float ---> double
          • byte、short、char之间不会相互转换,他们三者在计算时首先会转换为int类型
      • 强制类型转换(显示类型转换)

        • 容量大的数据类型转换为容量小的数据类型时,需要使用强制类型转换,其格式如下:变量 = (目标类型) 值 例如: byte a;int b;a = (byte) b;
        • 在强制类型转换过程中,源类型的值可能大于目标类型,因此可能造成精度降低或溢出,使用时需注意
    • 运算符

      • 算术运算符: +、﹣、*、/、%、++、 --

      • 赋值运算符:=、+=、﹣=、*=、/=、%=

      • 关系运算符:>、<、>=、 <=、= =、!=、instanceof

      • 逻辑运算符:!、&&、||

      • 移位运算符: &、|、^ 、 ~、>>、<<、>>>

      • 条件运算符: ?:

      • 运算符的优先级

        • 按操作数多少划分
          • 一元操作符 > 二元操作符 > 三元操作符
        • 按运算类型划分
          • 算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符
        • 尽量多的使用括号
          • 括号优先级别最高
    • 表达式

      • 表达式的值和类型

        • 对表达式中操作数进行运算得到的结果称为表达式的值
        • 表达式值的数据类型即为表达式的类型
      • 表达式的运算顺序

        • 应按照运算符的优先级从高到低的顺序进行
        • 优先级相同的运算符按照事先约定的结合方向进行
    1. 流程控制语句
    • 条件语句
      • if语句
      • switch语句
    • 循环语句
      • while循环
      • do-while循环
      • for循环
      • 死循环
      • 嵌套循环
      • 循环的中断
    1. 数组
    • 一维数组
      • 数组的定义和创建
      • 数组的内存模型
      • 数组的初始化
      • 数组元素的访问
      • 数组的属性
      • 数组的异常
    • 多维数组
      • 多维数组的创建
      • 多维数组的初始化
      • 多维数组的内存模型
    • 数组的操作
      • 多维数组的遍历
      • 数组的复制和排序
    1. 方法定义及调用
    • 方法的定义
      • 什么是方法

        • 方法是完成某个功能的一组语句,通常将常用的功能写成一个
      • 方法的定义

        • [访问控制符] [修饰符] 返回值类型 方法名(参数类型 形式参数,参数类型 形式参数,…) { 方法体 }
        • 修饰符:public 、static 被称为修饰符(后续会详细讲解它们);
        • 返回值类型:用来说明该方法运算结果的类型。如果返回其他类型,编译就可能出错;
        • 方法名:它作为调用时引用方法的标识;
        • 参数列表:方法的参数个数可以是0个到多个,每个参数前面要声明参数的数据类型;每个参数要用逗号分开。也可以一个参数都没有。
        • 方法体:它是一个语句块,执行特定的功能操作。对于有返回值类型的方法,方法体当中最后一个语句是return关键字,它的作用是把方法的执行(运算)结果返回到方法外部。
        • return 表达式:这里,进一步分析,return后面的表达式就是方法的返回值。需要注意表达式的类型,必须与方法头中声明的“返回类型”相匹配。
      • 方法的分类

        • 根据参数个数:

          • 无参方法
          • 有参方法
        • 根据返回值类型: * 有返回值的方法: + 基本数据类型 + 引用数据类型 * 无返回值的方法 + void

    • 方法的调用
      • 无参方法的调用
      • 有参方法的调用
      • 使用方法时的注意问题
    • 方法的重载
      • 方法的重载就是在同一个类中允许同时存在一个以上同名的方法
      • 方法重载的规则
        • 方法名称相同
        • 方法的参数必须不同
        • 参数个数不同 或 参数类型不同
        • 方法的返回值类型可以相同,也可以不同
    1. 面向对象基础
    • 面向对象编程思想(OOP:Object-Oriented Programming )

    • 类的定义

      • 什么是类
      • 类的格式
      • 类的成员
    • 对象的创建和使用

      • 什么是对象

      • 创建对象

      • 构造器(构造方法/构造器,Constructor)

        • 具有与类相同的名称
        • 不含返回值类型
        • 不能在方法中用return语句返回一个值
        • 一般访问权限为public
        • 在一个类中,具有上述特征的方法就是构造器。 + 构造器的作用 - 完成对象的创建,即完成对象的实例化 - 一般使用构造器来完成对成员变量的初始化
      • 使用对象

        • 在其他类中或main方法中,若想访问对象的属性或是方法必须先实例化这个类,然后通过对象名(引用)和点操作符来完成: 对象名. 属性名();对象名. 方法名(); - 如果在类内的方法中,访问本类的属性和方法就可以直接访问了。
      • 匿名对象

        • 创建完对象,在调用该对象的方法时,也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫匿名对象
      • 变量的作用域

    • this关键字

      • 代表对象自身的引用
        • 一个引用
        • 指向调用该方法的当前对象
      • 通常在类的方法定义中使用
    • 垃圾回收机制(Garbage First)

      • Java的垃圾回收机制是自动的,它保证程序健壮的主要手段,避免了由于程序员忘记回收内存而引起的内存泄漏,同时也避免了回收内存带来的代码繁琐。
      • 垃圾回收机制实际上是JVM内部运行的一个优先级比较低的后台线程,这种多线程的模式使得java 具有更好的性能,完全不用程序员参与。
      • 垃圾回收机制仅仅作用于堆内存,于栈内存无关。
      • 对于程序员来说,对象何时变成垃圾呢?
           对象的引用被赋值为null; Person p = new Person( );   p = null;
           一次性使用的匿名对象;	new Person( ).sayHello( );
           超出生命周期的;如:
                 for( int I = 0; i< 100; i++){
                   Person p = new Person( );
               }	
    1. 面向对象高级特性
    • 类的继承
      • 理解继承的含义
      • 继承的语法和规则
      • 子类实例化的过程
      • super关键字和this关键字
    • Java包的概念
      • 包的概念及应用
      • Java类库中的常用包
      • import导入包中的类
      • 访问权限修饰符 封装
      • 访问权限修饰符
    • 方法的覆盖
    • 引用数据类型的转换
      • 上溯造型
      • 下溯造型
      • instanceof运算符
    • 多态
    1. 异常处理
    • 异常简介
      • 异常的定义
    • 异常类的继承关系
      • 异常的继承树
      • 异常类型
    • 异常处理机制
      • 异常的处理过程
      • try..catch语句
      • finally语句
      • throws关键字
      • throw语句
    • 方法调用的堆栈
    • 自定义异常
    1. 工具类
    • Java API Java API简介
    • Object Object介绍及方法
    • 包装类 包装类简介
      • 基本数据类型转换为包装类
      • 字符串转换为包装类
      • 包装类转换为基本数据类型
      • 包装类转换为字符串
      • 字符串转换为基本数据类型
      • 自动装箱和自动拆箱
    • 字符串类
      • String对象的创建
      • String中常用的方法
      • StringBuffer对象的创建
      • StringBuffer中常用的方法
      • StringBuilder对象的创建
      • StringBuilder中常用的方法
      • String与StringBuffer的比较
      • StringBuffer与Stringbuilder的比较
    • Math类
      • Math中常用的方法
    • 日期类
      • Date类
      • Date类中常用方法
      • Calendar类
      • Calendar类常用属性
      • SimpleDateFormat类的使用
    1. 集合 -Java中的集合类
      • 集合概述
      • Java中集合框架层次结构 -Collection接口
      • Collection接口
      • Set接口
      • Set接口的实现类
      • List接口
      • List接口的实现类
      • Iterator接口 -Collections类
      • Collections类 -Map接口
      • Map接口
      • Map接口的实现类
      • HashMap与TreeMap的比较
      • HashMap与HashTable的比较 -集合中的异常
      • 使用集合时常见的异常 -泛型的使用
      • 集合中泛型的使用
    1. 文件与流 -文件管理
      • 文件管理概述
      • File类 -流的概念及API
      • 流的概念
      • 字节流中的层次结构图
      • 字节流中的主要方法
      • 字符流中的层次结构图
      • 字符流中的主要方法 -节点流与处理流的使用
      • 什么是节点流
      • 节点流的方法
      • 文件的访问
      • 什么是处理流
      • 常见的处理流类 -对象的序列化
      • 对象序列化概述
      • 支持序列化的接口和类
      • 对象序列化的条件
      • transient
    1. 多线程编程 -多线程简介
      • 进程/线程区别 -多线程实现的两种方式
      • 继承
      • 接口
      • 两种实现方式比较 -线程的属性和控制
      • 线程状态及其生命周期
      • 线程类中的主要方法
      • 线程优先级
      • 线程休眠和线程中断
      • 线程的高级操作 -多线程的同步/通信问题
      • 线程同步
      • 死锁
    1. 网络编程
    • 网络基础知识
      • 网络基础知识
      • IP地址和端口号
      • TCP与UDP
    • Socket编程
      • Socket原理
      • 基于TCP的Socket编程
      • 基于多线程的Socket编程
    1. JDBC与Java数据库编程
    • JDBC概述
      • 什么是JDBC
      • JDBC实现的功能
      • JDBC的体系结构
      • JDBC特点
      • JDBC核心接口与类
    • 创建JDBC应用
      • 创建JDBC应用程序的步骤
      • 数据库驱动程序
      • 加载 JDBC 驱动程序
      • 建立与数据库的连接
      • 获得 Statement 对象
      • 执行 SQL 语句
      • 操作结果集对象
      • SQL类型对应 Java 数据类型
      • ResultSet接口的getXxx 方法
      • 关闭操作对象及连接
      • JDBC日期时间处理
    • PreparedStatement
      • PreparedStatement接口
      • PreparedStatement接口setXxx 方法
      • PreparedStatement接口优点:
    1. Java8新特性
    1. DDL、DML、DQL在项目中的应用
    • 限制数据和对数据排序
    • 单行函数
    • 多表连接
    • 分组函数
    • 子查询
    • 集合运算
    • 高级子查询
    • 层次查询
    • 数据操作与事务控制
    • Oracle数据库网络连接
    • 创建和维护表
    • 约束
    • 视图
    • 序列、索引、同义词
    • 用户、权限和角色
    1. Oracle数据库迁移至Mysql数据库
    1. Java Swing技术的应用
木兰宽松许可证, 第2版 木兰宽松许可证, 第2版 2020年1月 http://license.coscl.org.cn/MulanPSL2 您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束: 0. 定义 “软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。 “贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。 “贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。 “法人实体”是指提交贡献的机构及其“关联实体”。 “关联实体”是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。 1. 授予版权许可 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。 2. 授予专利许可 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。 3. 无商标许可 “本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。 4. 分发限制 您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。 5. 免责声明与责任限制 “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。 6. 语言 “本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。 条款结束 如何将木兰宽松许可证,第2版,应用到您的软件 如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步: 1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字; 2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中; 3, 请将如下声明文本放入每个源文件的头部注释中。 Copyright (c) [Year] [name of copyright holder] [Software Name] is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2 THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v2 for more details. Mulan Permissive Software License,Version 2 Mulan Permissive Software License,Version 2 (Mulan PSL v2) January 2020 http://license.coscl.org.cn/MulanPSL2 Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions: 0. Definition Software means the program and related documents which are licensed under this License and comprise all Contribution(s). Contribution means the copyrightable work licensed by a particular Contributor under this License. Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License. Legal Entity means the entity making a Contribution and all its Affiliates. Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity. 1. Grant of Copyright License Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not. 2. Grant of Patent License Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken. 3. No Trademark License No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4. 4. Distribution Restriction You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software. 5. Disclaimer of Warranty and Limitation of Liability THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 6. Language THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL. END OF THE TERMS AND CONDITIONS How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps: i Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; ii Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package; iii Attach the statement to the appropriate annotated syntax at the beginning of each source file. Copyright (c) [Year] [name of copyright holder] [Software Name] is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2 THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v2 for more details.

简介

Java SE(Java + JDBC + 工厂模式) + GUI CMS-内容管理系统 展开 收起
Java 等 3 种语言
MulanPSL-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/JavaObjects/myLibary.git
git@gitee.com:JavaObjects/myLibary.git
JavaObjects
myLibary
myLibary
master

搜索帮助