Java访问数据库实例详解
作者:小朱同学的笔记本 发布时间:2024-01-23 00:12:20
JAVA程序想要访问数据库,需要进行如下准备:
1.安装一个数据库(这里使用mysql免安装版)
2.下载该数据库的驱动包(这里使用mysql官方提供的mysql-connector-java-5.1.39-bin)
PS:我的这个免安装的MySQL不知道为什么存储的中文都是乱码,参考了别人的解决方案修改了my-default.ini文件也不行,如果各位看到这篇文章的大佬有解决办法,还请不吝赐教,感谢!
一、启动数据库
将mysql免安装压缩包解压到某目录下
双击 mysql-5.6.24-win32 => bin => mysqld.exe 启动数据库
正常情况下会闪过一个黑框
打开DOS窗口,进入mysql文件夹所在盘(我的是D盘)
依次输入如下命令:
cd mysql* => cd bin =>mysql -uroot
(出现如下图提示说明已经进入数据库,可以开始使用数据库了)
二、创建数据库
你可以直接在DOS窗口输入sql语句创建数据库;
也可以将你的所有操作保存到一个sql文件,再在DOS窗口导入这个文件。(由于创建数据库的命令较多,这里采用第二种方法)
创建db.sql文件(我保存到了D盘)
create database if not exists stu;
use stu;
drop table if exists classes;
create table classes(
id int(10) primary key auto_increment,
num varchar(12) not null ,
name varchar(45) not null,
teacher varchar(15) not null,
unique(name),
unique(num)
);
insert into classes(num,name,teacher ) values('20170101','Mike','Tom');
insert into classes(num,name,teacher ) values('20170102','Nancy','Tom');
insert into classes(num,name,teacher ) values('20170103','Frank','Tom');
然后在DOS窗口输入:source d:/db.sql;
(出现如下图提示说明导入成功)
查看数据库里的数据
三、JAVA程序导入jar包
eclipse里创建项目jdbc
将下载好的jar包复制到该项目下
右击jar包 => Build Path => Add To Build Path
四、连接数据库
创建DBCon文件,获取数据库连接对象
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBCon {
public Connection con=null; //创建数据库连接对象
String url="jdbc:mysql://localhost:3306/stu"; //指定所要连接的数据库的URL
//3306表示要连接的是本地数据库;stu为要连接的具体数据库名称
String user="root"; //用户名
String password=""; //密码
public Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver"); //加载数据库驱动器
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con=(Connection)DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
}
五、测试
创建Classes类文件,保存和访问学生数据
public class Classes {
private String num;
private String name;
private String teacher;
public Classes() {
super();
// TODO Auto-generated constructor stub
}
public Classes(String num, String name, String teacher) {
super();
this.num = num;
this.name = name;
this.teacher = teacher;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
}
创建测试类Test
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import db.DBCon;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection cn;
PreparedStatement psm=null; //PrepareStatement接口用来执行动态的sql语句
ResultSet rs; //ResultSet接口用来暂存数据库查询出的结果集
DBCon dbcon=new DBCon();
cn=dbcon.getConnection(); //获取数据库对象
Classes classes=new Classes();
String sql="select * from classes";
try {
psm=cn.prepareStatement(sql); //实例执行sql语句
rs=psm.executeQuery(); //将结果赋给rs指针
if(rs.next()) { //判断是否查询到结果
rs.absolute(0); //将rs指针置于结果集最上方
while(rs.next()) {
String classNum=rs.getString(2);
String className=rs.getString(3);
String classTeacher=rs.getString(4);
classes.setNum(classNum);
classes.setName(className);
classes.setTeacher(classTeacher);
System.out.println(classes.getNum()+","+classes.getName()+","+classes.getTeacher());
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
运行Test文件,出现所查询内容
来源:https://blog.csdn.net/qq_42197887/article/details/107558380


猜你喜欢
- 1.首先安装 PyPDF2 库:pip install PyPDF22.然后保存下面文件(已带注释,具体实现请自己思考)import osi
- 你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短。从此解放上班时间,研究更多更有效率的工作方法。进一步提升
- 一、变量的定义程序中,数据都是临时存储在内存中,为了更快速的查找或使用这个数据,通常我们把这个数据在内存中存储之后,给整个数据定义一个名称,
- 现代浏览器可以基于RFC 2397标准使用base64把图片进行编码,然后输出类似data:image/png;base64,iVBORw0
- 大家好,我是启航。本文将给大家分享一个实用的Python办公自动化脚本 「利用Python批量翻译英文Word文档并保留格式」,最终效果甚至
- 目录描述语法使用示例1. 所有参数都省略2. 指定key参数3. 指定reverse参数注意事项1. sort函数会改变原列表顺序2. 列表
- 卸载旧版本的MySQL(没有就跳过此步骤)(注:3-6步 重新安装新版本的MySQL,一定要把之前版本卸载干净,要不会出错;新的虚拟机初装M
- 登陆万事开头难,做什么事都要有个起点,后面才能更好的进行下去,因此我选择的起点就是最为直观的登陆页面 /login/index.vue/sr
- Node被设计用来高效的处理I/O操作,但是你应该知道,有些类型的程序并不适合这种模式。比如,如果你打算用Node处理一个CPU密集的任务,
- 主要采用的技术点Python + Numpy + PIL在正文代码开始前,大家先看看最初原图和转换手绘风图片前后对比。当然了,我先查了手绘的
- 我把数据库操作类整理了一下,它包含了常用的数据库操作,由三种方式:简单的SQL拼接字符串的形式,SQL语句使用参数的形式和存储过程的形式,每
- 前言这是一个使用HttpRunner开发接口平台的简单Demo。新建Django项目安装依赖包pip install httprunner=
- 前言本文结合一个具体的无向图来对最简单的一种GNN进行推导。本文第一部分是数据介绍,第二部分为推导过程中需要用的变量的定义,第三部分是GNN
- 每次遇到pandas的dataframe某列日期格式问题总会哉坑,下面记录一下常用时间日期函数....1、字符串转化为日期 str—>
- golang用于创建和发送电子邮件的库douceur - HTML 邮件中的内联 CSSemail - 一个健壮的、灵活的 email 库G
- 素数简介质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。方法1def primeNUM(
- 在Python里面,使用Pandas里面的DataFrame来存放数据的时候想要把数据集进行shuffle会许多的方法,本文介绍两种比较常用
- Vue按回车键进行搜索需求:为了用户方便进行搜索数据的时候不想点击搜索按钮,想要在input输入框内输入完成之后直接按回车键进行搜索第一种方
- 文字的多行处理在dom元素中很好办。但是canvas中没有提供方法,只有通过截取指定字符串来达到目的。那么下面就介绍我自己处理的办法:wxm
- 引言通常,您可能希望在 Pandas DataFrame 中插入一个新列。幸运的是,使用 pandas insert()函数很容易做到这一点