首页 文章 精选 留言 我的

精选列表

搜索[图形化操作],共10026篇文章
优秀的个人博客,低调大师

SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作

前言 什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 参考资料:https://mybatis.org/mybatis-3/zh Jar包说明 本次采用mybatis-spring-boot-starter_v2.1.1版本,对应的MyBatis版本为3.5.3。并且数据库适应MySQL_v5.6.46版本,因此还需要引入MySQL驱动包。 编码 1.添加MyBatis和MySQL依赖 打开pom.xml文件,添加 xml 复制代码 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> 2.数据库表准备 这里以account表为例子,创建account表 sql 复制代码 CREATE TABLE `account` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `name` varchar(128) NOT NULL COMMENT '用户名', `passwd` varchar(128) NOT NULL COMMENT '密码', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 并且创建对应的实体类Account.java java 复制代码 package org.xujun.springboot.model; /** * <p>Title : Account</p> * <p>Description : Account</p> * <p>DevelopTools : Eclipse_x64_v4.13.0R</p> * <p>DevelopSystem : Windows7</p> * <p>Company : org.xujun</p> * @author : XuJun * @date : 2019年12月18日 下午3:07:27 * @version : 1.0.0 */ public class Account { /** ID **/ private Long id; /** 用户名 **/ private String name; /** 密码 **/ private String passwd; public Account() { super(); } public Account(Long id, String name, String passwd) { super(); this.id = id; this.name = name; this.passwd = passwd; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPasswd() { return passwd; } public void setPasswd(String passwd) { this.passwd = passwd; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Account [id="); builder.append(id); builder.append(", name="); builder.append(name); builder.append(", passwd="); builder.append(passwd); builder.append("]"); return builder.toString(); } } 3.配置SpringBoot的application.properties文件 因为SpringBoot2.x默认使用hikari作为连接池,所以以下为hikari的配置方式 sh 复制代码 # 数据库配置 # spring.datasource.name : 数据源名称 # spring.datasource.driverClassName : 数据库驱动 # spring.datasource.url : 数据库连接地址 # spring.datasource.username : 数据库用户名 # spring.datasource.password : 数据库密码 # spring.datasource.type : 数据库类型 # spring.datasource.hikari.pool-name : 数据库连接池名称 # spring.datasource.hikari.minimum-idle : 最小连接数 # spring.datasource.hikari.maximum-pool-size : 最大连接数 # spring.datasource.hikari.auto-commit : 是否自动提交 # spring.datasource.hikari.idle-timeout : 连接闲置超时时间 # spring.datasource.hikari.max-lifetime : 连接在连接池中的存活时间 # spring.datasource.hikari.connection-timeout : 连接数据库超时时间 # spring.datasource.hikari.connection-test-query : 连接测试语句 spring.datasource.name=mysqlDataSource spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springBoot2?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root spring.datasource.type=com.zaxxer.hikari.HikariDataSource spring.datasource.hikari.pool-name=hikariPool spring.datasource.hikari.minimum-idle=5 spring.datasource.hikari.maximum-pool-size=20 spring.datasource.hikari.auto-commit=true spring.datasource.hikari.idle-timeout=30000 spring.datasource.hikari.max-lifetime=1800000 spring.datasource.hikari.connection-timeout=30000 spring.datasource.hikari.connection-test-query=SELECT 1 4.创建MyBatis的Mapper文件 首先创建AccountMapper.java接口文件 java 复制代码 package org.xujun.springboot.dao; import org.xujun.springboot.model.Account; @Mapper public interface AccountMapper { Integer add(Account ac); } 接着创建AccountMapper.xml文件 xml 复制代码 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.xujun.springboot.dao.AccountMapper"> <insert id="add" parameterType="org.xujun.springboot.model.Account"> INSERT INTO account (name, passwd) VALUES (#{name}, #{passwd}) </insert> </mapper> 注意:在MyBatis的xml配置文件中,SQL语句不可用;结尾 5.编写Controller测试MyBatis插入数据 新增MyBatisController.java java 复制代码 package org.xujun.springboot.controller; import javax.annotation.Resource; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.xujun.springboot.dao.AccountMapper; import org.xujun.springboot.model.Account; @RestController public class MyBatisController { @Resource private AccountMapper accountMapper; @RequestMapping("mybatis") public String mybatis() { Account ac = new Account(); ac.setName("xujun"); ac.setPasswd("654321"); accountMapper.add(ac); return "suc"; } } 6.测试结果 运行项目,并且访问[http://127.0.0.1:8080/mybatis]。结果如下图所示 总结:本文主要讲解了SpringBoot整合MyBatis实现对数据的持久化,整合方式并不难,而对数据的持久化参考MyBatis即可。

