Code前端首页关于Code前端联系我们

使用jdbc访问mysql数据库,java jdbc连接mysql数据库

terry 2年前 (2023-09-30) 阅读数 41 #Mysql
文章标签 Mysql

本文内容列表:

  • 1、如何使用jdbc连接mysql数据库
  • 2.如何与mysql数据库建立JDBC连接
  • 3、如何使用jdbc访问mysql数据库
  • 4. 为什么使用jdbc连接mysql时出错?
  • 5、如何使用jdbc连接mysql数据库

如何使用jdbc连接mysql数据库

使用Jdbc连接MySql服务器非常方便。

首先,将jdbc添加到项目中,或者将jdbc添加到ClassPath中。这里我使用Eclipse直接导入jdbc jar文件,不再有对话框。

然后,配置DriverManager,用最简单的方法直接完成class类。代码:

Class.forName("com.mysql.jdbc.Driver").newInstance();

接下来,创建一个 Connection 链接。请小心您的用户名和密码。有多种方法可供选择。这里我使用 DirverManager 类的 getConnection(String url, String user, String password) 方法。自定义用法:DriverManager

示例:Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/mydatabase", "root", "1234");

接下来创建数据库,用于执行语句 sql 语句很简单,一行代码即可:

Stat Statement=conn.createStatement();

最后就可以使用stat实例来执行sql语句了

如何实现JDBC连接mysql数据库

1。安装mysql数据库驱动jar包

比如我安装了mysql-connector-java-5.1.40.jar

2。输入驱动程序

注册的驱动代码为:Class.forName("com.mysql.jdbc.Driver")

3。获取连接

Connection con = DriverManager.getConnection(url,username,password)

其中 jdbc url 为:mysql://localhost:3306/xun?useSSL=false,最后一个 xun 为库名称。数据库,如果不使用加密的话,确实可以去掉?useSSL=false,不存在的版本是jdbc:mysql://localhost:3306/xun,但是最好不要留。

4。获取PrepareStatement,提交sql查询语句

String sql = "select * from user where username = ?" (此查询语句只是随机示例)

PreparedStatement pst = con.preparedStatement(sql );

pst.setString(1,"zengjiaxun");

ResultSet rs = pst.executeQuery();

注意,executeQuery() 方法用于执行查询。该方法返回一个ResultSet,ResultSet就是结果集,它完成了查询结果。插入、删除和修改使用executeUpdate()方法。

pst.clearParameters();

执行sql后记得关闭对应的流。 。

如何使用jdbc访问mysql数据库

JDBC连接MySQL数据库:

package cn.outofmemory.test;

导入java.sql.connection;

导入java.sql..drivermanager;

pirql..drivermanager; static void main(String arg[]) {

try {

连接 con = null; //定义MYSQL连接对象

Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root ", "root"); //链接到MYSQL

System.out.print("yes");

} catch (Exception e) {

System.out.print("MYSQL ERROR:" + e.getMessage( ) ) ;

}

}

}

Class.forName("com.mysql.jdbc.Driver").newInstance();我们要连接到 MYSQL 数据库,因此您需要 MYSQL 数据库驱动程序。如果您的环境没有安装,可以下载:mysql-connector-java-5.1.17-bin.jar JAR包,安装在jdk1.6.0_37\jre\lib\ext 重启eclispe即可在JRE系统库。

con = DriverManager.getConnection;("jdbc:mysql://127.0.0.1:3306/test", "root", "root");是数据库连接语句,

返回Connection con;某物。格式参数:("jdbc:mysql://ip:端口/数据库名",用户名,密码)

写入文件片段

package main;

import java.sql.Connection;

import java.sql.DriverManager;

导入java.sql.ResultSet;

导入java.sql.Statement;

