以idea为例,实现jdbc连接mysql
一、需要下载开发包,地址:下载地址
此处我配置的版本是:mysql-connector-java-8.0.18
把下载好的压缩包解压,把解压的文件夹找一个不阻碍的地方放着,
(最好记住位置,等下要导入)。
我的电脑没有分很多个盘,只能放C,此处不建议大家放C。
二、打开idea
点击File,再点Project Structrue
然后就是导入jar包了
点击Modules,点击添加(+),然后找到刚才放的位置,将jar包导入。
这样一来,我们就成功地导入了关于连接mysql的jar包(已经完成了一大步了)。
三、接下来便是重点了,使用java来实现连接
下面一些信息需要提前处理,此处我设为全局变量。
private String driver = "com.mysql.cj.jdbc.Driver";//驱动名称
private String url = "jdbc:mysql://localhost:3306/databasedemo?&useSSL=false&serverTimezone=UTC";//链接地址,其中databasedemo是自己创建数据库,需要修改
private String user = "root";//用户名
private String password = ""; // 密码,自己填
Connection connection = null;//连接
PreparedStatement ps = null;//处理
ResultSet res = null;//结果
加载: 将"com.mysql.jdbc.Driver"类的Class类对象加载到运行时内存中;
/*
加载数据库-load
*/
public void load() {
try {
Class.forName(driver);
System.out.println("Successfully loaded");
}
catch(Exception e) {
e.printStackTrace();
System.out.println("failed to load");
}
}
连接:定义获取Connection对象的方法。
/*
连接数据库-connect
*/
public void connect() {
try {
connection = DriverManager.getConnection(url, user, password);
System.out.println("Connection successful");
}
catch(SQLException e) {
e.printStackTrace();
System.out.print("Connection fail");
}
}
这样一来,我们就可以成功地连接数据库了。
接下来我们可以对数据库进行一些简单了 *** 作了。
先说明我的数据库的一个关系表S(id, name, sex, age, dept)
我先在mysql的databasedemo这个数据库中创建了这个关系表
create table S
(
id varchar(11) not null,
name varchar(100) not null,
sex varchar(4) not null,
age integer not null,
dept varchar(100) not null,
primary key (id)
);
到这里了,讲一下怎么创建这个表吧!
打开命令提示符窗口,用管理员身份启动(一定要管理员,一定要管理员,一定要管理员)
输入
mysql -u root -p
然后输入密码:
然后切换到对应的数据库
use databasedemo
然后就可以创表了
接下来用SQL语言建立关系表了
create table S
(
id varchar(11) not null,
name varchar(100) not null,
sex varchar(4) not null,
age integer not null,
dept varchar(100) not null,
primary key (id)
);
接下来查看一下这个表有没有信息
我们可以发现这个表是一个空表,接下来我们可以到idea中用java语言进行 *** 作了。
在此,我先预处理一些字符串,作为全局变量方便 *** 作
private String select = "select * from S";//此处查询所有
private String insert = "insert into S(id, name, sex, age, dept) values( ?, ?, ?, ?, ?)";//插入
private String update = "update S set dept= ? where id = ?";//更新
private String delete = "delete from S where id = ?";//根据数据删除
先是我们的查询函数,将数据库中的内容返回到我们的java里面,并且打印出来
/*
查询信息(此处查询所有信息,可根据实践修改)-queryInfo
*/
public void queryInfo() {
try {
ps = connection.prepareStatement(select);
res = ps.executeQuery();
while (res.next()) {
String id = res.getString("id");
String name = res.getString("name");
String sex = res.getString("sex");
String age = res.getString("age");
String dept = res.getString("dept");
System.out.println(id + " " + name + " " + sex + " " + age + " " + dept);
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
接下来我们进行简单的插入 *** 作(在这说明一下,数据库的信息一定是真实的、有效的!不然要这个数据库干嘛?;因为在此处演示,不方便透露一些信息,只能使用一些信息,请大家谅解;再强调一些:数据库的数据一定要真实、有效!不然要这个数据库干嘛?)
/*
插入信息-insertInfo
*/
public void insertInfo() {
try {
ps = connection.prepareStatement(insert);
ps.setString(1, "001");
ps.setString(2, "张三");
ps.setString(3, "男");
ps.setString(4, "20");
ps.setString(5, "计算机学院");
ps.executeUpdate();
}
catch (SQLException e) {
e.printStackTrace();
}
}
在执行插入和查询 *** 作后,在idea可以看到以下信息。
接着我们去数据库看一下是否有成功插入
我们看到已经成功插入,说明我们的的连接和 *** 作都是成功的;
接下来便是更新 *** 作:
/*
根据id更新信息-updateInfo
*/
public void updateInfo() {
try {
ps = connection.prepareStatement(update);
ps.setString(1, "人工智能学院");
ps.setString(2, "001");
ps.executeUpdate();
}
catch (SQLException e) {
e.printStackTrace();
}
}
执行更新后的 *** 作返回的结果
我们通过下图可以看到数据库已经被更新了
最后是删除 *** 作了(数据不能删除,数据都是有价值的,此处只是演示)
再强调一遍(数据不能删除,只能是作标记;数据不能删除,只能是作标记;数据不能删除,只能是作标记;)重要的事情讲三遍
/*
根据学号删除信息-deleteInfo
*/
public void deleteInfo() {
try {
ps = connection.prepareStatement(delete);
ps.setString(1, "001");
ps.executeUpdate();
}
catch (SQLException e) {
e.printStackTrace();
}
}
删除信息后,我们在看看idea中返回的信息,发现没有信息,还不能确定有没有被删除,接着去数据库看一下
我们可以发现这条内容真的被删除了。
是不是就OK了?
其实我们最后需要断开连接:
/*
断开连接-close
*/
public void close() {
if (connection != null) {
try {
connection.close();
System.out.println("Disconnected");
}
catch (SQLException e) {
e.printStackTrace();
}
}
}
这样就完结了,撒花!
最后附上完整代码(这里没有附上测试类):
/**
* 对数据库进行 *** 作;
* 具体功能:查询,插入,更新,删除(以为演示,此处不是标记,是真实删除;数据库不能删除只能标记)
*/
/**
* @author zqincc<>
*
*/
import java.sql.*;//导入mysql的驱动包
public class JDBC {
private String driver = "com.mysql.cj.jdbc.Driver";//驱动名称
private String url= "jdbc:mysql://localhost:3306/databasedemo?&useSSL=false&serverTimezone=UTC";//链接地址
private String user = "root";//用户名
private String password = "111111"; // 密码
private String select = "select * from S";//此处查询所有
private String insert = "insert into S(id, name, sex, age, dept) values( ?, ?, ?, ?, ?)";//插入
private String update = "update S set dept= ? where id = ?";//更新
private String delete = "delete from S where id = ?";//根据数据删除
Connection connection = null;//连接
PreparedStatement ps = null;//处理
ResultSet res = null;//结果
/*
加载数据库-load
*/
public void load() {
try {
Class.forName(driver);
System.out.println("Successfully loaded");
}
catch(Exception e) {
e.printStackTrace();
System.out.println("failed to load");
}
}
/*
连接数据库-connect
*/
public void connect() {
try {
connection = DriverManager.getConnection(url, user, password);
System.out.println("Connection successful");
}
catch(SQLException e) {
e.printStackTrace();
System.out.print("Connection fail");
}
}
/*
查询信息(此处查询所有信息,可根据实践修改)-queryInfo
*/
public void queryInfo() {
try {
ps = connection.prepareStatement(select);
res = ps.executeQuery();
while (res.next()) {
String id = res.getString("id");
String name = res.getString("name");
String sex = res.getString("sex");
String age = res.getString("age");
String dept = res.getString("dept");
System.out.println(id + " " + name + " " + sex + " " + age + " " + dept);
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
/*
插入信息-insertInfo
*/
public void insertInfo() {
try {
ps = connection.prepareStatement(insert);
ps.setString(1, "001");
ps.setString(2, "张三");
ps.setString(3, "男");
ps.setString(4, "20");
ps.setString(5, "计算机学院");
ps.executeUpdate();
}
catch (SQLException e) {
e.printStackTrace();
}
}
/*
根据id更新信息-updateInfo
*/
public void updateInfo() {
try {
ps = connection.prepareStatement(update);
ps.setString(1, "人工智能学院");
ps.setString(2, "001");
ps.executeUpdate();
}
catch (SQLException e) {
e.printStackTrace();
}
}
/*
根据学号删除信息-deleteInfo
*/
public void deleteInfo() {
try {
ps = connection.prepareStatement(delete);
ps.setString(1, "001");
ps.executeUpdate();
}
catch (SQLException e) {
e.printStackTrace();
}
}
/*
断开连接-close
*/
public void close() {
if (connection != null) {
try {
connection.close();
System.out.println("Disconnected");
}
catch (SQLException e) {
e.printStackTrace();
}
}
}
}
/*
create table S
(
id varchar(11) not null,
name varchar(100) not null,
sex varchar(4) not null,
age integer not null,
dept varchar(100) not null,
primary key (id)
);
*/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)