jdbc操作mysql数据库——面对初学者的的简单实例

任务一:在MySQL中创建一个tb_student表,要求有学号、姓名、性别、年龄、出生日期等字

任务二:使用JDBC查询tb_student表的所有内容.

任务三:使用JDBC分别完成数据的插入、修改、删除

1.首先创建一张表  tb_student   加入一些信息

示例中我建到了spj数据库下 

/*
 Navicat Premium Data Transfer

 Source Server         : 本地
 Source Server Type    : MySQL
 Source Server Version : 50639
 Source Host           : localhost:3306
 Source Schema         : spj

 Target Server Type    : MySQL
 Target Server Version : 50639
 File Encoding         : 65001

 Date: 02/06/2022 19:02:17
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for tb_student
-- ----------------------------
DROP TABLE IF EXISTS `tb_student`;
CREATE TABLE `tb_student`  (
  `s_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `s_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `sex` char(4) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `age` int(4) NULL DEFAULT NULL,
  `birthday` date NULL DEFAULT NULL,
  PRIMARY KEY (`s_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of tb_student
-- ----------------------------
INSERT INTO `tb_student` VALUES ('1', '小王', '男', 18, '2022-06-02');
INSERT INTO `tb_student` VALUES ('2', '小花', '女', 20, '2022-02-01');

SET FOREIGN_KEY_CHECKS = 1;

2.写JDBC工具类



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;

public class JDBCUtils {
	/*
	 * 这个类用来提供jdbc的工具类
	 */
	// 私有化构造函数 ,外界无法创建对象
	private JDBCUtils() {
	}
//终极优化:只加载一次属性文件
	static ResourceBundle rb=null;
	static{
		 rb = ResourceBundle.getBundle("jdbc");	
	}
	// 2.方法提供数据库连接
	public static Connection getConnection() {
		Connection conn = null;
		try {
			Class.forName(rb.getString("DriverClass"));
			String url = rb.getString("jdbcUrl");
			String user = rb.getString("user");
			String password = rb.getString("password");
			conn = DriverManager.getConnection(url, user, password);
			return conn;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;

	}

	// 释放资源
	public static void close(ResultSet rs, Statement st, Connection conn) {
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				rs = null;
			}
		}
		if (st != null) {
			try {
				st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				st = null;
			}
		}
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				conn = null;
			}
		}
	}
}

3.配置属性jdbc链接属性文件

在java项目根目录下创建一个文件file    命名为jdbc.properties  即作为链接配置文件

分别写入如下配置

驱动   如 com.mysql.jdbc.Driver   mysql5.7版本以后是com.mysql.cj.jdbc.Driver

数据库名  如spj

用户名         

密码

DriverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql:///SPJ
user=root
password =123456

4.下载jdbc驱动jar包  添加到项目中

 

 

5.写一个实体类 student映射数据库相关属性 并测试


import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
class Student{
	private String sId;
	private String sName;
	private char sex;
	private int age;
	private Date birth;
	public String getsId() {
		return sId;
	}
	public void setsId(String sId) {
		this.sId = sId;
	}
	public String getsName() {
		return sName;
	}
	public void setsName(String sName) {
		this.sName = sName;
	}
	public char getSex() {
		return sex;
	}
	public void setSex(char sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public Date getBirth() {
		return birth;
	}
	public void setBirth(Date birth) {
		this.birth = birth;
	}
	@Override
	public String toString() {
		return "\n学号:"+sId+"\n姓名:"+sName+"\n年龄:"+age+"\n性别"+sex+"\n生日"+birth+"\n";
	}
	
}
public class Answer7733622 {
	public static void main(String[] args) throws SQLException {
		
		selectAllAtudent();
		//insertStudentInfo();
		//updateStudentInfo(sid);
		//deleteStudentInfo(sid);
		
	}

	public static void selectAllAtudent() throws SQLException {
		String sql="select * from tb_student";
		ArrayList<Object> list = new ArrayList<>();
		Connection conn = JDBCUtils.getConnection();
		PreparedStatement pst = conn.prepareStatement(sql);
		ResultSet result = pst.executeQuery();
		while(result.next()){
			Student stu = new Student();
			stu.setsId(result.getString("s_id"));
			stu.setsName(result.getString("s_name"));
			stu.setSex(result.getString("sex").charAt(0));
			stu.setAge(result.getInt("age"));
			stu.setBirth(result.getDate("birthday"));
			list.add(stu);
		}
		System.out.println(list);
	}
	
	
}

6.测试结果

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WaitIKnowYou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值