mysql tomcat列表增删改查_Tomcat-Database

Tomcat-Database

介绍

根据Tomcat9源码二次开发,增加数据库功能,可一行代码实现CURD

安装教程

需要先配置Ant,然后在根目录下执行ant命令,即可编译,编译后的目录在Tomcat-Database/output/build下,其中在bin下可直接执行./startup.sh启动

使用说明

其实这也不算扩展吧,只是改了小小小的一部分,先来展示下怎么使用。

eclipse

如果要在Eclipse中使用,务必添加二次开发后的Tomcat路径(文章后有链接)。

5dd46184124d40b9c892ad0bcf8d23cd.png

此处也要换成二次开发后的,不然后续用到的类会找不到。

3ff118c11ee0ceca76c4e02d7571fcc7.png

好,看看怎么一行代码获取表中所有记录。

首先要在init(ServletConfig config)方法中拿到HTomcatPal对象,这是唯一的写法,你不可能通过new创建。

@WebServlet("/BookServlet")

public class BookServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

private HTomcatPal hTomcatPal;

@Override

public void init(ServletConfig config) throws ServletException {

/**

* 获取BookDao,只能通过此方式

*/

hTomcatPal =(HTomcatPal)config.getServletContext().getAttribute("AZY");

}

public BookServlet() {

super();

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

List result = hTomcatPal.findAll(BookEntity.class);

request.setAttribute("data", result);

request.getRequestDispatcher("bookList.jsp").forward(request, response);

}

在看看jsp中通过jstl简单渲染一下。

pageEncoding="UTF-8"%>

图书列表

书名

作者

搜索

ID 书名

作者 价格

class="row-item">描述

  • ${item.getId()}

    class="row-item flex-2">${item.getBookName() }

    class="row-item">${item.getBookAuthor() }

    class="row-item">${item.getBookMoney() }

    class="row-item">${item.getBookDesc() }

效果就出来了,是不是非常简单?

9f2d01ac7928ec2b4e33254716d44490.png

当然,这里最重要的是在实体上加入注解@TabName,并指明表名,如果是主键,则要加上@PrimaryKey注解。如果遵守字段命名规范,则可以不用加@FieldName标明对应数据库字段是什么。这里的规范就是如果Java字段是bookName,则数据库字段是book_name,在比如bookAuthor,对应数据库字段就是book_author,如果不是这样的规范,则需要加入@FieldName注解标明。

另外,一定要留一个空构造方法。

@TabName("tb_books")

public class BookEntity {

@PrimaryKey

private int id;

private String bookName;

private String bookAuthor;

private BigDecimal bookPrice;

@FieldName("book_describ")

private String bookDesc;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getBookName() {

return bookName;

}

public void setBookName(String bookName) {

this.bookName = bookName;

}

public String getBookAuthor() {

return bookAuthor;

}

public void setBookAuthor(String bookAuthor) {

this.bookAuthor = bookAuthor;

}

public BigDecimal getBookMoney() {

return bookPrice;

}

public void setBookMoney(BigDecimal bookMoney) {

this.bookPrice = bookMoney;

}

public String getBookDesc() {

return bookDesc;

}

public void setBookDesc(String bookDesc) {

this.bookDesc = bookDesc;

}

public BookEntity(int id, String bookName, String bookAuthor, BigDecimal bookPrice, String bookDesc) {

this.id = id;

this.bookName = bookName;

this.bookAuthor = bookAuthor;

this.bookPrice = bookPrice;

this.bookDesc = bookDesc;

}

public BookEntity() {

}

@Override

public String toString() {

return "BookEntity{" +

"id=" + id +

", bookName='" + bookName + '\'' +

", bookAuthor='" + bookAuthor + '\'' +

", bookPrice=" + bookPrice +

", bookDesc='" + bookDesc + '\'' +

'}';

}

}

但是,是不是需要告诉Tomcat要连接的数据库信息呢?当然,这是必须的,我们可以直接在web.xml中进行配置,无需创建额外文件,如下的几个标签,其中core-connect是数据库连接池的大小。

当Tomcat启动后,会打印出这些配置。

DynamicWebDemo-Dababase

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

15

jdbc:mysql://localhost:3306/test

root

xxxxx

另外,源码中已经加入了mysql-connector-java-8.0.19,小伙伴无需在导入mysql驱动jar,这听起来是不是更方便了呢?

IDEA

