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,一经查实,立即删除!

相关文章

fatal error C1010: unexpected end of file while looking for precompiled head

致命错误C1010&#xff1a;在寻找预编译指示头文件时&#xff0c;文件未预期结束。 就是没有找到预编译指示信息的头文件。 问题一般发生在&#xff1a;通过添加文件的方式&#xff0c;添加了一些cpp文件到一个MFC的程序&#xff0c;但该cpp文件并不是MFC&#xff0c;而是标准…

Kafka集群部署CentOS 7

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

Asp.net中Js、Css文件压缩辅助类

类名&#xff1a;WebCompressUtility.cs 代码如下&#xff1a; /// <summary>/// Js、Css文件压缩辅助类/// Stone_W/// 2011.6.21/// </summary>public class WebCompressUtility{public WebCompressUtility() { }#region 判断浏览器是否支持指定压缩/// <sum…

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不仅可以维护好数据库内记录的完整…

IP地址、手机归属和身份证查询接口

1. 查询手机&#xff1a;http://www.yodao.com/smartresult-xml/search.s?typemobile&q手机号码 2. 查询IP&#xff1a;http://www.yodao.com/smartresult-xml/search.s?typeip&qIP地址 3. 查询身份证&#xff1a;http://www.yodao.com/smartresult-xml/search.s?…

mysql5.6.24安装perl_mysql5.6源码安装

背景&#xff1a;现有mysql版本为5.5.40&#xff0c;考虑到以后需做主从&#xff0c;而5.6在主从方面、mysql读写方面都有很大提升。所以&#xff0c;准备升级。官网&#xff1a;http://www.mysql.com/环境&#xff1a;centos6.5 X86_64安装目录&#xff1a;/database/mysql解压…

把字符串转化为类型

问题&#xff1a;可以得到类型的String格式的名称&#xff0c;想要转化为相应的类型&#xff1f; ps&#xff1a;今天定义了好多个枚举类型&#xff0c;把枚举名称存放在一个ComboBox类名&#xff0c;控件值改变的时候要查询出这个枚举的所有属性集合&#xff0c;刚开始想到反…

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下载…

visual studio 2010 如何修改assemblyInfo.cs默认值

这个应该是安装系统时的单位名称。修改HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization的值即可。另外&#xff0c;可以修改项目模板里面的内容C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\W…

mysql重要的监控参数_zabbix3.0.2使用percona mysql插件来监控mysql5.7   以及必须监控的性能参数...

http://tongcheng.blog.51cto.com/6214144/1620158http://www.cnblogs.com/caoxiaojian/p/5706992.htmlhttp://blog.csdn.net/mchdba/article/details/51447750对比zabbix全方位监控mysql&#xff0c;尤其注意以下监控项MySQL InnoDB Buffer Poolpool sizedatabase pages In…

Microsoft SQL Server 2005 提供了一些工具来监控数据库

--WL 09-07-03/*Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。常规服务器动态管理对象包括&#xff1a;dm_db_*&#…

关于ORA-01187: cannot read from file because it failed verification tests 的处理方法

环境&#xff1a;OELOracle 11.2.0.3physical standby 问题描述&#xff1a;查询dba_temp_files试图时显示Ora-01187错误号&#xff1b; ORA-01187: cannot read from file because it failed verification tests ORA-01110: data file 201: /oradata/seven/temp01.dbf 重现下…

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

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

java字符流和字节流的区别_java字符流与字节流的区别是什么

java中字符流与字节流的区别&#xff1a;1、字节流操作的基本单元为字节&#xff1b;字符流操作的基本单元为Unicode码元。2、字节流默认不使用缓冲区&#xff1b;字符流使用缓冲区。3、字节流通常用于处理二进制数据&#xff0c;实际上它可以处理任意类型的数据&#xff0c;但…

IEPNGFix:Unclickable children of element 解决办法

以前我有写过一篇关于让IE6支持png半透明图片的方法&#xff0c;这期间这一神器一直发挥了很大的作用&#xff0c;并且没有出现过什么差错&#xff0c;直到昨天。 昨天同事做的一个项目因为设计图的关系&#xff0c;所以实现起来用到了很多position定位的属性&#xff0c;这里…

ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper

许多时候我们会遇到如下场景 在写一个编辑数据的页面时&#xff0c;我们通常会写如下代码 1: <input type"text" value<%ViewData["title"] %> name"title" /> 由前篇我们所讲的Helper演化&#xff0c;我们思考&#xff0c;对于这种…

Tensorflow中查看gpu是否可用

Tensorflow中查看gpu是否可用 使用tf.test.is_gpu_available()函数可直接返回 import tensorflow as tf tf.test.is_gpu_available() Tensorflow测试程序 # Python import tensorflow as tf hello tf.constant(Hello, TensorFlow!) sess tf.Session() print(sess.run(hell…

websphere一直安装部署_WebSphere集群安装配置及部署应用说明

《WebSphere集群安装配置及部署应用说明》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《WebSphere集群安装配置及部署应用说明(27页珍藏版)》请在人人文库网上搜索。1、WebSphere6.1集群安装配置及部署应用说明1 安装Webphere1.1 安装WebSphere ND 6.11、 双击launc…