当前位置: 首页 > 编程日记 > 正文

Java通过JDBC连接MySQL数据库

代码描述:把前台获取的字段作为查询条件,返回符合条件的记录。

 1 package com.imooc.dao;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.util.ArrayList;
 9 import java.util.List;
10 
11 import com.imooc.bean.Message;
12 
13 /**
14  * 处理与数据库相关的查询操作
15  *
16  */
17 public class MessageDao {
18     public List<Message> queryMessageList(String command,String description){
19         List<Message> messageList = new ArrayList<Message>();
20         try {
21             Class.forName("com.mysql.jdbc.Driver");
22             Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/micro_message", "root", "admin");
23             // StringBuilder速度快适合单线程,StringBuffer适合多线程操作大量数据,String每次都是生成新对象,需要垃圾回收。
24             StringBuilder sb = new StringBuilder("select ID,COMMAND,DESCRIPTION,CONTENT from message where 1=1 ");
25             // String sql = "select ID,COMMAND,DESCRIPTION,CONTENT from message";
26             List<String> paramList = new ArrayList<String>();
27             if(null != command && !"".equals(command)){
28                 sb.append(" and COMMAND=?");
29                 paramList.add(command);
30             }
31             if(null != description && !"".equals(description)){
32                 // MySQL中用%表示任意字符,用空格用于连接
33                 sb.append(" and DESCRIPTION like '%' ? '%'");
34                 paramList.add(description);
35             }
36             PreparedStatement pstmt = conn.prepareStatement(sb.toString());
37             for(int i=0;i<paramList.size();i++){
38                 // 给PreparedStatement中预执行SQL语句追加值
39                 pstmt.setString(i+1, paramList.get(i));
40             }
41             ResultSet rs = pstmt.executeQuery();
42             while(rs.next()){
43                 Message message = new Message();
44                 messageList.add(message);// 这里messageList是个容器,只是对message的引用,所以可以提前放入容器中
45                 message.setId(rs.getString("ID"));
46                 message.setCommand(rs.getString("COMMAND"));
47                 message.setDescription(rs.getString("DESCRIPTION"));
48                 message.setContent(rs.getString("CONTENT"));
49             }
50     }catch (ClassNotFoundException e) {
51         e.printStackTrace();
52     }catch (SQLException e) {
53         e.printStackTrace();
54     }
55     return messageList;
56   }
57     
58 }
59     

转载于:https://www.cnblogs.com/zplogo/p/5958016.html

相关文章:

关于C#调用非托管DLL,报“内存已损坏的”坑,坑,坑

因客户需求&#xff0c;与第三方对接&#xff0c;调用非托管DLL&#xff0c;之前正常对接的程序&#xff0c;却总是报“内存已损坏的异常”&#xff0c;程序进程直接死掉&#xff0c;折腾到这个点&#xff08;2018-05-11 00:26&#xff09;&#xff0c;终于尘埃落定,直接上程序…

python会不会出现内存泄露_Python内存泄漏和内存溢出的解决方案

一、内存泄漏像Java程序一样&#xff0c;虽然Python本身也有垃圾回收的功能&#xff0c;但是同样也会产生内存泄漏的问题。对于一个用 python 实现的&#xff0c;长期运行的后台服务进程来说&#xff0c;如果内存持续增长&#xff0c;那么很可能是有了“内存泄露”。1、内存泄露…

以太坊发展历史回顾

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 以太坊历史 最近历史记录&#xff0c;请查看Taylor Gerring博客发帖。 诞生 2013年末Vitalik Buterin第一次描述了以太坊&#xff0c;作为他研究比…

医学图像分类_TauMed:医学诊断领域中的图像分类测试数据扩增

南京大学智能软件工程实验室iselab.cn摘要&#xff1a;深度学习在医学分类方面取得了长足的进步。但是&#xff0c;在许多现实的环境中&#xff0c;用于训练和测试的数据不足且不平衡&#xff0c;深度学习模型将很容易过度拟合且泛化能力很差。并且由于医院和患者的状况并不总是…

仲兆鹏 160809329 第5次

---恢复内容开始--- 第一题 #include<stdio.h>//输入三个数有小到大排序 int main() {int a;int b;int c;printf("输入三个整数:");scanf("%d %d %d",&a,&b,&c);if(a>c) { ta; ac; ct; } if(b>c) { tb…

