Java入门级教程7——eclipse新建Maven项目,创建和连接数据库,创建数据库表

目录

1.若没有Maven项目,可以选择新建

2.添加Maven依赖

3.数据库的创建

3.1 新建连接 --> 创建数据库

3.2 创建数据库表

4.连接数据库


1.若没有Maven项目,可以选择新建

步骤一:点击 File --> New --> Project

步骤二:点击 Maven Project

步骤三:点击Browse...选择存放项目的文件夹(或者保持默认位置)

步骤四:默认选项,直接点击next

步骤五:按要求填入标识,项目名称和默认包名

1. Group Id

  • 含义:项目所属组织 / 团体的唯一标识,通常采用反向域名格式(比如公司域名是 hy.com,则 Group Id 写为 com.hy)。

2. Artifact Id

  • 含义:项目本身的唯一名称(比如这里的 javamavendemo)。

3. Version

  • 含义:项目的版本号(比如 0.0.1-SNAPSHOT)。

4. Package

  • 含义:Java 代码的默认包名,用于组织项目内的类(避免不同类重名)。

步骤六:点击Finish完成Maven项目的创建

2.添加Maven依赖

若使用 Maven 管理项目,直接在pom.xml中添加依赖(自动下载驱动):

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>8.0.24</version>
</dependency>

3.数据库的创建

这里使用的是Navicat创建数据库

3.1 新建连接 --> 创建数据库

步骤一:新建连接,点击连接 --> MySQL(或者点击文件 --> 新建连接 --> MySQL 同理)

步骤二:输入连接名和密码,点击左下角测试连接,确保连接成功,然后点击确定

步骤三:右击创建的连接(如这里的localmysql),点击新建数据库

步骤四:输入数据库名,字符集和排序规则,点击确定,数据库创建完成

3.2 创建数据库表

步骤一:点击新建查询,右边紫色方框中选择创建的连接和数据库

步骤二:了解基本数据库语句

-- 1.DDL(数据定义语言):CREATE、DROP 、ALTER,只能执行一次 --
-- 2.DML(数据操纵语言):INSERT、UPDATE 、DELETE,可以执行多次 --
-- 3.DQL(数据查询语言):SELECT,可以执行多次 --

-- 1.1 创建t_emps表 --
CREATE TABLE t_emps(
	eid INT PRIMARY KEY auto_increment, -- 员工的编号
	ename VARCHAR(20) NOT NULL, -- 员工的姓名
	epwd CHAR(8) NOT NULL, -- 员工的密码
	ebirthday datetime, -- 员工的出生年月,不设计年龄字段,会造成字段冗余
	esalary DOUBLE NOT NULL, -- 员工的工资
	eaddress VARCHAR(100) -- 员工的地址
)

-- 1.2 删除t_emps表 --
DROP TABLE t_emps

-- 1.3 修改表:给 t_emps 表添加一个字段,字段名称为:状态estate int类型 --
ALTER TABLE t_emps ADD estate INT;


-- 2.1 插入数据 --
INSERT INTO t_emps(ename,epwd,ebirthday,esalary,eaddress,estate)
VALUES('赵五','11111','2000-05-28',90000.56,'南京',1);

INSERT INTO t_emps(ename,epwd,ebirthday,esalary,eaddress,estate)
VALUES('李六','22222','2004-06-15',88000.69,'盐城',1);

-- 2.2 更新表的字段值 --
UPDATE t_emps SET estate =1 WHERE eid =2;
UPDATE t_emps SET estate =0 WHERE eid =1;

-- 2.3 删除表中的数据 --
DELETE FROM t_emps


-- 3 查询表 --
SELECT * FROM t_emps

-- SQL 聚合函数是数据统计分析的核心工具,常用场景包括: --
-- 统计总数(COUNT(*))、求和(SUM())、求平均(AVG()) --
-- 找最大 / 最小值(MAX()、MIN()) --
-- 分组统计(GROUP BY+ 聚合函数)、筛选聚合结果(HAVING) --

