MySQLåºç¡Âï¼Âä¹Â7–å¤Â份ä¸Âæ¢å¤ÂãÂÂç¨æ·ä¸ÂæÂÂéÂÂãÂÂåºÂç¨ç¨ÂåºÂè¿ÂæÂÂ¥MySQLæÂÂå¡å¨
ä»Â天è¿Âä¸ÂæÂÂï¼Âæ¯MySQLåºç¡ÂçÂÂæÂÂÃ¥ÂÂä¸ÂæÂÂäºÂï¼Âå¸ÂæÂÂè¿Âä¸Âæ ÂçÂÂMySQLåºç¡ÂçÂ¥è¯Âè½å¤Â对æ¨æÂÂæÂÂ帮å©ï¼ÂÃ¥ÂÂ欢çÂÂè¯Â麻ç¦ç»Âå¾ÂæÂÂä½ÂÃ¥ÂÂæ¥个ä¸Âè¿ÂãÂÂÃ¥ÂÂä½Âä¸ÂæÂÂ请å¤Âå¤Âæ¯æÂÂï¼ÂÃ¥ÂÂé¢ä¼Âæ´æ°è¿Âé¶çÂÂä¸ÂäºÂæÂÂæ¯æ ÂçÂ¥è¯Âç¹ãÂÂ欢è¿Â大家å¨è¯Â论åºä¸Â起讨论æÂÂæ¯ï¼ÂäºÂç¸å¦习ï¼Â
àMySQLçÂÂå¤Â份åÂÂæ¢å¤Â主è¦Âå°±æ¯éÂÂ对æÂÂ们对æ°æ®åºÂæ°æ®çÂÂéÂÂ误æÂÂä½Â导è´çÂÂä¸Âç³»åÂÂé®é¢ÂÃ¥ÂÂåºçÂÂåºÂ对ä¹ÂçÂÂï¼Â
ç¨æ·ä¸ÂæÂÂéÂÂä¸Â辯堬å¸DBAç»Âé«Â级å¼ÂÃ¥ÂÂãÂÂæ®éÂÂå¼ÂÃ¥ÂÂçÂÂä¸Â个账å·使ç¨æÂÂéÂÂï¼Âç¨æÂ¥ä¿Âè¯Âä¸ÂäºÂæ°æ®çÂÂå®Âå ¨åÂÂ表ç»ÂæÂÂçÂÂæ£常维æ¤çÂÂçÂÂï¼Â
è¿ÂæÂÂ¥MySQLæÂÂå¡å¨就æ¯åÂÂå§ÂçÂÂjdbcè¿ÂæÂÂ¥mysqlçÂÂä¸Â个代ç Âï¼Âç°å¨åºæ¬ä¸Âé½ç¨çÂÂmybatisæÂÂè mybatis-plusäºÂãÂÂä½Âæ¯è¿Âæ¯è¦ÂæÂÂæ¡ä¸Âä¸ÂÃ¥ÂÂå§ÂçÂÂæ¹æ³ÂãÂÂ
ä¸ÂãÂÂå¤Â份ä¸Âæ¢å¤Â
æÂÂ们å¨æ¥常å¼ÂÃ¥ÂÂä¸Âå¯è½ä¼Âå¨æÂÂä¸ÂÃ¥ÂȏÂÂÃ¥ÂÂçÂÂè·¯äºÂï¼ÂæÂÂåºÂæÂÂè 表éÂÂçÂÂæ°æ®堨é¨å é¤äºÂãÂÂè¿Â样对æÂÂ们çÂÂä¸Â个æ´个ç ÂÃ¥ÂÂÃ¥ÂÂè¿Âå±Âé½带æÂ¥äºÂä¸Âå°ÂçÂÂæÂÂ失ï¼Â尤堶æ¯ä¼Âä¸ÂéÂÂå·¥ä½Âåºç°è¿Âç§Âä½Â级éÂÂ误ï¼Â估计ãÂÂãÂÂãÂÂ
为äºÂå¨åÂÂçÂÂè¿Âç§Âæ åµæ¶è½ä¸Âæ Âï¼ÂæÂÂ以æÂÂ们è¦Âå¦ä¸Âä¸Âæ°æ®å¤Â份ï¼ÂæÂÂÃ¥ÂÂÃ¥ÂÂ好æ°æ®çÂÂå¤Â份ï¼Âå³使ä¸Âå°Âå¿Âå äºÂï¼ÂæÂÂ们ä¹Âå¯以æ¢å¤ÂãÂÂ
1ãÂÂmysqldump
1.1ãÂÂ使ç¨mysqldumpå¤Â份æ°æ®
æÂÂ们ä¹ÂÃ¥ÂÂä¸Âç´使ç¨åÂÂ为mysqlçÂÂå¯æ§è¡ÂæÂÂ件ï¼Âä½ÂäºÂæÂÂ们mysqlå®Â裠çÂÂç®å½ÂçÂÂbinç®å½Âä¸Âï¼Âàä½Â为MySQL客æ·端ä¸ÂæÂÂå¡端è¿Âè¡Â交äºÂãÂÂå ¶å®Âï¼Âå¨è¿Â个彬ç®å½Âä¸Âè¿ÂæÂÂ许å¤Âå¯æ§è¡ÂæÂÂ件ï¼Âå ¶ä¸Âè¿Â个mysqldumpçÂÂå¯æ§è¡ÂæÂÂ件就æ¯ç¨æÂ¥å¤Â份æ°æ®çÂÂãÂÂ
è¿ÂéÂÂ强è°Âä¸Âä¸ÂÃ¥ÂÂï¼Âmysqldumpæ¯ä¸Â个å¯æ§è¡ÂæÂÂ件ï¼ÂæÂÂ们éÂÂè¦Âå¨å½令è¡Â解éÂÂå¨ï¼Âæ¯Âå¦ÂUnixç³»ç»ÂçÂÂshellæÂÂè WindowsçÂÂcmd.exeï¼Âä¸Âæ§è¡Âå®ÂãÂÂ
æÂ¥ä¸ÂæÂ¥æÂÂ们就æ¥堷ä½ÂçÂÂæÂÂä½Âä¸Âä¸Âå§
1ãÂÂå¤Â份æÂÂå®Âæ°æ®åºÂä¸ÂçÂÂæÂÂå®Â表
å ÂçÂÂå½令ï¼Â
mysqldump [Ã¥Â
¶ä»ÂéÂÂ项] æ°æ®åºÂå [表1ï¼Â表2ï¼Â表3...]
/**Ã¥Â
¶ä»ÂéÂÂ项å¯以æÂÂçÂÂæ¯æ°æ®åºÂè¿ÂæÂ¥çÂÂè´¦å·ï¼Âå°åÂÂï¼Âå¯Âç ÂçÂÂ**/
àåÂÂå¦ÂæÂÂ们è¦Âå¤Â份å¦çÂÂæÂÂ绩表
å ÂæÂÂå¼Âcmdå½令ï¼Âè¾Âå ¥ä¸Âé¢è¿Â个å½令
ç¶åÂÂæÂÂ们å¯以çÂÂå°ï¼Âå 为æ¬身mysqldumpä¹Âæ¯ä¸Â个客æ·端ç¨ÂåºÂï¼Âå¨è¿Âè¡Âå¤Â份æ°æ®æ¶éÂÂè¦Âä¸ÂæÂÂå¡å¨è¿Âè¡ÂéÂÂä¿¡ï¼ÂæÂÂ以æÂÂ们éÂÂè¦Âå¡«åÂÂè´¦å·ãÂÂ主æºãÂÂå¯Âç ÂãÂÂ
å 为mysqldumpçÂÂè¾Âåºå 容è¾Âå¤Âï¼ÂæÂÂ以æÂÂ们ä¸Âè¬ä¼ÂæÂÂè¾Âåºå 容éÂÂå®ÂÃ¥ÂÂå°æÂÂ个æÂÂ件éÂÂï¼ÂèÂÂä¸Âæ¯ç´æÂ¥å¨å±Âå¹Âä¸Âè¾ÂåºãÂÂè¿Â个å°æ¹æÂÂç´æÂ¥å®Âä½Âå°student_score.sql(ä¸Âé¢åÂÂæ¼Âä¸Â个t)ãÂÂè¾ÂåºçÂÂä½Â置就å¨åÂÂé¢çÂÂè·¯å¾Âä¸ÂãÂÂæÂÂ们å¯以æÂÂå¼ÂçÂÂçÂÂï¼Â
-- MySQL dump 10.13 Distrib 5.7.38, for Win64 (x86_64)
--
-- Host: localhost Database: test
-- ------------------------------------------------------
-- Server version 5.7.38-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `student_score`
--
DROP TABLE IF EXISTS `student_score`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `student_score` (
`number` int(10) unsigned NOT NULL COMMENT 'å¦çÂÂid',
`subject` varchar(30) NOT NULL COMMENT 'å¦ç§Â',
`score` tinyint(4) DEFAULT NULL COMMENT 'Ã¥ÂÂæ°',
PRIMARY KEY (`number`,`subject`),
CONSTRAINT `student_score_ibfk_1` FOREIGN KEY (`number`) REFERENCES `student` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='å¦çÂÂæÂÂ绩表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `student_score`
--
LOCK TABLES `student_score` WRITE;
/*!40000 ALTER TABLE `student_score` DISABLE KEYS */;
INSERT INTO `student_score` VALUES (20230101,'MySQLæÂÂæ¯',88),(20230101,'计ç®Âæºç§Âå¦ä¸ÂæÂÂæ¯',78),(20230102,'MySQLæÂÂæ¯',98),(20230102,'计ç®Âæºç§Âå¦ä¸ÂæÂÂæ¯',100),(20230103,'MySQLæÂÂæ¯',61),(20230103,'计ç®Âæºç§Âå¦ä¸ÂæÂÂæ¯',89),(20230104,'MySQLæÂÂæ¯',59),(20230104,'计ç®Âæºç§Âå¦ä¸ÂæÂÂæ¯',55);
/*!40000 ALTER TABLE `student_score` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2023-06-18 4:05:43
è¿ÂéÂÂé¢就æ¯æÂÂ们导åºçÂÂä¸Â个æ°æ®ï¼Âå æ¬表ç»ÂæÂÂãÂÂ表æ°æ®ãÂÂå¦ÂæÂÂè¿Â个表åÂÂé¢被误å ï¼ÂæÂÂè æ³è¦Âå¨堶ä»ÂæÂÂå¡å¨ä¸ÂÃ¥ÂÂ建è¿Â个表ï¼Âç´æÂ¥æ§è¡Âè¿Â个sqlæÂÂ件就è¡ÂäºÂãÂÂ
2ãÂÂå¤Â份æÂÂå®Âæ°æ®åºÂä¸ÂçÂÂæÂÂæÂÂ表
å ÂçÂÂå½令
mysqldump [Ã¥Â
¶ä»ÂéÂÂ项] --databases æ°æ®åºÂ1Ã¥ÂÂï¼Âæ°æ®åºÂ2Ã¥ÂÂï¼Âæ°æ®åºÂ3Ã¥ÂÂ...
æ ·ä¾Âï¼Âè¿Â个å°æ¹æÂÂåªæ¾å½令ï¼Âä¸Âå±Â示æÂÂä½ÂÃ¥ÂÂçÂÂç»ÂæÂÂï¼Â太å¤ÂäºÂï¼Âå°±ä¸Âå±Â示äºÂï¼Â大家èª己å¨çµèÂÂä¸Âè¯Âè¯Âå°±è¡Âï¼Âå¦ÂæÂÂæÂÂé®é¢Âï¼Â欢è¿Âè¯Â论åº讨论ãÂÂ
mysqldump -uroot -hlocalhost -p --databases test test1
3ãÂÂå¤Â份æÂÂæÂÂæ°æ®åºÂçÂÂæÂÂæÂÂ表
å ÂçÂÂå½令
mysqldump [Ã¥Â
¶ä»ÂéÂÂ项] --all-databases
æ ·ä¾Â-ä¸Âå±Â示ï¼Âåªç»Âå½令
mysqldump -uroot -hlocalhost -p --all-databases
1.2ãÂÂ使ç¨sourceè¯Âå¥æ¢å¤Âæ°æ®
å¨å¾Âå°æÂÂ们çÂÂå¤Â份æÂÂ件åÂÂï¼Âå¯以éÂÂè¿Âsourceè¯Âå¥æÂ¥æ§è¡Âå¤Â份æÂÂ件ä¸ÂçÂÂè¯Âå¥ãÂÂ
å Âæ§è¡Âå é¤å½令ï¼Âå¨æÂ¥çÂÂï¼ÂÃ¥ÂÂç°æÂÂ们çÂÂæ°æ®åºÂä¸Âå·²ç»Â没æÂÂè¿Â个表äºÂï¼ÂæÂÂ以æ¥询ä¿ÂÃ¥ÂÂï¼Âè¿Â个æ¶åÂÂæÂÂ们å¨æ§è¡Âè¿Â个å½令ï¼Â
source C:\Users\Administrator\studen_score.sql
ä»Âå¾ä¸Âå¯以çÂÂå°ï¼Âå·²ç»Âæ§è¡ÂæÂÂÃ¥ÂÂï¼ÂæÂÂ们åÂÂÃ¥ÂȾÂ¥ä¸Âä¸Âæ°æ®åºÂï¼ÂçÂÂæ¯å¦å¯以æÂ¥å°æ°æ®ÃÂ
ç»Âè¿Âæ¢å¤ÂÃ¥ÂÂï¼ÂæÂÂ们çÂÂæ°æ®æÂÂè¿ÂÃ¥ÂÂäºÂï¼ÂÃ¥ÂÂä¹ÂÃ¥ÂÂçÂÂä¸Â模ä¸Âæ ·ãÂÂ
æÂÂ以ï¼ÂæÂÂ们åªè¦Âå°Âå¤Â份çÂÂæÂÂ件çÂÂè·¯å¾Âæ¾å°sourceÃ¥ÂÂè¯ÂÃ¥ÂÂé¢ï¼Âå°±å¯以æ§è¡Âå¤Â份æÂÂ件ä¸ÂçÂÂè¯Âå¥ï¼Âä¹Âå°±å¯以æ¢å¤Â表ä¸ÂçÂÂæ°æ®äºÂãÂÂ
2ãÂÂ以æÂÂæ¬形å¼Â导åºæÂÂ导堥
è¿Â个就è¦Âæ¶ÂÃ¥ÂÂå°å®Âé 工ä½Âä¸ÂäºÂï¼Âå®Âé 工ä½Âä¸Âï¼ÂæÂÂ们å¯è½ä¼ÂéÂÂå°å°Â表ä¸ÂçÂÂæ°æ®以æÂÂæÂÂå½¢å¼Âè¿Âè¡Â导åºæÂÂè å°ÂæÂÂæ¬形å¼ÂçÂÂæ°æ®导堥å°表ä¸ÂãÂÂæ¯Âå¦Â说ï¼Âå°Â表ä¸ÂçÂÂæ°æ®å¨Excelä¸Âå±Âç°æÂÂè å°ÂExcelæÂÂ件ä¸ÂçÂÂæ°æ®导堥å°表ä¸ÂãÂÂæ¤æ¶ï¼Âselect…into outfile Ã¥ÂÂload dataè¯Âå¥就è¦Âæ¯棱起æÂ¥äºÂãÂÂï¼Âç®åÂÂNavicatä¸ÂæÂÂç¸åºÂçÂÂÃ¥ÂÂè½å¯以ç´æ¥导åºï¼Âä½Âæ¯åºæŒ½令æÂÂ们è¿Âæ¯è¦ÂæÂÂæ¡ä¸Âä¸Âï¼Âä¸Âè½æÂȾ¯ä¾Âé 工堷ï¼Â
2.1ãÂÂ导åºæ°æ®
å ÂçÂÂSQL
select ... into outfile 'æÂÂ件路å¾Â' [导åºéÂÂ项]
à常ç¨çÂÂ导åºéÂÂ项ï¼Â
- fields terminated by: 表示åÂÂÃ¥ÂÂéÂÂ符ï¼Âä¹Âå°±æ¯åÂÂÃ¥ÂÂçÂÂå¼ä¹Âé´使ç¨ä»Âä¹Â符å·è¿Âè¡ÂÃ¥ÂÂéÂÂï¼Âé»Â认以’\t’ï¼Âä¹Âå°±æ¯å¶表符ï¼ÂÃ¥ÂÂéÂÂï¼Âå¶表符就æ¯é®çÂÂä¸ÂçÂÂtabé®对åºÂçÂÂÃ¥ÂÂ符ï¼ÂæÂÂæÂÂçÂÂæÂÂäºÂè¥干个空格ï¼ÂãÂÂdemoï¼Âfields terminated by ‘,’表示åÂÂÃ¥ÂÂçÂÂå¼以éÂÂå·åÂÂéÂÂ
- fields [optionally] enclosed byï¼Â表示åÂÂå¼Âç¨符ï¼Âä¹Âå°±æ¯æ¯Â个åÂÂçÂÂå¼被ä»Âä¹Â符å·å 裹起æÂ¥ï¼Âé»Â认æ¯空åÂÂ符串’ ‘ãÂÂå¦ÂæÂÂå ä¸ÂoptionallyÃ¥ÂÂåªä¼Âä½Âç¨äºÂÃ¥ÂÂ符串类åÂÂçÂÂÃ¥ÂÂãÂÂdemoï¼Âfieldsàenclosed by ‘ ” ‘表示æ¯Â个åÂÂçÂÂå¼é½被åÂÂå¼Âå·å¼Âèµ·æÂ¥ï¼Â
- lines starting byï¼Â表示è¡Âå¼Âå§Â符ï¼Âä¹Âå°±æ¯æ¯Âä¸Âè¡Â以ä»Âä¹Â符å·å¼Â头ï¼Âé»Â认æ¯空åÂÂ符串’ ‘ãÂÂdemoï¼Âlines starting by ‘%%’表示æ¯Âè¡Âé½æ¯以两个ç¾åÂÂå·å¼Â头çÂÂ
- lines terminated byï¼Â表示è¡Âç»ÂæÂÂ符ï¼Âä¹Âå°±æ¯æ¯Âä¸Âè¡Â以ä»Âä¹Â符å·ç»Âå°¾ï¼Âé»Â认æ¯æ¢è¡Â符’\n’ãÂÂdemoï¼Âlines terminated by ‘$$’表示æ¯Âè¡Âé½以两个ç¾Âå Â符å·ç»Âå°¾
çÂÂæ ·ä¾Âï¼Â
select * from student_score INTO OUTFILE 'C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\student_score.txt';
å ¶ä»ÂçÂÂå°±ä¸Âæ¼Â示äºÂï¼Â大家èª己å¯以æÂÂä½Âä¸Âä¸ÂãÂÂ
使ç¨select … into outfileè¯Âå¥导åºçÂÂæ°æ®ä¼Â被åÂÂå¨å°è¿Âè¡ÂæÂÂå¡å¨ç¨ÂåºÂçÂÂ主æºä¸ÂãÂÂ
3ãÂÂ导堥æ°æ®
å ÂçÂÂå½令
load data [local] infile 'æÂÂ件路å¾Â' into table 表å [导åÂ
¥éÂÂ项]
àå¦ÂæÂÂå¡«å ¥localï¼ÂÃ¥ÂÂ表æÂÂè¦Â导堥çÂÂæ°æ®æÂÂ件å¨è¿Âè¡Â客æ·端çÂÂ主æºä¸Âï¼Âå¦åÂÂå°±æ¯å¨è¿Âè¡ÂæÂÂå¡å¨çÂÂ主æºä¸ÂãÂÂç±äºÂç®åÂÂæÂÂ们çÂÂ客æ·端åÂÂæÂÂå¡å¨é½å¨åÂÂä¸Âå°主æºä¸Âï¼ÂæÂÂ以填ä¸Âå¡«æ æÂÂè°ÂãÂÂ
导堥éÂÂ项åÂÂ导åºéÂÂ项类似ï¼Âå°±ä¸Âå¤Âä»Âç»ÂäºÂãÂÂ
æ ·ä¾Âï¼Â
load data infile 'C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\student_score.txt' into table student_score;
äºÂãÂÂç¨æ·ä¸ÂæÂÂéÂÂ
1ãÂÂç¨æ·管çÂÂ
å¨æÂÂ们å®Â裠MySQLçÂÂæ¶åÂÂï¼ÂæÂÂ们就åÂÂ建äºÂä¸Â个rootçÂÂç¨æ·ï¼Âä¹ÂÃ¥ÂÂ使ç¨çÂÂé½æ¯rootãÂÂå ¶å®Âå®Â裠çÂÂæ¶åÂÂï¼Âä¹Âä¼Âèªå¨åÂÂ建ä¸ÂäºÂå«çÂÂç¨æ·ï¼Âè¿ÂäºÂç¨æ·é½被åÂÂå¨å°mysqlæ°æ®åºÂçÂÂuser表ä¸ÂãÂÂæÂÂ们å¯以å ÂçÂÂçÂÂèª己çÂÂæÂÂå¤Âå°Â个ç¨æ·ï¼ÂæÂÂè¿Âè¾¹å ä¸Ârootä¸Âå ±æ¯ä¸Â个
é¤äºÂroot以å¤ÂçÂÂç¨æ·é½æ¯æÂÂç¹æ®Âç¨å¤ÂçÂÂï¼Âä¸Âè½ç¨äºÂ客æ·端è¿ÂæÂ¥ãÂÂ
1.1ãÂÂÃ¥ÂÂ建ç¨æ·
àæÂÂ们å¯以使ç¨create user è¯Âå¥åÂÂ建å¤Â个å¯以使ç¨客æ·端è¿ÂæÂ¥æÂÂå¡å¨çÂÂç¨æ·ãÂÂå¨åÂÂ建ç¨æ·æ¶ï¼Âä¸Âè¬è¦ÂæÂÂå®Â3项å 容ï¼Â
- ç¨æ·åÂÂï¼Â
- 主æºå–æÂÂæÂÂ客æ·端å¯以å¨é£äºÂæºå¨ä¸Âå¯å¨ï¼Âipå°åÂÂä¹Âå¯以ï¼Âï¼Âå¦ÂæÂÂçÂÂçÂ¥åÂÂé»Â认å¼为âÂÂ%âÂÂï¼Â表示该ç¨æ·任æÂÂ主æºä¸Âé½å¯以å¯å¨客æ·端ï¼Â
- å¯Âç Â-å¦ÂæÂÂçÂÂç¥表示æ¤ç¨æ·æÂÂä¸ÂéÂÂè¦Âå¯Âç Â
æ ·ä¾Âï¼Â
create user 'testuser'@'localhost' identified by '88888888';
ä¸Âé¢ä»Âç»ÂçÂÂç¨æ·åÂÂÃ¥ÂÂ主æºåÂÂé½被åÂÂå¼Âå·å¼Âèµ·æÂ¥ï¼Âå ¶å®Âè¿ÂéÂÂçÂÂç¨æ·åÂÂÃ¥ÂÂ主æºåÂÂé½ä¸Âå å«ç¹æ®ÂÃ¥ÂÂ符ï¼Âä¸Âç¨å¼Âå·å¼Âèµ·æÂ¥ä¹Âå¯以ãÂÂå¦ÂæÂÂæÂÂç¹æ®ÂÃ¥ÂÂ符éÂÂè¦Â注æÂÂä¸Âä¸Âï¼Âå¿ é¡»è¦Âç¨å¼Âå·å¼Âèµ·æÂÂ¥
使ç¨æ°建çÂÂç¨æ·ç»å½Âè¿ÂæÂ¥æÂÂå¡å¨æÂÂÃ¥ÂÂãÂÂÃÂ
éÂÂè¿Âä¸Âå¾å¯以çÂÂå°ï¼Âæ°ç¨æ·å¾ÂæÂÂéÂÂéÂÂ常çÂÂå°Âï¼Âæ æ³ÂæÂ¥çÂÂå°堶ä»ÂçÂÂæ°æ®åºÂï¼Âä¹Âæ æ³ÂæÂÂä½Âå ¶ä»ÂçÂÂæ°æ®åºÂãÂÂå Âä»Âç»ÂæÂÂä¹Âä¿®æ¹å¯Âç ÂÃ¥ÂÂå é¤ç¨æ·ï¼ÂæÂÂ们åÂÂæ¥讲æÂÂä¹Âç»Âç¨èµÂæÂÂéÂÂãÂÂ
1.2ãÂÂä¿®æ¹å¯Âç ÂÃÂ
å¯以éÂÂè¿Âalter user è¯Âå¥为æÂÂ个ç¨æ·修æ¹å¯Âç Â
alter user 'testuser'@'localhost' identified by '12345678';
àtestuserè¿Â个ç¨æ·çÂÂå¯Âç Âå°±ç±88888888æ¹为12345678äºÂãÂÂ
1.3ãÂÂå é¤ç¨æ·
å¦ÂæÂÂæÂÂ们è§Âå¾ÂæÂÂ个ç¨æ·没æÂÂÃ¥ÂÂå¨çÂÂå¿ è¦ÂäºÂï¼ÂÃ¥ÂÂå¯以使ç¨drop userå é¤å®Â
drop user testuser@localhost;
å¯以çÂÂå°æÂÂ们çÂÂtestuserç¨æ·已ç»Â被å é¤äºÂÃÂ
2ãÂÂæÂÂéÂÂ管çÂÂ
2.1ãÂÂæÂÂäºÂæÂÂéÂÂ
æÂÂ们å¯以使ç¨grantè¯Âå¥æ¥为æÂÂ个ç¨æ·æÂÂäºÂæÂÂéÂÂï¼Âå ÂçÂÂ模æ¿ï¼Â
grant æÂÂéÂÂÃ¥ÂÂ称
on åºÂç¨级å«
to 'ç¨æ·åÂÂ'@'主æºåÂÂ'
[with grant option]
1ãÂÂæÂÂéÂÂÃ¥ÂÂ称
MySQLä¸ÂæÂÂä¾ÂäºÂ许å¤Âç§Âç±»çÂÂæÂÂéÂÂï¼ÂæÂÂéÂÂä¸ÂÃ¥ÂÂï¼Âå¯è¿Âè¡ÂçÂÂæÂÂä½Âä¹Âä¸ÂÃ¥ÂÂãÂÂåªæÂÂè¿Â个ç¨æ·被èµÂäºÂäºÂé£äºÂæÂÂéÂÂæÂÂå¯以æÂÂä½Âè¿ÂäºÂæÂÂéÂÂå çÂÂå½令ãÂÂMySQLæÂÂä¾ÂçÂÂæÂÂéÂÂÃ¥ÂÂ称åÂÂæÂÂè¿°å¦Âä¸Âï¼Â
ÃÂ
è¿Â表éÂÂé¢çÂÂåªæ¯éÂÂæÂÂæÂÂéÂÂï¼Âè¿ÂæÂÂä¸Âæ¹å¨æÂÂæÂÂéÂÂçÂÂæÂÂéÂÂï¼Âç¨çÂÂä¸Âå¤Âï¼ÂæÂÂ場趣çÂÂå¯以èª己å»äºÂ解ä¸Âä¸ÂãÂÂÃÂ
çÂÂå®Âè¿ÂäºÂä½ æ¯ä¸Âæ¯已ç»Âå¼Âå§Âæ ÂäºÂï¼Âä¸Âè¦ÂçÂÂæÂ¥ï¼Âä½ åªéÂÂè¦ÂæÂÂæ¡åºæÂÂå¢Âå æ¹æÂ¥çÂÂå½令就好äºÂãÂÂæ¯Âå¦ÂselectãÂÂinsertãÂÂupdateãÂÂdeleteãÂÂcreateãÂÂalterãÂÂdropçÂÂ
2ãÂÂåºÂç¨级å«
è¿ÂéÂÂ主è¦Âä»Âç»Âå 个常ç¨çÂÂå°±OKå¦
- à.ï¼Â代表堨å±Â级å«ãÂÂå ¨å±Â级å«çÂÂæÂÂéÂÂä½Âç¨äºÂä»»ä½Âæ°æ®åºÂä¸ÂçÂÂä»»ä½Â对象ï¼Â诸å¦Â表ãÂÂè§Âå¾çÂÂï¼Âï¼Â
- æ°æ®åºÂÃ¥ÂÂ.*ï¼Â代表æ°æ®åºÂ级å«ãÂÂæ°æ®åºÂ级å«çÂÂæÂÂéÂÂä½Âç¨äºÂæÂÂå®Âæ°æ®åºÂä¸ÂçÂÂä»»ä½Â对象ï¼Â
- æ°æ®åºÂÃ¥ÂÂ.表åÂÂï¼Â代表表级å«ãÂÂ表级å«çÂÂæÂÂéÂÂä½Âç¨äºÂ表ä¸ÂçÂÂä»»ä½ÂÃ¥ÂÂãÂÂ
3ãÂÂwith grant option
å¦ÂæÂÂå¨使ç¨grantè¯Âå¥为æÂÂ个ç¨æ·æÂÂäºÂæÂÂéÂÂæ¶添å äºÂwith grant optionÃ¥ÂÂå¥ï¼ÂÃ¥ÂÂ表示该ç¨æ·å¯以å°Âèª己æÂ¥æÂÂçÂÂæÂÂéÂÂæÂÂäºÂä»Â人ãÂÂ
rootç¨æ·é»Â认æÂ¥æÂÂæÂÂé«ÂæÂÂéÂÂï¼Âå®Âå¯以æÂÂä»»ä½ÂæÂÂéÂÂæÂÂäºÂå ¶ä»Âç¨æ·ãÂÂ
demoï¼Â
mysql> create user 'testuser'@'localhost' identified by '88888888';
Query OK, 0 rows affected (0.00 sec)
mysql> grant select on *.* to testuser@localhost with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> grant update on *.* to testuser@localhost with grant option;
Query OK, 0 rows affected (0.00 sec)
à堶ä»ÂçÂÂ大家å¯以èª己å»è¯Âä¸Âä¸Âï¼Âè¿ÂéÂÂä¸ÂÃ¥ÂÂå¤ÂçÂÂå±Âå¼ÂãÂÂ
2.2ãÂÂæÂ¥çÂÂæÂÂéÂÂ
æÂÂ们å¯以使ç¨show grantsè¯Âå¥æÂ¥çÂÂæÂÂ个ç¨æ·çÂÂæÂÂéÂÂ
模æ¿ï¼Â
show grants for 'ç¨æ·åÂÂ'@'主æºåÂÂ';
demoï¼ÂÃÂ
mysql> show grants for testuser@localhost;
+-------------------------------------------------------------------------+
| Grants for testuser@localhost |
+-------------------------------------------------------------------------+
| GRANT SELECT, UPDATE ON *.* TO 'testuser'@'localhost' WITH GRANT OPTION |
+-------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
2.3ãÂÂ移é¤æÂÂéÂÂ
ç»ÂæÂÂ个ç¨æÂ፤Ȏ¤æÂÂéÂÂæ¶ï¼ÂéÂÂè¦Â使ç¨revokeè¯ÂÃ¥ÂÂ¥
模æ¿ï¼Â
revoke æÂÂéÂÂÃ¥ÂÂ称
on åºÂç¨级å«
from 'ç¨æ·åÂÂ'@'主æºåÂÂ'
demoï¼Â
mysql> revoke update on *.* from testuser@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for testuser@localhost;
+-----------------------------------------------------------------+
| Grants for testuser@localhost |
+-----------------------------------------------------------------+
| GRANT SELECT ON *.* TO 'testuser'@'localhost' WITH GRANT OPTION |
+-----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
ä¸ÂãÂÂåºÂç¨ç¨ÂåºÂè¿ÂæÂÂ¥MySQLæÂÂå¡å¨
å¨å®Âç°è¾Â为å¤ÂæÂÂçÂÂåºÂç¨æ¶ï¼ÂæÂÂ们ä¸Âè¬使ç¨传ç»ÂçÂÂç¼Âç¨Âè¯Âè¨Âè¿Âè¡Âå®Âç°ãÂÂæ¯Âå¦ÂCãÂÂJavaãÂÂPHPãÂÂPythonçÂÂãÂÂè¿ÂäºÂåºÂç¨产çÂÂçÂÂæ°æ®ä¸Â莽æ¯ä¿ÂÃ¥ÂÂå¨DBMSéÂÂé¢ï¼ÂMySQLä¹Âæ¯堶ä¸ÂãÂÂè¿Â个å°æ¹就以Java为ä¾Âç»Â大家ä»Âç»Âå¦Âä½Âç¨ç¼Âç¨Âè¯Âè¨ÂÃ¥ÂÂMySQLæÂÂå¡å¨è¿Âè¡Âç¸äºÂãÂÂ
1ãÂÂjdbcè§ÂèÂÂ
é¤äºÂMySQL以å¤Âï¼Âå¸Âåºç¨çÂÂæ¯Âè¾ÂçÂÂDBMSè¿ÂæÂÂOracleãÂÂSQL serverãÂÂpgsqlçÂÂãÂÂæÂÂ以Javaè¿Âè¾¹æÂÂä¸Â个jdbcï¼ÂJava database connectivityï¼ÂçÂÂè§ÂèÂÂãÂÂå®Âè§Âå®ÂäºÂ使ç¨Java访é®DBMSçÂÂæ¥骤ï¼Âä¸Â管å°ÂæÂ¥æÂÂ们访é®åªä¸Âç§Âï¼ÂæÂÂç §å®ÂçÂÂè§ÂèÂÂæÂÂä½Âæ¥骤åÂÂ没é®é¢Âå¦ãÂÂ
é¦Âå Âè¦Âæ¯棱起jdbcÃ¥ÂÂæÂÂ们è¦Âå Âå»MySQLå®Âç½Âä¸Âè½½ä¸Â个jarå æÂÂè ç´æÂ¥å»mavenä¸Âä¸Âè½½ä¹Âè¡ÂãÂÂçÂÂ揪è¡ÂéÂÂæ©ãÂÂ
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
2ãÂÂdemo
ç¶åÂÂæÂÂ们就å¼Âå§Âå ÂæÂÂ代ç ÂÃ¥ÂÂèµ·æÂ¥ï¼Â
import java.sql.*;
public class JdbcDemo {
public static final String URL = "jdbc:mysql://localhost:3306/test?user=root&password=root123321";
// public static final String URL = "jdbc:mysql://localhost:3306/test?user=root&password=root123321&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC";
public static final String driver = "com.mysql.jdbc.Driver";
// public static final String driver = "com.mysql.cj.jdbc.Driver";
public static void main(String[] args) throws Exception{
//1.å 载驱å¨ç¨ÂåºÂ
Class.forName(driver);
//2.è·å¾Âæ°æ®åºÂé¾æÂÂ¥
Connection conn = DriverManager.getConnection(URL);
//3.éÂÂè¿Âæ°æ®åºÂçÂÂè¿ÂæÂ¥æÂÂä½Âæ°æ®åºÂï¼Âå®Âç°å¢Âå æ¹æÂÂ¥
//çÂÂæÂÂstatement对象ï¼Âæ§è¡Âsql
Statement stmt = conn.createStatement();
//æ§è¡Âsqlè¯Âå¥ï¼Â并è¿ÂÃ¥ÂÂç»ÂæÂÂ
ResultSet rs = stmt.executeQuery("select * from student");
//4.å¤ÂçÂÂæ°æ®åºÂçÂÂè¿ÂÃ¥ÂÂç»ÂæÂÂ(使ç¨ResultSetç±»)
while(rs.next()){
int number = rs.getInt("id");
String name = rs.getString("name");
String major = rs.getString("major");
System.out.println(number + "\t" + name + "\t" + major);
}
//Ã¥Â
³éÂÂè¿ÂæÂ¥ï¼ÂéÂÂæ¾èµÂæºÂ
//Ã¥Â
³éÂÂç»ÂæÂÂéÂÂ
rs.close();
//Ã¥Â
³éÂÂæ§è¡Â
stmt.close();
//Ã¥Â
³éÂÂè¿ÂæÂÂ¥
conn.close();
}
}
å¨代ç ÂéÂÂé¢å¯è½ä¼Âå 为çÂÂæÂÂé®é¢Â导è´驱å¨æÂÂé®é¢Âï¼Â两个éÂÂé¢éÂÂæ©ä¸Â个符åÂÂçÂÂæÂÂå°±è¡ÂãÂÂå¦å¤Âè¿Â个å°æ¹为äºÂæ´å ç´è§ÂçÂÂå®Âç°jdbcè¿ÂæÂ¥æ°æ®åºÂçÂÂæ¥骤ï¼ÂæÂÂ以å¨mainä¸Âé¢使ç¨äºÂthrows exceptionãÂÂ忽çÂ¥æÂÂÃ¥ÂÂ个æ¹æ³Âå¯è½åºç°çÂÂå¼Â常ï¼Âå®Âé 工ä½Âï¼ÂæÂÂ们è¦Â对å¼Â常åÂÂå¿ è¦Âå¤ÂçÂÂãÂÂ
Ã¥ÂÂæÂÂ代ç Âï¼Â
1ãÂÂå 载驱å¨类
àcom.mysql.jdbc.Driver/com.mysql.cj.jdbc.Driveræ¯MySQL驱å¨类çÂÂç±»åÂÂãÂÂClass.forName(driver)è¯Âå¥çÂÂä½Âç¨就æ¯说æÂÂæÂÂ们ç°å¨使ç¨çÂÂMySQLçÂÂ驱å¨ç¨ÂåºÂæÂ¥è¿ÂæÂÂ¥MySQLæÂÂå¡å¨ãÂÂå¦ÂæÂÂéÂÂè¦Âè¿ÂæÂ¥å«çÂÂDBMSï¼ÂéÂÂè¦Âå¡«å ¥ç¸åºÂçÂÂ驱å¨åÂÂãÂÂ
2ãÂÂè·å¾Âæ°æ®åºÂè¿ÂæÂÂ¥
è°Âç¨DriverManager.getConnectionæ¹æ³Âä¸ÂMySQLæÂÂå¡å¨ç®ÂÃ¥ÂÂè¿ÂæÂ¥ï¼Â该æ¹æ³ÂæÂ¥æ¶ä¸Â个åÂÂ符串ä½Â为åÂÂæ°ãÂÂ
Ã¥ÂÂè®®://主æºåÂÂ?user=ç¨æ·åÂÂ&password=å¯Âç Â[&ç¼Âç Âæ ¼å¼Â]
- Ã¥ÂÂè®®ï¼Â代表éÂÂç¨é£ç§ÂÃ¥ÂÂè®®ä¸ÂæÂÂå¡å¨è¿Âè¡Âæ²ÂéÂÂãÂÂè¿ÂéÂÂå¡«å ¥jdbc.mysql就好äºÂï¼Â
- 主æºåÂÂï¼Â代表æÂÂå¡å¨æÂÂå¨çÂÂ主æºçÂÂÃ¥ÂÂÃ¥ÂÂæ¯åÂ¥ãÂÂ代ç Âä¸ÂçÂÂ示ä¾Âæ¯localhostï¼Â表åÂÂæÂÂå¡å¨就å¨æ¾ºè¿Âè¡Âï¼Â
- ç¨æ·åÂÂï¼Â代表以é£个ç¨æ·çÂÂ身份ä¸ÂæÂÂå¡å¨建ç«Âè¿ÂæÂ¥ãÂÂ代ç Âä¸Âæ¯rootï¼Â
- å¯Âç Âï¼Âç¨æ·对åºÂçÂÂå¯Âç ÂãÂÂ代ç Âä¸Âæ¯rootç¨æ·çÂÂå¯Âç Âroot123321ãÂÂ
3ãÂÂçÂÂæÂÂStatement对象
MySQLè¯Âå¥对åºÂçÂÂå°±æ¯Statementï¼ÂæÂÂ们éÂÂè¦Âè°Âç¨connectionç±»çÂÂcreateStatementæ¹æ³ÂÃ¥ÂÂ建ä¸Â个Statement对象ãÂÂ
4ãÂÂæ§è¡Âè¯Âå¥并è·åÂÂç»ÂæÂÂéÂÂ对象
Statementç±»æÂÂä¾ÂäºÂä¸Â个executeQueryçÂÂæ¹æ³ÂæÂ¥æ§è¡Âæ¥询è¯Âå¥ï¼ÂæÂÂ们åªéÂÂè¦Âå°Âç¸åºÂçÂÂè¯Âå¥ä½Â为该æ¹æ³ÂçÂÂÃ¥ÂÂæ°å³å¯ãÂÂexecuteQueryæ¹æ³Âè¿ÂÃ¥ÂÂä¸Â个åÂÂ为ResultSetç±»åÂÂçÂÂ对象ï¼Â该对象代表æ¥询è¯Âå¥æ§è¡ÂÃ¥ÂÂçÂÂç»ÂæÂÂéÂÂãÂÂ
5ãÂÂå¤ÂçÂÂç»ÂæÂÂéÂÂ
å¨è°Âç¨executeQueryæ¹æ³Âæ§è¡ÂäºÂæ¥询è¯Âå¥并å¾Âå°ResultSet对象åÂÂï¼Âå°±å¯以éÂÂè¿ÂResultSet对象çÂÂæ¹æ³Âæ¥读åÂÂç»ÂæÂÂéÂÂçÂÂå 容äºÂãÂÂ
ResultSet对象å é¨维æ¤äºÂä¸Â个åÂÂéÂÂï¼Âç¨æÂ¥æ Âè®°å½ÂÃ¥ÂÂæ£å¨å¤ÂçÂÂç»ÂæÂÂéÂÂä¸ÂçÂÂé£æ¡记å½Âï¼Âè¿Â个åÂÂéÂÂæÂÂ们称ä¹Â为cursorãÂÂï¼Âè¿Â个å°æ¹å¯以çÂÂ解æÂÂ们åÂÂé¢ä»Âç»ÂçÂÂ游æ Âï¼Â类似äºÂæÂÂ游æ Âæ¾å¨循ç¯éÂÂé¢äºÂï¼Âdoneé»Â认为0ï¼Â没æÂÂè®°å½ÂäºÂå°±æ¹为1è·³åº循ç¯ãÂÂ大家没å°象äºÂå¯以åÂȌÂÂé¢çÂÂçÂÂï¼Â
ResultSet对象çÂÂnextæ¹æ³Âç¨äºÂè°Âæ´cursoræÂÂÃ¥ÂÂè®°å½ÂçÂÂä½Âç½®ï¼Âæ¯Âè°Âç¨ä¸Â次nextæ¹æ³Âï¼Âcursorå°±æÂÂÃ¥ÂÂä¸Âä¸Âæ¡记å½ÂãÂÂå¨cursoræÂÂÃ¥ÂÂç»ÂæÂÂéÂÂä¸ÂçÂÂè®°å½Âä¹ÂÃ¥ÂÂï¼Âå°±å¯以éÂÂè¿ÂResultSet对象çÂÂä¸Âç³»åÂÂgetæ¹æ³Âæ¥读åÂÂç»ÂæÂÂéÂÂè®°å½Âä¸ÂæÂÂ个åÂÂçÂÂå¼äºÂãÂÂè¿ÂäºÂgetæ¹æ³Âå¯以æÂ¥æ¶åÂÂÃ¥ÂÂæÂÂè 该åÂÂå¨ç»ÂæÂÂéÂÂä¸ÂçÂÂä½Âç½®ä½Â为åÂÂæ°ãÂÂ
ä¾Âå¦Âï¼ÂgetString(”name”)表示è·åÂÂç»ÂæÂÂè®°å½Âä¸ÂÃ¥ÂÂÃ¥ÂÂ为nameçÂÂÃ¥ÂÂçÂÂå¼ï¼ÂgetString(1)表示ç»ÂæÂÂéÂÂè®°å½Âä¸Â第ä¸Â个åÂÂçÂÂå¼ãÂÂ
常ç¨çÂÂgetæ¹æ³Âï¼Â
- getStringï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂStringç±»åÂÂè¿ÂÃ¥ÂÂï¼Â
- getBooleanï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂBooleanç±»åÂÂè¿ÂÃ¥ÂÂï¼Â
- getByteï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂByteç±»åÂÂè¿ÂÃ¥ÂÂï¼Â
- getShortï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂShortç±»åÂÂè¿ÂÃ¥ÂÂï¼Â
- getIntï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂIntç±»åÂÂè¿ÂÃ¥ÂÂï¼Â
- getLongï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂLongç±»åÂÂè¿ÂÃ¥ÂÂï¼Â
- getFloatï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂFloatç±»åÂÂè¿ÂÃ¥ÂÂï¼Â
- getDoubleï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂDoubleç±»åÂÂè¿ÂÃ¥ÂÂï¼Â
- getDateï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂDateç±»åÂÂè¿ÂÃ¥ÂÂï¼Â
- getTimeï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂTimeç±»åÂÂè¿ÂÃ¥ÂÂï¼Â
- getTimestampï¼Âå°Âç»ÂæÂÂéÂÂä¸Â对åºÂçÂÂÃ¥ÂÂçÂÂå¼转为Javaä¸ÂçÂÂTimestampç±»åÂÂè¿ÂÃ¥ÂÂãÂÂ
代ç Âä¸Âè·åÂÂå°æ°æ®åÂÂæ¼æÂ¥æÂÂä¸Â个åÂÂ符串ãÂÂ
6ãÂÂå ³éÂÂè¿ÂæÂÂ¥
该æ¥骤ç¨æÂ¥éÂÂæ¾è¿ÂæÂ¥è¿Âç¨Âä¸Âå ç¨çÂÂÃ¥ÂÂç§ÂèµÂæºÂ
ç»ÂæÂÂå¦Âä¸Âï¼Â
3ãÂÂæ§è¡Âæ´æ°åÂÂå é¤è¯ÂÃ¥ÂÂ¥
StatementçÂÂexecuteQueryæ¹æ³Âæ¯ç¨æÂ¥æ§è¡Âæ¥询è¯Âå¥çÂÂãÂÂå¦ÂæÂÂæÂÂ们æ³è¦Âæ§è¡ÂupdateãÂÂdeleteè¯Âå¥çÂÂè¯Âï¼Âå°±å¾Â使ç¨executeUpdateæ¹æ³ÂäºÂãÂÂ
import java.sql.*;
public class JdbcUpdateDemo {
public static final String URL = "jdbc:mysql://localhost:3306/test?user=root&password=root123321";
// public static final String URL = "jdbc:mysql://localhost:3306/test?user=root&password=root123321&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC";
public static final String driver = "com.mysql.jdbc.Driver";
// public static final String driver = "com.mysql.cj.jdbc.Driver";
public static void main(String[] args) throws Exception{
//1.å 载驱å¨ç¨ÂåºÂ
Class.forName(driver);
//2.è·å¾Âæ°æ®åºÂé¾æÂÂ¥
Connection conn = DriverManager.getConnection(URL);
//3.éÂÂè¿Âæ°æ®åºÂçÂÂè¿ÂæÂ¥æÂÂä½Âæ°æ®åºÂï¼Âå®Âç°å¢Âå æ¹æÂÂ¥
//çÂÂæÂÂstatement对象ï¼Âæ§è¡Âsql
Statement stmt = conn.createStatement();
//æ§è¡Âsqlè¯Âå¥ï¼Â并è¿ÂÃ¥ÂÂç»ÂæÂÂ
int update = stmt.executeUpdate("update student set name='å¼ ä¸Â' where id=20230101");
int delete = stmt.executeUpdate("delete from student where id=20230106");
//4.å¤ÂçÂÂæ°æ®åºÂçÂÂè¿ÂÃ¥ÂÂç»ÂæÂÂ(使ç¨ResultSetç±»)
System.out.println(update);
System.out.println(delete);
//Ã¥Â
³éÂÂè¿ÂæÂ¥ï¼ÂéÂÂæ¾èµÂæºÂ
//Ã¥Â
³éÂÂæ§è¡Â
stmt.close();
//Ã¥Â
³éÂÂè¿ÂæÂÂ¥
conn.close();
}
}
ÃÂ
4ãÂÂ使ç¨PreparedStatement
å¨ç¼ÂÃ¥ÂÂåºÂç¨ç¨ÂåºÂæ¶ï¼Âå¾Âå¾ÂéÂÂè¦Âå¨æÂ¥æ¶å°ç¨æ·è¾Âå ¥çÂÂÃ¥ÂÂæ°åÂÂï¼ÂæÂÂå¯以æ¼裠起è¦ÂÃ¥ÂÂéÂÂç»ÂMySQLæÂÂå¡å¨çÂÂè¯Âå¥ï¼Âè¿Âå¾Âå¾Âä¼Âå¼ÂÃ¥ÂÂSQL注堥çÂÂé£Âé©ãÂÂ为äºÂé¿å ÂSQL注堥çÂÂÃ¥ÂÂçÂÂï¼ÂæÂÂ们åºÂ该使ç¨PrepareStatementæ¥代æ¿StatementãÂÂÃ¥ÂÂèÂÂæÂÂæ¡£1ï¼ÂÃ¥ÂÂèÂÂæÂÂæ¡£2ãÂÂPrepareStatementçÂÂæ¹æ³Â就类似ä¸Âç°å¨çÂÂmybatisä¸Âå ä½Â符ä¸Âæ ·ï¼Âå°±æ¯é²æ¢ç¨æ·è¾Â堥导è´çÂÂSQL注堥é®é¢ÂãÂÂ使ç¨PrepareStatementå¯以æÂÂæÂÂé¿å ÂSQL注堥çÂÂé®é¢ÂÃ¥ÂÂçÂÂãÂÂ
MySQLåºç¡ÂçÂÂå ¨é¨å 容就å°æ¤ç»ÂæÂÂäºÂï¼Âå¸ÂæÂÂå¯以对你MySQLå¦习æÂÂæÂÂ帮å©ãÂÂÃ¥ÂÂ欢ä½Âè å 容çÂÂå¯以çÂÂ个堳注æÂÂè ç¹èµÂæ¶èÂÂï¼ÂÃ¥ÂÂæÂÂä¼Â继ç»Âæ´æ°æ°çÂÂæÂÂæ¯æ ÂçÂ¥è¯Âï¼Âæ¬请æÂÂå¾ ï¼Âï¼Â
ä»Â天çÂÂÃ¥ÂÂ享就å°æ¤ç»ÂæÂÂäºÂï¼Âå¦ÂæÂÂè§Âå¾Â对æ¨æÂÂ帮å©ï¼Â麻ç¦ç»Â个ä¸Âè¿Âï¼Â
以ä¸Âå 容为æ¬人çÂÂç»ÂéªÂæ»ç»ÂÃ¥ÂÂå¹³æ¶æÂÂä½ÂçÂÂç¬Âè®°ãÂÂèÂ¥æÂÂéÂÂ误åÂÂéÂÂå¤Â请èÂÂç³»ä½Âè å é¤ï¼Âï¼ÂæÂÂè°¢æ¯æÂÂï¼Âï¼Â