JDBC 连接MySQL的使用。

本文介绍了JDBC(Java Database Connectivity)的基本概念,它是Java访问数据库的统一接口。接着讲解了如何使用JDBC连接MySQL数据库,包括下载相关驱动并将其导入项目中。最后提供了一段连接代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是JDBC

JDBC  为Java Data Base Connectivity.  即Java数据库链接。

为实现Java访问数据库的统一接口。

2.JDBC连接mysql

连接具体的数据库需要相关的驱动,这里到

点击打开链接   下载。

解压后把jar导入到JDBC的项目中。

如果导入成功,则

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
不会报错。

3.  Code

package JDBC_test;
import com.mysql.jdbc.Connection;
//import com.mysql.jdbc.PreparedStatement;
import java.sql.*;
/**
 * 
 * @author ooc
 *   PreparedStatement 接口在java.sql.包中,
 *   由com.mysql.jdbc. 包中的同名类具体实现。
 *   继承自Statement,区别为PS会预处理,多次查询时速度更快。
 *   
 *   
 */
public class JDBC_init {
	private static Connection conn;
	private static Connection getConn() {
	    String driver = "com.mysql.jdbc.Driver";
	    String url = "jdbc:mysql://localhost:3306/zc";
	    //  zc  是连接的数据库的名称。
	    // 对mysql数据库的zc  database进行操作
	    String username = "root";
	    String password = "******";   // 已修改
	    Connection conn = null;
	    try {
	        Class.forName(driver); //classLoader,加载对应驱动
	        conn = (Connection) DriverManager.getConnection(url, username, password);
	        // 创建连接
	    } catch (ClassNotFoundException e) {
	        e.printStackTrace();
	    } catch (SQLException e) {
	        e.printStackTrace();
	    }
	    return conn;
	}
	private static Integer getAll() {
	  //  conn = getConn();   //连接
	    String sql = "select * from Jdbc";  //显示数据库中的所有内容
	    PreparedStatement pstmt;  // 预处理语句
	    try {
	        pstmt = (PreparedStatement)conn.prepareStatement(sql);  
	        //构建PS对象时传递sql语句,返回该语句的PreparedStatement对象
	        ResultSet rs = pstmt.executeQuery();  // 执行询问
	         //  pstmt.executeUpdate();
	        /**
	         *  executeQuery(); 执行询问,返回的为一个结果集。
	         *  executeUpdate();  为执行insert  update delete,  创建数据库、table等语句。 此类语句返回值一般为整数。
	         *  execute();   返回多个结果集,多个更新计数,一般不使用。
	         */
	        int col = rs.getMetaData().getColumnCount();
	        // 获得结果集的列数。
	        System.out.println(col);
	        while (rs.next()) {
	            for (int i = 1; i <= col; i++) {
	                System.out.print(rs.getString(i) + "\t");
	                /*
	                 * rs.next(); //是否还有下一行
	                 * rs.getString(i); // 返回当前行第i列,并读取成String
	                 */
	             }
	            System.out.println();
	        }
	           
	    } catch (SQLException e) {
	        e.printStackTrace();
	    }
	    return null;
	}
	public static void insert(Integer age){
		String sql="insert into Jdbc values('ooc',";
		sql+=age.toString()+",'men','1999-02-28');";
		PreparedStatement ps;
		try{
			ps=conn.prepareStatement(sql);
			ps.executeUpdate();
			ps.close();
		}catch(SQLException e){
			e.printStackTrace();
		}
	}
	public static void main(String[] args){
//		Connection conn=getConn();
	//	System.out.println(conn);
		conn=getConn();
		getAll();
		System.out.println("first Query is quit");
		for(int i=1;i<=10;i++){
			insert(new Integer(i));
		}
		getAll();
		try{
		conn.close();  // 关闭与数据库的连接
		}catch(SQLException e){
			e.printStackTrace();
		}
	}
}

输出的结果为

4
zcdzc	233	wome	1990-01-02	
first Query is quit
4
zcdzc	233	wome	1990-01-02	
ooc	1	men	1999-02-28	
ooc	2	men	1999-02-28	
ooc	3	men	1999-02-28	
ooc	4	men	1999-02-28	
ooc	5	men	1999-02-28	
ooc	6	men	1999-02-28	
ooc	7	men	1999-02-28	
ooc	8	men	1999-02-28	
ooc	9	men	1999-02-28	
ooc	10	men	1999-02-28	




附录:

linux命令

netstat   -antp | grep mysql       //所有网络连接中筛选mysql文本

 echo "options asus_nb_wmi wapt=4" |sudo tee /etc/modprobe.d/asus_nb_wmi.conf
/*** tee 命令
    功能说明:读取标准输入的数据,并将其内容输出成文件。
    -a或--append  附加到既有文件的后面,而非覆盖它.
 -i-i或--ignore-interrupts  忽略中断信号。
 --help  在线帮助。
 --version  显示版本信息。
*/
ps 命令 查看当前进程  -A 显示所有

Mysql 命令:
mysql -u root -p  登录
//Mysql里的命令一定要有分号
create database zc;  //创造数据库zc
use zc;  // 进入zc数据库。
show tables;  //显示当前数据库中所有数据类型。
create table tablename( id datatype ....);  //创造tablename类型的table,类似于结构体。
insert into tablename values('idiszc','32');  //向当前数据库中的tablename类型插入(‘idiszc’,‘32’);
select * from tablename; // 显示当前数据库tablename类型中所有内容。
select * from tablename where id='zc'; // 显示所有tablename中id为'zc'的项。
desc tablename; //显示tablename的结构
drop tablename; //删除tablename类型。
drop database zc; // 删除zc数据库。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值