公共类Mysql {

/**

/**

* @param arg

*/

public static void main(String arg[]) {

try {

Connection con = null; //定义一个MYSQL连接对象

Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL

声明 stmt; //创建语句

stmt = con.createStatement();

//添加新部分

stmt.executeUpdate("INSERT INTO user (用户名,密码) VALUES ('init', '123456 ')" );

ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");

int ret_id;

if (res.next()) {

ret_id = res.get_id = res. 1);

System.out.print(ret_id);

}

} catch (异常 e) {

System.out.print("MYSQL 错误:" + e.getMessage()) ;

}

}

}

stmt.executeUpdate INSERT;删除;消息;所有语句均使用executeUpdate函数执行

stmt.executeQuery SELECT;该语句与 stmt.executeQuery 函数一起使用

ResultSet res = stmt.executeQuery;("select LAST;_INSERT_ID()");

查询最后插入的数据集编号,返回ResultSet res;对象

删除和更新数据

package main;

导入java.sql.Connection;

导入java.sql.DriverManager;

导入java.sql;结果sql.声明;

public class Mysql {

/**

* 入口函数

* @param arg

*/

public static void main](String arg try {

Connection con = null; //定义MYSQL相关对象

Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动

con = DriverManager.getConnection("jdbc :mysql://127.0.0.1:3306/test", "root", "root"); //本地链接MYSQL

Statement stmt; //创建语句

stmt = con .createStatement();

//添加一条新数据

stmt.executeUpdate("INSERT INTO user(用户名,密码)VALUES('init','123456')");

ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");

int ret_id;

if (res.next()) {

ret_id = res.getInt(1);. out.print(ret_id);

}

//删除一条数据

String sql = "DELETE FROM user WHERE id = 1";

long deleteRes = stmt.execute Update(sql) // 如果为0,则不执行删除操作。如果大于0,则记录删除的条数。 username = 'xxxx' WHERE id = 2";

long updateRes = stmt.executeUpdate(updateSql);

System.out.print("UPDATE :" + updateRes);

} catch (异常 e ) {

System.out.print("MYSQL 错误:" + e.getMessage());

}

}

}

删除和更新数据都使用stmt。执行更新函数。

删除和更新数据将会产生长期影响。如果为0,则删除或更新失败。如果大于0,则为该操作删除的文件数。

查询语句

package main;

import java .sql.Connection;

导入 java.sql.DriverManager;

导入 java.sql.ResultSet;

导入 java.sql.ResultSetMetaData;

导入 java.sql.Statement;

