Java数据库操作

一.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个流程:

  1. 注册驱动 (仅仅做一次)
  2. 建立连接(Connection)
  3. 构建运行 SQL 的语句(Statement)
  4. 运行语句
  5. 处理运行结果(ResultSet)
  6. 释放资源

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:用于定义实体类,这些类通常对应数据库中的表,包含了与表字段对应的属性以及相关的 gettersetter 方法等,用于在程序中表示和操作数据。
mapper:数据访问层接口,通过 MyBatis 的映射配置,实现对数据库的增删改查等操作。接口中的方法对应 SQL 语句,用于从数据库中读取或写入数据。
service:业务逻辑层,封装了具体的业务逻辑,调用 mapper 层的方法来访问数据库,对数据进行处理和操作,并提供给 controller 层调用 。


Java数据库操作
http://example.com/2025/06/04/Java数据库操作/
作者
XCDH
发布于
2025年6月4日
许可协议