一.SQL常见的语句
1 2 3 4 5 6 7 8 9 10 11
| show databases; //展示数据库 create database demo_database; //创建一个demo_database库 drop database demo_database; //删除一个demo_database库 use demo_database; //切换数据库 create table test( //创建一个test的表 id int(10) not null primary key auto_increment, //id唯一 且自增长 name char(20) not null, age int(8) not null, sex char(20) not null ); DROP TABLE test; //删除表
|

1 2 3 4 5
| show tables; //查看选中数据库的所有表 select * from test; //查看test表的内容 insert into test(name,age,sex) values('xiaoming','14','M'); //插入数据 upload test set name='xiaobai' where id=1; //更新id=1的数据 delete from test where id=1; //删除id=1的数据
|
1 2 3
| SELECT *或其他 FROM 数据表(可以是多个) WHERE 需要满足的条件; select age from test where age='14'; select * from test where age='14';
|

常见的内置函数:
1 2 3 4 5
| database() : 显示当前数据库名称 //select database(); current_user : 显示当前用户 // select current_user; version() : 显示当前数据库版本 //select version(); load_file() : 显示一个文件内容 //SELECT LOAD_FILE('文件路径'); into outfile : 写入文件 //SELECT LOAD_FILE('/tmp/data.txt');
|
二. Java 数据库操作之 JDBC (比较原始)
Java 数据库连接,(Java Database Connectivity,简称 JDBC)是Java 语言中用来规范客户端程序如何来访问数据库的应用程序接口(位于 jdk 的 java.sql 中)。我们通常说的 JDBC 是面向关系型数据库的,提供了诸如查询、更新、删除、增加数据库中数据的方法。在使用时候需要导入具体的jar包,不同数据库需要导入的jar包不同。
JDBC与MySQL进行连接交互,通常为以下6个流程:
- 注册驱动 (仅仅做一次)
- 建立连接(Connection)
- 构建运行 SQL 的语句(Statement)
- 运行语句
- 处理运行结果(ResultSet)
- 释放资源
2.1 创建数据库
1 2 3 4 5 6 7 8 9 10 11 12 13
| CREATE DATABASE jdbcdemo; USE jdbcdemo; CREATE TABLE user ( id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '唯一ID', username varchar(25) NOT NULL COMMENT '用户名', password varchar(25) NOT NULL COMMENT '密码', PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO user(id,username,password) VALUES (1, "power7089", "power7089"); INSERT INTO user(id,username,password) VALUES (2, "root", "root"); INSERT INTO user(id,username,password) VALUES (3, "admin", "admin@123");
|

2.2 创建项目:


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| package com.example.demo;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;
public class JdbcDemo { public static void main(String[] args) throws Exception { // 注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 获取连接 String url = "jdbc:mysql://localhost:3306/jdbcdemo?useUnicode=true&characterEncodin g=utf8"; String user = "root"; String password = "root"; Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM user where id=2"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()) { System.out.println("=================="); System.out.println(rs.getInt("id")); System.out.println(rs.getString("username")); System.out.println(rs.getString("password")); } // 回收资源 rs.close(); stmt.close(); conn.close(); } }
|

三. Java 数据库操作之 Mybatis
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
3.1 创建项目:
左侧选择 Spring Initializr ,配置默认即可,点击Next。
在 Spring Initializr Project Settings 页面,将 Java Version设置为8 ,其他配置项默认即可,点击Next。
在依赖选项界面,我们选择 web -> Spring Web , SQL -> JDBC API , SQL -> Mybatis Framework , SQL -> Mysql Driver ,注意,一共需要勾选四个依赖。如下图所示:
3.2 创建数据库:
1 2 3 4 5 6 7 8 9 10 11 12 13
| CREATE DATABASE mybatisdemo;
USE mybatisdemo; CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '唯一ID', `username` varchar(25) NOT NULL COMMENT '用户名', `password` varchar(25) NOT NULL COMMENT '密码', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO user(id,username,password) VALUES (1, "power7089", "power7089"); INSERT INTO user(id,username,password) VALUES (2, "root", "root"); INSERT INTO user(id,username,password) VALUES (3, "admin", "admin@123");
|

3.3编写代码:
首先我们针对目录结构进行改动,根据不同作用类创建对应的代码包,在src.main.java.com.example.demo 下分别创建 controller , service , entity , mapper ,service->impl ,以及 src.main.resources 下创建 mapper ,最终目录结构如下图所示:
1 2 3 4 5 6 7 8 9 10
| controller:Controller层 service:业务逻辑层 service/impl:service的实现 mapper:数据操作层 DAO entity:实体类,作用一般是和数据表做映射。
controller:负责接收客户端的请求,进行请求参数的解析等操作,调用业务逻辑层(service 层)的方法处理请求,并将处理结果封装后返回给客户端。 entity:用于定义实体类,这些类通常对应数据库中的表,包含了与表字段对应的属性以及相关的 getter、setter 方法等,用于在程序中表示和操作数据。 mapper:数据访问层接口,通过 MyBatis 的映射配置,实现对数据库的增删改查等操作。接口中的方法对应 SQL 语句,用于从数据库中读取或写入数据。 service:业务逻辑层,封装了具体的业务逻辑,调用 mapper 层的方法来访问数据库,对数据进行处理和操作,并提供给 controller 层调用 。
|