-- 查询表中信息数量 --
SELECT count(*) FROM t_emps

-- 查询表中符合条件的数量(count()括号内有什么,什么就不能为NULL) --
SELECT count(ename) FROM t_emps WHERE ename = '李六' AND epwd = '22222'

-- 查询表中最大/小值,平均值和总值 --
SELECT max(esalary) FROM t_emps
SELECT min(esalary) FROM t_emps
SELECT avg(esalary) FROM t_emps
SELECT sum(esalary) FROM t_emps

-- 查询表 --
SELECT * FROM t_emps

INSERT INTO t_emps(ename,epwd,ebirthday,esalary,eaddress,estate)
VALUES('李老八','22222','1996-12-30',5600,'无锡',1);

INSERT INTO t_emps(ename,epwd,ebirthday,esalary,eaddress,estate)
VALUES('赵二','22222','1996-12-30',5800,'无锡',0);

-- 带条件查询 --
SELECT * FROM t_emps WHERE ename = '李六';

-- 模糊查询 LIKE --
SELECT * FROM t_emps WHERE ename LIKE '李%';

-- 查询李字开头,只有一个字的所有的员工信息 --
SELECT * FROM t_emps WHERE ename LIKE '李_';

SELECT * FROM t_emps WHERE ename LIKE '李__';

-- 查询李字开头,员工的数量 as 可选,起个别名 --
SELECT count(ename) as cn FROM t_emps WHERE ename LIKE '李%';

-- 范围的查找,工资大于6000的员工的信息 --
SELECT * FROM t_emps WHERE esalary > 6000;

-- 查询工资在5000和10000之间的员工信息 --
SELECT * FROM t_emps WHERE esalary >= 5000 and esalary<=10000;

SELECT * FROM t_emps WHERE esalary BETWEEN 5600 and 10000;

-- 查询工资最高的员工的姓名 子查询 一个结果作为另外一个查询的条件 --
SELECT ename FROM t_emps WHERE esalary =(SELECT max(esalary) FROM t_emps) 

-- 多值查询,员工的籍贯属于南京或无锡的员工的信息 --
SELECT * FROM t_emps WHERE eaddress in ('南京','无锡')

-- 查询员工的来源地有哪些 去除重复的值用DISTINCT --
SELECT eaddress FROM t_emps 

SELECT DISTINCT eaddress FROM t_emps 

-- 查询员工来源地的数量分布 分组查询 --
SELECT count(ename), eaddress FROM t_emps GROUP BY eaddress

-- 查询员工来源地的数量分布大于1个人 分组查询限制条件的关键字HAVING --
SELECT count(ename) cn, eaddress FROM t_emps GROUP BY eaddress 
HAVING cn>1

-- 出生年月,没有写直接的年龄,age这个字段,一个表中不要出现冗余字段,
-- 表中的字段都是独立的,不要通过一个字段的计算方式得到另外一个字段的值

-- 查询系统现在的时间 函数,内置函数SYSDATE() --
SELECT SYSDATE() FROM t_emps

-- 查询年龄段 --
-- substring截取substring(字段,第一个字符,长度) --
SELECT substring(SYSDATE(),1,4)- substring(ebirthday,1,4) FROM t_emps

-- 查询每个年龄段的员工的数量 ,FROM 表; FROM 临时结果集 --
SELECT count(age) ,age FROM (SELECT (substring(SYSDATE(),1,4)- substring(ebirthday,1,4)) age FROM t_emps) tmp GROUP BY age

步骤三:注明:这里连接数据库用到的sql语句如下

-- 创建t_emps表 --
CREATE TABLE t_emps(
	eid INT PRIMARY KEY auto_increment, -- 员工的编号
	ename VARCHAR(20) NOT NULL, -- 员工的姓名
	epwd CHAR(8) NOT NULL, -- 员工的密码
	ebirthday datetime, -- 员工的出生年月,不设计年龄字段,会造成字段冗余
	esalary DOUBLE NOT NULL, -- 员工的工资
	eaddress VARCHAR(100) -- 员工的地址
)

