JAVA中使用JDBC连接数据库的几种方法

前言

今天有点空闲,复习了一下java中JDBC的相关知识,使用的数据库是 mysql,记录一下

一、下载驱动包

Java 连接 MySQL 需要驱动包,官网下载地址——MySQL驱动包官网下载 ,建议大家下载以前的版本,新的版本有的没有 Connection 类

在这里插入图片描述
在这里插入图片描述

将下载下来的压缩包解压,将.jar文件复制到项目的lib资源目录下,右击jar包,Build Path—Add to Build Path

二、JDBC 的第一种写法

代码如下:

package com.jdbcutils;

import java.sql.DriverManager;

import com.mysql.jdbc.Connection;

public class Jdbc_v1 {
	
	public static Connection getConnection() throws Exception{
		String dirver = "com.mysql.jdbc.Driver";
		Class.forName(dirver);
		String url = "jdbc:mysql://localhost:3306/dbtest";
		String user = "root";
		String pwd = "123456";
		Connection conn = (Connection) DriverManager.getConnection(url, user, pwd);
		return conn;
	}
	
}

二、JDBC 的第二种写法

1.创建 properties 文件

在项目下创建后缀为 .properties的文件,如:jdbc.properties
内容如下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dbtest
user=root
pwd=123456

2.代码如下:

package com.jdbcutils;

import java.sql.DriverManager;
import java.util.ResourceBundle;

import com.mysql.jdbc.Connection;

public class Jdbc_v2 {
	
	private static String driver;
	private static String url;
	private static String user;
	private static String pwd;
	
	static {
		//通过 ResourceBundle 获取配置文件(注意:这里是文件名不带后缀)
		ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
		//获取配置文件中键值对
		driver = bundle.getString("driver");
		url = bundle.getString("url");
		user = bundle.getString("user");
		pwd = bundle.getString("pwd");
	}

	public static Connection getConnection() throws Exception{
		Class.forName(driver);
		return (Connection) DriverManager.getConnection(url, user, pwd);
	}
	
}

二、JDBC 的第三种写法

1.创建 properties 文件

在项目下创建后缀为 .properties的文件,如:jdbc.properties
内容如下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dbtest
user=root
pwd=123456

2.代码如下:

package com.jdbcutils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.DriverManager;
import java.util.Properties;

import com.mysql.jdbc.Connection;

public class Jdbc_v3 {
	
	private static String driver;
	private static String url;
	private static String user;
	private static String pwd;
	
	static {
		try {
			//通过类获取类加载器
			ClassLoader loader = Jdbc_v3.class.getClassLoader();
			//通过类加载器的方法获取输入流读取配置文件(注意:这里是文件名要带后缀)
			InputStream is = loader.getResourceAsStream("jdbc.properties");
			//新建 Properties 对象
			Properties props = new Properties();
			//加载输入流
			props.load(is);
			//通过键获取值
			driver = props.getProperty("driver");
			url = props.getProperty("url");
			user = props.getProperty("user");
			pwd = props.getProperty("pwd");
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}

	public static Connection getConnection() throws Exception{
		Class.forName(driver);
		return (Connection) DriverManager.getConnection(url, user, pwd);
	}
	
}

测试连接

代码如下:

package com.main;


import java.sql.ResultSet;

import com.jdbcutils.Jdbc_v1;
import com.jdbcutils.Jdbc_v2;
import com.jdbcutils.Jdbc_v3;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

public class Main1 {
	public static void main(String[] args) {
		
		
		try {
			insertV1();
			insertV2();
			insertV3();
			queryV3();
		} catch (Exception e) {
		}
	}

	
	private static void insertV1() throws Exception {
		Connection conn = Jdbc_v1.getConnection();
		String sql = "insert into student values(null,?,?)";
		PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
		ps.setString(1, "张三");
		ps.setInt(2, 18);
		int i = ps.executeUpdate();
		System.out.println(i+" 条记录插入成功!");
		conn.close();
		ps.close();
	}
	
	private static void insertV2() throws Exception {
		Connection conn = Jdbc_v2.getConnection();
		String sql = "insert into student values(null,?,?)";
		PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
		ps.setString(1, "李四");
		ps.setInt(2, 20);
		int i = ps.executeUpdate();
		System.out.println(i+" 条记录插入成功!");
		conn.close();
		ps.close();
	}

	
	private static void insertV3() throws Exception {
		Connection conn = Jdbc_v3.getConnection();
		String sql = "insert into student values(null,?,?)";
		PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
		ps.setString(1, "王二麻子");
		ps.setInt(2, 22);
		int i = ps.executeUpdate();
		System.out.println(i+" 条记录插入成功!");
		conn.close();
		ps.close();
		
	}
	
	private static void queryV3()  throws Exception {
		Connection conn = Jdbc_v3.getConnection();
		String sql = "select * from student";
		PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
		ResultSet rs =  ps.executeQuery();
		System.out.println("---------执行结果如下所示---------------");
		while(rs.next()) {
			int id = rs.getInt("id");
			String name = rs.getString("name");
			int age = rs.getInt("age");
			System.out.println(id + "\t" + name + "\t" + age);
		}
		conn.close();
		ps.close();
		
	}

}

控制台展示:
在这里插入图片描述

总结

以上就是JDBC连接数据库的内容了,几行数字,几行字母,认真编写生活的美好!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值