{

{ 公共类我的

* 入口函数

* @param arg

*/

public static void main(String arg[]) {

try {

Connection con = null; //定义一个MYSQL Link对象

Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/ test", "root", "root"); //链接本地MYSQL

声明 stmt; //创建语句

stmt = con.createStatement();

//添加新部分

stmt.executeUpdate("INSERT INTO user (用户名,密码) VALUES ('init', '123456 ')" );

ResultSet res = stmt.executeQuery("选择 LAST_INSERT_ID()");

int ret_id;

if (res.next()) {

ret_id = res.getInt(1);

System.out.print(ret_id);

}

//删除一条数据

String sql = "DELETE FROM user WHERE id = 1";

long deleteRes = stmt.executeUpdate(sql); //如果为0,则不进行删除操作。如果大于0,记录删除的条数

System.out.print("DELETE:" + deleteRes);

//更新一条数据

String updateSql = "UPDATE user SET username = 'xxxx' WHERE id = 2" ;

long updateRes = stmt.executeUpdate(updateSql);

System.out.print("UPDATE:" + updateRes);

//查询数据并输出

String selectSql = "SELECT * FROM user";

ResultSet selectRes = stmt.executeQuery(selectSql);

while (selectRes.next()) { //循环输出结果集

= selectRes. getString("用户名");

String 密码 = selectRes.getString("密码");

System.out.print("\r\n\r\n");

System . out. print("用户名:" + 用户名 + "密码:" + 密码);

}

} catch (Exception e) {

System.out.print("MYSQL ERROR:" + e.getMessage());

}

}

}

查询语句使用 stmt 。 executeQuery Function

rs.absolute() //绝对位置,负数表示从后数

rs.first() 第一个元素

rs.last() 最后一个元素

rs.previous ()前一个元素

rs.next() 在

rs.beforeFirst() 之后 在第一个

rs.afterLast() 在最后一个

rs.isFirst() 之后,rs .isLast(),rs.isBeforeFirst ( ),rs.isAfterLast

为什么使用jdbc连接mysql时会报错?

使用JDBC连接MySql数据库时,编译时报如下错误:

Error 1:

Loading class `com.mysql.jdbc.Driver'。它不再被使用。新的驱动程序类是“com.mysql.cj.jdbc.Driver”。驱动程序通过 SPI 自动注册,无需手动配置驱动程序类。

这就需要我们在编写驱动.Driver时设置Class.forName("com.mysql.jdbc");改为Class.forName("com.mysql.cj.jdbc.Driver");

当我全部修改完重新编译时,错误又出现了:

错误2:

2019 年 2 月 22 日星期五 08:55:38 CST 警告:不建议在没有服务器身份验证的情况下建立 SSL 连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,除非设置了clear选项,否则必须默认设置SSL连接。为了符合不使用 SSL 的现有应用程序,verifyServerCertificate 属性设置为“false”。您需要通过设置 useSSL=false 显式禁用 SSL,或设置 useSSL=true 并为服务器身份验证提供信任。

这就需要我们在设置url参数的时候设置useSSL=false。改完后jdbc:mysql://localhost:3306/ds3?useSSL=false

改完之后我想现在应该没有问题了。 ,没想到,又出问题了

错误3:

线程“main”中的异常 java.sql.SQLException:服务器时区值“ÖÐ1ú±ê׼ʱÜä”未知或代表多个时区。您必须配置服务器或 JDBC 驱动程序(通过 serverTimezone 配置属性)以使用更具体的时区值来使用时区支持。

这需要我们将时区更改为 jdbc:mysql://localhost :3306/ds3?useSSL=falseserverTimezone=UTC

终于没有再报错了。

错误4:配置xml文件时需要转换为自己的转义字符

配置属性文件url url=jdbc:mysql:///ds3?useSSL=falseserverTimezone=UTC 配置xml文件urlproperty name = "url" jdbc:mysql://localhost:3306/ds3?useSSL=falseserverTimezone=UTC/property

如何连接mysql数据库到jdbc

•创建一个使用JDBC连接数据库的程序,包括7个步骤:

1.安装JDBC驱动程序:

在连接数据库之前,先安装要通信的文件驱动程序。 JVM(Java 虚拟机),

这是通过类 java.lang.Class 的静态方法 forName(String className) 实现的。

示例:

try{

//包含MySql驱动类

Class.forName("com.mysql.jdbc.Driver") ;

}catch(ClassNotFoundException e){

System.out.println("未找到驱动类,安装驱动失败!");

e.printStackTrace();

}

执行成功后,会在DriverManager类中注册一个Driver类的实例。

2. 提供JDBC 连接的URL

•连接URL 指定连接数据库时的协议、子协议和数据源标识符。

•类型: 协议: 子协议:数据源标识符

协议:在 JDBC 中始终以 jdbc 开头

子协议:桥接连接的驱动程序或数据管理系统的名称。

源 ID:记下数据源的地址和端口。

示例:(MySql 连接 URL)

jdbc:mysql:

//localhost:3306/test?useUnicode=truecharacterEncoding=gbk;

useUnicode=true:指定使用Unicode字符集。如果characterEncoding设置为

gb2312或GBK,则该参数必须设置为true。 characterEncoding=gbk:字符编码方式。

3. 创建数据库连接

•要连接到数据库,您需要从java.sql.DriverManager 请求并接收Connection 对象。

该对象代表数据连接。

•使用DriverManager的getConnectin(String url , String username ,

String password )方法传入要连接的指定数据库的路径和数据库的用户名

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门