-- 插入数据 --
INSERT INTO t_emps(ename,epwd,ebirthday,esalary,eaddress,estate)
VALUES('赵五','11111','2000-05-28',90000.56,'南京',1);

INSERT INTO t_emps(ename,epwd,ebirthday,esalary,eaddress,estate)
VALUES('李六','22222','2004-06-15',88000.69,'盐城',1);

INSERT INTO t_emps(ename,epwd,ebirthday,esalary,eaddress,estate)
VALUES('李老八','22222','1996-12-30',5600,'无锡',1);

INSERT INTO t_emps(ename,epwd,ebirthday,esalary,eaddress,estate)
VALUES('赵二','22222','1996-12-30',5800,'无锡',0);

-- 查询表 --
SELECT * FROM t_emps

-- 查询表中信息数量 --
SELECT count(*) FROM t_emps

 注:选中需要运行的sql语句,点击“运行已选择的”,完成sql语句的执行 

4.连接数据库

步骤一:基本框架,初步建立数据库连接(进一步验证需要通过查询语句)

  • 其中数据库名称(此处为mysql2025),以及用户名和密码,需要替换为自己的
package com.hy.chapter1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBDao {
	// 数据库连接对象,用于与数据库建立连接并执行操作
	Connection conn;

	public DBDao() {
		try {
			// 加载MySQL JDBC驱动
			Class.forName("com.mysql.cj.jdbc.Driver");
			// 建立数据库连接
            // 数据库地址(本机3306端口,数据库名mysql2025)
			conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mysql2025", 
					"root", // 数据库用户名
					"yourpassword" // 数据库密码
			);
			if (conn != null) {
				System.out.println("数据库连接对象创建成功!");
			}
		} catch (ClassNotFoundException e) {
			System.out.println("Mysql驱动加载失败");
			e.printStackTrace();
		} catch (SQLException e) {
			System.out.println("数据库连接失败");
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		DBDao dao = new DBDao();
	}
}

输出结果:

数据库连接对象创建成功!

步骤二:进行数据库表的查询

package com.hy.chapter1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

public class DBDao {
	// 数据库连接对象,用于与数据库建立连接并执行操作
	static Connection conn;

	public DBDao() {
		try {
			// 加载MySQL JDBC驱动
			Class.forName("com.mysql.cj.jdbc.Driver");
			// 建立数据库连接
            // 数据库地址(本机3306端口,数据库名mysql2025)
			conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mysql2025", 
					"root", // 数据库用户名
					"yourpassword" // 数据库密码
			);
			if (conn != null) {
				System.out.println("数据库连接对象创建成功!");
			}
		} catch (ClassNotFoundException e) {
			System.out.println("Mysql驱动加载失败");
			e.printStackTrace();
		} catch (SQLException e) {
			System.out.println("数据库连接失败");
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		DBDao dao = new DBDao();
		// 第一个SQL:查询表的记录总数(用于初始化二维数组的行数)
		String sql = "select count(*) from t_emps";
		try {
			
			// 创建PreparedStatement对象(用于执行SQL语句)
			PreparedStatement pstmt = conn.prepareStatement(sql);
			// 执行查询,返回结果集(ResultSet)
			ResultSet rs = pstmt.executeQuery();

			int count = 0; // 记录总数
			while (rs.next()) { // 遍历结果集(此处只有一条记录,即总数)
				count = rs.getInt(1); // 获取第一列的值(即count(*)的结果)
			}
			System.out.println("count为:" + count); // 打印记录总数

		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			// 关闭数据库连接(避免资源泄漏)
			if (null != conn) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

输出结果:

数据库连接对象创建成功!
count为:4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值