优秀的个人博客,低调大师

Java图形化:布局方式

布局方式 FlowLayout:流布局 BorderLayout:边框布局 GridLayout:网格布局 FlowLayout(流布局) 像Word打字,组件从左向右排列,一列排满后自动换下一行。组件默认居中对齐,可以设置左/右对齐。流布局会维持组件的原始大小。流布局是JPanel(面板)的默认布局。容器可以使用setLayout()方法改变布局。 示例代码: import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public class TestLowLayout { public static void main(String[] args) { JFrame jf = new JFrame("流布局Demo"); FlowLayout fl = new FlowLayout(); jf.setLayout(fl); JButton jb1 = new JButton("按钮1"); JButton jb2 = new JButton("按钮2"); jf.add(jb1); jf.add(jb2); jf.setSize(600, 300); jf.setLocation(300, 200); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); } } 图示: BorderLayout(边框布局) 边框布局把整个窗口分成了5个部分: 上北 下南 左西 右东 中 其中,北和南是整行,但是中、西、东都不是整列。一般只会出现2个或3个部分。组件放入时需要指定放在哪个区域,默认在中部。每个部分只能存放一个组件,如果存放多个就会覆盖前面的。如果想存放多个必须借助面板(Panel)。组件在边框布局中不保持原始大小,会充满整个区域,JFrame的默认布局就是边框布局。如果某个部分不出现,这个区域会被出现的部分挤占。 示例代码: import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame; public class TestBorderLayout { public static void main(String[] args) { JFrame jf = new JFrame("BorderLayout窗口"); JButton jb = new JButton("中"); JButton jb1 = new JButton("北"); JButton jb2 = new JButton("南"); JButton jb3 = new JButton("西"); JButton jb4 = new JButton("东"); jf.add(jb); jf.add(jb1,BorderLayout.NORTH); jf.add(jb2,BorderLayout.SOUTH); jf.add(jb3,BorderLayout.WEST); jf.add(jb4,BorderLayout.EAST); jf.setSize(600, 300); jf.setLocation(600, 600); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); } } 图示: GridLayout(网格布局) 把窗口分成几行几列的表格方式,构造时需要指定行数和列数。组件在网状布局中不保持原始大小,会充满整个区域。组件在网状布局中,一个格子只存放一个组件,自动向后走。 示例代码: import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; public class TestGridLayout { public static void main(String[] args) { JFrame jf = new JFrame("网格布局Test"); GridLayout gl = new GridLayout(5,4); jf.setLayout(gl); for (int i=0; i < 20; i++) { JButton jb = new JButton("按钮 "+i); jf.add(jb); } // 自动调整大小 jf.pack(); jf.setLocation(300, 200); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); } } 图示: 应用1:计算器 import java.awt.BorderLayout; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class ComputerTest { public static void main(String[] args) { JFrame jf = new JFrame("计算器"); JTextField jtf = new JTextField("0",20); jf.add(jtf,BorderLayout.NORTH); String[] lab = {"CE","C","+/-","BackS","7","8","9","+","4","5","6","-","1","2","3","*","0",".","=","/"}; JPanel jp = new JPanel(); GridLayout gl = new GridLayout(5,4); jp.setLayout(gl); for (int i=0; i<lab.length; i++) { JButton jb = new JButton(lab[i]); jp.add(jb); } jf.add(jp); // 自动调节窗口大小 jf.pack(); // 禁止改变窗口大小 jf.setResizable(false); jf.setLocation(300, 200); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); } } 图示:

优秀的个人博客,低调大师

阿里云 centos 安装图形化界面

CentOS 7 系统下,本文以 MATE 桌面环境安装进行安装配置说明: 登录服务器,执行如下指令安装桌面环境: #先安装MATEDesktopyumgroupsinstall"MATEDesktop"命令输入之后,会列出一大堆文字的,然后显示这个y/d/n,输入y,按回车下载安装;安装完成,显示下面图片complete #安装好MATEDesktop后,再安装XWindowSystem。 yumgroupsinstall"XWindowSystem"命令输入之后,会列出一大堆文字的,然后显示这个y/d/n,输入y,按回车下载安装; 安装完成 设置默认通过桌面环境启动服务器: systemctlset-defaultgraphical.target systemctlset-defaultmulti-user.target //设置成命令模式 systemctlset-defaultgraphical.target //设置成图形模式 安装完成后,通过 reboot 等指令重启服务器,或者在ECS 服务器控制台重启服务器。 选择第一个,按回车 通过管理终端连接服务器,验证测试安装情况。在ECS控制台,用管理终端登录服务器,查看安装好的桌面。

优秀的个人博客,低调大师

Slowquery —— 图形化显示 MySQL 慢日志平台

Slowquery是一个开源的PHP Web应用程序,旨在帮助数据库管理员(DBA)和开发者更好地管理和监控MySQL数据库的慢查询日志。它提供了一个简单易用的界面,可以方便地查看和分析慢查询日志,并提供了许多有用的功能,例如慢查询邮件报警和自动发送慢查询分析报告等。 以下是主要功能和特点: 显示慢查询日志:提供了一个实时更新的界面,可以显示数据库中的慢查询日志,包括执行时间、执行次数、SQL语句等信息。用户可以通过界面轻松地查看和分析慢查询日志,找到哪些查询是慢查询,并了解它们的执行情况。 慢查询搜索和筛选:提供了强大的搜索和筛选功能,使用户可以快速找到感兴趣的慢查询。用户可以通过执行时间、执行次数、SQL语句等多个维度进行搜索和筛选,还可以对搜索结果进行排序和过滤,以便更好地了解慢查询的情况。 慢查询分析:提供了慢查询分析功能,可以对慢查询进行深入的分析和诊断。它可以将慢查询与数据库的表结构进行关联,显示每个表的查询次数和平均执行时间等信息,使用户更好地了解慢查询的本质和根源。 邮件报警:支持配置邮件报警功能,可以自动发送慢查询分析报告和警报信息给指定的邮箱。用户可以根据需要设置报警阈值和报警时间等参数,以便及时了解数据库的性能问题。 参考了开源工具Anemometer图形展示思路,开发在页面上点击慢SQL,就会自动反馈优化建议,同时也支持自动发送邮件报警功能。 agent客户端慢日志采集分析是结合Percona pt-query-digest工具来实现。 视频演示:https://www.douyin.com/video/7278552026181586216 服务端部署 拉取镜像 shell> docker pull docker.io/hcymysql/slowquery:2023-09-13 启动 shell> docker run -itd -e "TERM=xterm-256color" --privileged --name slowquery -p 80:80 -p 3306:3306 <IMAGE ID> /usr/sbin/init 进入docker里,启动httpd服务 shell> docker exec -it slowquery /bin/bash shell> systemctl start httpd.service ​录入你要监控的MySQL主库配置信息 mysql> INSERT INTO slowquery.dbinfo VALUES (1,'192.168.148.101','test','admin','123456',3306); 客户端部署 进入到slowquery/client_agent_script目录下,把slowquery_analysis.sh脚本拷贝到生产MySQL主库上做慢日志分析推送,并修改里面的配置信息 定时任务(10分钟一次) */10 * * * * /bin/bash /usr/local/bin/slowquery_analysis.sh > /dev/null 2>&1 打开浏览器,输入http://yourIP/slowquery/slowquery.php 慢查询邮件推送报警配置 进入到slowquery/alarm_mail/目录里,修改sendmail.php配置信息 定时任务(每隔3小时慢查询报警推送一次) 0 */3 * * * cd /var/www/html/slowquery/alarm_mail;/usr/bin/php /var/www/html/slowquery/alarm_mail/sendmail.php

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册