promise实现多个请求并行串行执行

早上查资料&#xff0c;偶然发现这个话题&#xff0c;发现自己并不会&#xff0c;于是乎&#xff0c;下来研究了一下。 想想之前我们用jquery写请求的时候&#xff0c;要实现请求的串行执行&#xff0c;我们可能是这么做的。 $.ajax({url: ,data: ,success: function (data) {$…

人工智能和区块链的融合

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 AI与区块链结合&#xff0c;可能性有多大&#xff1f; 人工智能和区块链是促进各行业创新和转型的主要技术&#xff0c;对这一点各行业已达成共识。…

AngularJS学习笔记(3)——通过Ajax获取JSON数据

通过Ajax获取JSON数据 以我之前写的与用户交互的动态清单列表为例&#xff0c;使用JSON前todo.html代码如下&#xff1a; <!DOCTYPE html> <html ng-app"todoApp"> <head> <meta charset"UTF-8"> <title>TO DO List</tit…

python爬取哔哩哔哩视频_荐爬取哔哩哔哩中的cosplay小视频

爬取哔哩哔哩小视频前言&#xff1a;想必大家都对小视频感兴趣吧&#xff0c;今天的爬虫的内容为将哔哩哔哩中的视频下载到本地&#xff0c;今天爬取的网站为URL : https://vc.bilibili.com/p/eden/all#/?tab%E5%BE%A1%E5%AE%85%E6%96%87%E5%8C%96&tagCOSPLAY1. 分析站点a…

区块链双语术语大全

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 这是一个简单而又全面的Blockchain词汇表&#xff0c;用于令人印象深刻的blockchain语言世界。 51% Attack&#xff08;51%攻击&#xff09; 当一…

SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)

五、锁与事务隔离级别 事务隔离级别简单的说&#xff0c;就是当激活事务时&#xff0c;控制事务内因SQL语句产生的锁定需要保留多入&#xff0c;影响范围多大&#xff0c;以防止多人访问时&#xff0c;在事务内发生数据查询的错误。设置事务隔离级别将影响整条连接。 SQL Serve…

开源造轮子:一个简洁,高效,轻量级,酷炫的不要不要的canvas粒子运动插件库...

一&#xff1a;开篇 哈哈哈&#xff0c;感谢标题党的莅临~ 虽然标题有点夸张的感觉&#xff0c;但实际上&#xff0c;插件库确实是简洁&#xff0c;高效&#xff0c;轻量级&#xff0c;酷炫酷炫的咯。废话不多说&#xff0c;先来看个标配例子吧&#xff1a; &#xff08;codepe…

python启动appium服务_python下appium服务的自启动和关闭

最近想把前不久写的webUi框架改写成mobile_Ui,也就是 用于手机端的UI自动化框架&#xff0c;目前已经完成该框架的改写&#xff0c;记录其中一些问题&#xff0c;框架后续会单独写篇幅介绍遇到的第一个问题就是1、python怎么能够自动启动和自动关闭appium服务&#xff0c;这样每…

以太坊源码分析

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 前言&#xff1a;人类正在步入数据时代。如今&#xff0c;全球每天就产生超过500亿GB的数据&#xff0c;据IDC预测&#xff0c;到2025年这一数据将超…

yapi-docker

yapi-docker 转载于:https://www.cnblogs.com/vickey-wu/p/9026153.html

灵活性是原则性基础上的灵活

灵活性是原则性基础上的灵活&#xff0c;没有原则性的灵活是耍流氓。 原则性是质&#xff0c;灵活性是量&#xff0c;灵活性有度的要求&#xff0c;就是不能改变质。转载于:https://www.cnblogs.com/jcode/p/5961867.html

办公室自动化系统_信息化管理建设 公司办公室用自动盖章机贵吗?

办公室自动盖章机的应用我们首先要考虑到底有没有用&#xff0c;之后在考虑贵不贵的问题。自动盖章机也称智能印章&#xff0c;是企业单位建设信息化印章管理方式的一种&#xff0c;过去由于人工盖章和管章效率低&#xff0c;且风险较大&#xff0c;为了避免因印章管理不当引起…

加密货币银行是什么?它又将如何运作?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 比特币曾经承诺&#xff0c;将帮助每个人拥有“属于自己的 银行 ”。但这里需要强调一点&#xff0c;在了解到银行实际提供的众多服务之后&#xff…