同样在idea中也要先配置二次开发后的Tomcat,如果在Idea下找不到HTomcatPal,则需要在这个界面添加database.jar。database则是所写的简易数据库框架,原路径在org.apache.database,配置ant后会生成database.jar。配置后使用方法同上。

94695cb19dbb4c513daa0e731376cf2a.png

三、API

当然少不了API的使用,这里提供了简单的CRUD。

插入

BookEntity entity =new BookEntity();

for (int i = 0; i < 100; i++) {

entity.setBookAuthor("作者"+i);

entity.setBookDesc("描述"+i);

entity.setBookMoney(new BigDecimal(""+i));

entity.setBookName("书名"+i);

tomcatPal.insert(entity);

}

删除

/**

* 删除ID为26580,26581,26583

*/

tomcatPal.deleteIds(BookEntity.class,26580,26581,26583);

/**

* 删除作者为’作者35‘的记录

*/

tomcatPal.deleteByCondition(BookEntity.class,new Condition.Builder()

.whereEq("book_author","作者35")

.builder());

更具条件查找

/**

*查找金额大于50的记录

*/

List entities = tomcatPal.findAll(BookEntity.class, new Condition.Builder()

.whereGt("book_price", 50)

.builder());

System.out.println(entities);

此时列举这么多,主要的类就是Condition(条件)、HTomcatPal。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kafka集群部署CentOS 7

一、前言 1、Kafka简介 Kafka是一个开源的分布式消息引擎/消息中间件&#xff0c;同时Kafka也是一个流处理平台。Kakfa支持以发布/订阅的方式在应用间传递消息&#xff0c;同时并基于消息功能添加了Kafka Connect、Kafka Streams以支持连接其他系统的数据(Elasticsearch、Had…

mysql+e+文件+xls_TP5+PHPexcel导入xls,xlsx文件读取数据

首先:在extend里面引入PHPexcel文件,直接根目录导入进去html创建上传按钮上传excel上传文件立即提交重置layui.use([form,upload],function(){var formlayui.form;var uploadlayui.upload;upload.render({ //允许上传的文件后缀elem: #myfile,url: "{:url(sale/do_uploa…

SQL Server 2008 FILESTREAM特性管理文件

在SQL Server 2008中&#xff0c;新的FILESTREAM&#xff08;文件流&#xff09;特性和varbinary列配合&#xff0c;你可以在服务器的文件系统上存储真实的数据&#xff0c;但可以在数据库上下文内管理和访问&#xff0c;这个特性让SQL Server不仅可以维护好数据库内记录的完整…

System.Drawing.Color转System.Windows.Media.Color

2019独角兽企业重金招聘Python工程师标准>>> //这是两个不同的类 System.Windows.Media.Color color (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString(transItemList[i].color.Name); 转载于:https://my.oschina.net/SearchVe…

Prometheus 监控Mysql服务器及Grafana可视化

Prometheus 监控Mysql服务器及Grafana可视化 mysql_exporter&#xff1a;用于收集MySQL性能信息。 使用版本mysqld_exporter 0.11.0官方地址使用文档&#xff1a;https://github.com/prometheus/mysqld_exporter图标模板&#xff1a;https://grafana.com/dashboards/7362下载…

Kafka集群部署搭建完美标准版

Kafka集群部署并启动 在本文中将从演示如何搭建一个Kafka集群开始&#xff0c;然后简要介绍一下关于Kafka集群的一些基础知识点。但本文仅针对集群做介绍&#xff0c;对于Kafka的基本概念不做过多说明&#xff0c;这里假设读者拥有一定的Kafka基础知识。 首先&#xff0c;我们…

Yolov4训练自己的数据集

Yolov4训练自己的数据集 代码运行环境Ubuntu18.04python3.6显卡1080TiCUDA10.0cudnn7.5.1OpenCV3.4.6Cmake3.12.2&#xff0c;详细环境配置安装步骤就不讲解拉&#xff0c;网上教程一大堆。从github克隆下载源码&#xff0c;链接地址&#xff1a;https://github.com/AlexeyAB/…

vs 2010 不显示解决方案文件

vs 2010 不显示解决方案文件的问题早就遇到过&#xff0c;而且也能很容易的解决&#xff0c;唯独这次太郁闷了&#xff0c;先说说之前的我办法吧&#xff0c;像往常一样&#xff0c;在工具栏里面找到 >工具>选项>项目和解决方案>常规>勾中“总是显示解决方案”&…

CentOS7 安装ownCloud

ownCloud的安装依赖LAMP环境&#xff0c;即 Linux Apache MySQL(Mariadb) PHP&#xff0c;所以在装owncloud前最好先装好这些&#xff0c;并且保证已经可用。 为了方便&#xff0c;本文在运行shell命令时都是以管理员用户身份运行&#xff08;root权限下运行&#xff09;&a…

java opencv 平移_Java中使用opencv

Java中使用opencvJava中使用opencv零、前言作为图像处理出身&#xff0c;不仅仅要会C图像处理、matlab图像处理、python图像处理、最起码也得会java图像处理&#xff0c;当然我最终还都用的是opencv这个机器视觉库了。今天简单介绍一下java中如何使用opencv。一、配置库(1)官网…

CentOS7 安装 NextCloud

NextCloud 的安装依赖LAMP环境&#xff0c;即 Linux Apache MySQL(Mariadb) PHP&#xff0c;所以在装 NextCloud前最好先装好这些&#xff0c;并且保证已经可用。 为了方便&#xff0c;本文在运行shell命令时都是以管理员用户身份运行&#xff08;root权限下运行&#xff0…

苹果系统使用之输入法的呈现与设置问题

新装的系统&#xff0c;总是纠结的出现各种问题。今天解决的就是装了Mac OS X 10.6&#xff08;苹果系统&#xff09;之后&#xff0c;输入法找不到&#xff0c;用快捷不能设置的问题。 刚开始使用mac os x 系统&#xff0c;其实说用也谈不上&#xff0c;因为本人是使用公司的电…

halcon 17 cuda cudnn 深度学习环境搭建

如果你想安装halcon17&#xff0c;那么很简单&#xff0c;硬盘剩余空间2G,内存超过256M&#xff0c;操作系统win7以上即可。 但显然我们的要求不仅如此&#xff0c;因为我们期待已久的深度学习功能。 详细要求见下表 必备环境&#xff1a;电脑必须要有 NVIDIA 独立显卡&#x…

Format Currency Sample

2019独角兽企业重金招聘Python工程师标准>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"&…

深度学习-服务端训练+android客户端物体识别实战(caffe入门教程+mobilenet+ncnn+android)

文章目录 背景 物体识别简介 自动驾驶 淘宝京东使用物体识别技术公司业务需求 深度学习简介 深度学习的位置 深度学习概念深度学习优势 深度学习基础知识 感知机 激活函数多层感知机卷积神经网络 卷积层 * 池化层 模型训练 前向传播 * 反向传播与参数优化 深度学习服务端框…

java+包装类,装箱和拆箱_Java包装类,装箱和拆箱详解

下面要给大家讲到的就是Java内置包装类方面的知识&#xff0c;这章主要会讲到Java包装类装箱和拆箱方面的知识&#xff0c;一起来了解一下。Java为每种基本数据类型分别设计了对应的类&#xff0c;这就被叫做是包装类(WrapperClasses)&#xff0c;当然&#xff0c;也有的地方叫…

Using JSON for data transfer

为什么80%的码农都做不了架构师&#xff1f;>>> JSON basics At its simplest, JSON allows you to transform a set of data represented in a JavaScript object into a string that you can easily pass from one function to another, or -- in the case of as…

Visual Studio 2010 中JS注释制作

Visual Studio 2010中的js注释已经很强大了&#xff0c;但怎么才能和调用c#的方法一样容易呢&#xff1f;怎样才能让每个参数都有注释说明呢&#xff1f;底下就是想要的答案。 先上图&#xff0c;如图所示&#xff1a; 其中红色的办法为注释效果&#xff0c;当然制作的方法也在…

windows下配置caffe-matlab接口

一、环境说明 也是安装顺序。特别强调的是除VS2015以外&#xff0c;其他软件的安装路径都最好不要包含空格。 1、Windows 64位系统。 2、Visual Studio 2015(VS2015, 对应VC14)。 3、Matlab 2017a。Matlab的版本倒不是很重要&#xff0c;只要支持Matlab 2015a之后的版本都应该…

NVelocity标签使用详解

本文使用的NVelocity版本为1.1.1&#xff0c;应该是目前为止最新的版本吧&#xff0c;前几天在google上找了一个自称是NVelocity 1.6.1 bate2的dll&#xff0c;下载下来一看更新时间是2009年的&#xff0c;还没版本NVelocity 1.1.1&#xff08;2010年出的&#xff09; 新呢&…