【Python】实现将testlink上的用例指定格式保存至Excel,用于修改上传

背景 前一篇博客记录的可以上传用例到testlink指定用例集的脚本&#xff0c;内部分享给了之后&#xff0c;同事希望能将testlink上原有的用例下载下来&#xff0c;用于下次修改上传&#xff0c;所有有了本文脚本。 具体实现 获取用例信息 def download_testcase():""…

Java随机字符串:随机数字字符串,工具类

Java中生成随机数&#xff0c;字符串的工具类 1. 调用方法需要传入生成字符串的长度和需要的类型 生成随机数字 生成随机字母字符串 生成随机字符串数字等 ......... 2. 总共8种类型&#xff0c;具体看工具类中的注释。 1 import java.util.Date;2 import java.util.Random;3 i…

python怎么查看代码错误_python中的错误如何查看

python常见的错误有1.NameError变量名错误2.IndentationError代码缩进错误3.AttributeError对象属性错误4.TypeError类型错误5.IOError输入输出错误6.KeyError字典键值错误具体介绍1.NameError变量名错误报错&#xff1a;>>> print aTraceback (most recent call last…

Facebook的加密货币即将到来会对整个加密货币领域意味着什么

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 Facebook的加密货币即将到来&#xff0c;它对整个加密货币领域意味着什么&#xff1f;这里不仅涉及到用户采用、节点参与&#xff0c;还涉及到合规、…

threadlocal使用场景_深入剖析ThreadLocal

点击上方 IT牧场 &#xff0c;选择 置顶或者星标技术干货每日送达朋友们在遇到线程安全问题的时候&#xff0c;大多数情况下可能会使用synchronized关键字&#xff0c;每次只允许一个线程进入锁定的方法或代码块&#xff0c;这样就可以保证操作的原子性&#xff0c;保证对公共资…

zabbix 监控tomcat实例

zabbix 监控tomcat实例环境:CentOS 7.2zabbix-3.0.5 LTSnginx-1.10.1php-7.0.11mariadb-10.1.18tomcat-9请参看zabbix-3.0.x LTS源码安装配置Tomcat7/8/9安装配置tomcat启用jmxhttp://tomcat.apache.org/tomcat-9.0-doc/monitoring.htmlhttp://docs.oracle.com/javase/6/docs/t…

什么是USDT以及如何使用它?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 什么是USDT&#xff1f; 如果您使用Poloniex或Bittrex交易所交易&#xff0c;那么您可能已经多次见过UDST市场了&#xff0c;您甚至经常使用它。 …

BZOJ3930: [CQOI2015]选数

BZOJ3930: [CQOI2015]选数 Description 我们知道&#xff0c;从区间[L,H]&#xff08;L和H为整数&#xff09;中选取N个整数&#xff0c;总共有(H-L1)^N种方案。 小z很好奇这样选出的数的最大公约数的规律&#xff0c;他决定对每种方案选出的N个整数都求一次最大公约数&#xf…

the job was canceled什么意思_这些英语短语,因为相差一个“the”导致意思大不相同!...

今天有小伙伴在我文章下面留言&#xff0c;说到了两个短语&#xff0c;同样是因为两者之间相差一个“the”而造成了意义完全不同。分别是“out of question”和“out of the question”&#xff0c;第一个没有“the”意思是“毫无疑问、无疑的”意思。第二个则是“不可能的”。…

php中类和对象的操作

在类中用$this指代对象本身。 用self::指代类本身。 $p1 new Person(michael);//向Person类的构造函数__construct中传名字 echo($p1->name);//获取对象p1的public实例属性name(注意没有$) $p1->speak();//调用对象p1的实例方法speak echo(Person::$sex);//获取类变量(s…

关于区块链的知识

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 1 是什么导致了区块链的出现&#xff1f; 互联网的信任缺失导致了区块链技术的出现 在互联网上最缺乏的就是信任了&#xff0c;1993年《纽约客》…

JavaScript 表单与表单验证

JavaScript 表单 JavaScript 表单验证 HTML 表单验证可以通过 JavaScript 来完成。 以下实例代码用于判断表单字段(fname)值是否存在&#xff0c;如果存在&#xff0c;则弹出信息&#xff0c;否则阻止表单提交&#xff1a; JavaScript 实例 function validateForm() { var x d…