1.1Java使用JDBC原生方式连接MySql数据库

     前言:今天有朋友问我原生的java连接数据库,因为框架的使用,如果基础不牢固的人,是很容易遗忘原生的连接方式。今天正好趁此做一下回顾:

   这里只考虑原生方式,框架就不在这里细说。
  一、先大体搞清楚连接时,常用元素都是什么作用:
  在MySQL的官方文档中,这样解释说到:

  1. java.sql.Driver 它在MySQL Connector / J 中实现的类的名称 是 com.mysql.jdbc.Driver,也就是驱动程序。你可以把它理解为发动机,没了它,其他都没扯。

  2. URL 有了发动机之后,你要开始利用它的力量,也就是为它指明前进的方向,而URL就是它的方向。

    值得一提的是,目前连接URL的通用格式是这样的:

	protocol//[hosts][/database][?properties]
	
	protocol:一种连接协议,约定的规则。
	hosts:主机名,通常后跟端口号,例如当前主机默认就是localhost:3306,当然也可以多主机连接,这里暂时不表。
	database:数据库嘛

其实应用测试时也就是这样的:

	jdbc:mysql://localhost:3306/test
  1. username 数据库连接的用户名
    passowrd 连接密码
  2. Connection 与数据库建立连接关系,通常为 DriverManager.getConnection(url, username, password)。这里可以很明显的感觉出来,每个元素所产生的作用。
  3. Statement / PreparedStatement ,需要特别注意的是,我们提倡使用后者,也就是预编译语句。
    PreparedStatement好处:
    简化Statement中的操作
    提高执行语句的性能
    可读性和可维护性更好
    在代码示例中,语法会详细体现。
  4. 有了PreparedStatement语句之后,我们可以采用以下语句进行执行:
    executeQuery(String) 查询
    executeUpdate(String SQL) 更新数据
    execute(String SQL) 如果你不知道是查询还是修改,可以使用这个语句

二、示例代码及注释
准备:
首先要导入mysql-connector-java 的jar包
其次,在数据库中准备如下格式的表:
在这里插入图片描述
之后写基本的连接代码
为了实现代码的重用,我对两个基本方法添加和查询进行封装:
这是接口:(User类可自行写入)

public interface UserDao {
	public void add(User user);
	public User findByUsername(String username);
}

下面是实现类:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import cn.bang.user.domain.User;

public class JdbcUserDao implements UserDao {

	@Override
	public void add(User form) {
		String driverClassName = "com.mysql.jdbc.Driver";	//启动驱动
		String url = "jdbc:mysql://localhost:3306/test";	//设置连接路径
		String username = "root";	//数据库用户名
		String password = "123";	//数据库连接密码
		Connection con = null;		//连接
		PreparedStatement pstmt = null;	//使用预编译语句
		ResultSet rs = null;	//获取的结果集
		try {
			Class.forName(driverClassName); //执行驱动
			con = DriverManager.getConnection(url, username, password); //获取连接
			
			
			String sql = "INSERT INTO USER VALUES(?,?,?,?)"; //设置的预编译语句格式
			pstmt = con.prepareStatement(sql);
			pstmt.setString(1, form.getUsername());
			pstmt.setString(2, form.getPassword());
			pstmt.setInt(3, form.getAge());
			pstmt.setString(4, form.getGender());
			pstmt.executeUpdate();
		} catch (Exception e) {
			throw new RuntimeException(e);
		}finally {
			//关闭资源,倒关
			try {
			if(rs != null) rs.close();
			if(pstmt != null) pstmt.close();
			if(con != null) con.close();  //必须要关
			} catch (Exception e) {
			}
		}
		

	}

	@Override
	public User findByUsername(String username) {
		String driverClassName = "com.mysql.jdbc.Driver";
		String url = "jdbc:mysql://localhost:3306/test";
		String mysqlusername = "root";
		String password = "123";
		Connection con = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			
			Class.forName(driverClassName);
			con = DriverManager.getConnection(url, mysqlusername, password);
			
			
			String sql = "SELECT * FROM USER WHERE username=?";
			pstmt = con.prepareStatement(sql);
			pstmt.setNString(1, username);

			rs = pstmt.executeQuery();
			if(rs == null) {
				return null;
			}
			if(rs.next()) {
			User user = new User();
			user.setUsername(rs.getString("username"));
			user.setPassword(rs.getString("password"));
			user.setAge(rs.getInt("age"));
			user.setGender(rs.getString("gender"));
			
			
			return user;
		} else {
			return null;
		}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}finally {
			//关闭资源,倒关
			try {
			if(rs != null) rs.close();
			if(pstmt != null) pstmt.close();
			if(con != null) con.close();  //必须要关
			} catch (Exception e) {
			}
		}
	}
}

开始进行测试
在这里插入图片描述
在这里插入图片描述

这时候我们去数据库中查看:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其中验证码我简单使用的一个类引入的。

资料引导:
MySQL官方文档

  • 53
    点赞
  • 271
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
使用Java语言连接MySQL数据库,可以使用JDBCJava Database Connectivity)API。 以下是使用JDBC连接MySQL数据库的步骤: 1. 下载MySQL JDBC驱动程序:从MySQL官方网站下载MySQL JDBC驱动程序JAR文件。 2. 导入MySQL JDBC驱动程序:在Java项目中导入MySQL JDBC驱动程序JAR文件。 3. 加载驱动程序:使用Class.forName()方法加载MySQL JDBC驱动程序。 4. 创建连接使用DriverManager.getConnection()方法创建一个连接对象,连接MySQL数据库。 5. 创建语句对象:使用Connection对象的createStatement()方法创建一个Statement对象,用于执行SQL语句。 6. 执行SQL语句:使用Statement对象的executeQuery()方法执行SQL语句,并返回一个ResultSet对象,用于读取查询结果。 7. 处理查询结果:使用ResultSet对象的next()方法遍历查询结果集,并使用getXXX()方法获取每一列的值。 8. 关闭连接使用Connection对象的close()方法关闭连接。 以下是一个简单的Java程序,演示如何使用JDBC连接MySQL数据库,并执行一个查询: ```java import java.sql.*; public class MySQLTest { public static void main(String[] args) { try { // 加载MySQL JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 创建连接 Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8", "root", "password"); // 创建语句对象 Statement stmt = conn.createStatement(); // 执行查询 ResultSet rs = stmt.executeQuery("SELECT * FROM user"); // 处理查询结果 while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.printf("id=%d, name=%s, age=%d%n", id, name, age); } // 关闭连接 rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上面的示例中,我们使用了以下参数连接MySQL数据库: - 主机名:localhost - 端口号:3306 - 数据库名:test - 编码:UTF-8 - 用户名:root - 密码:password 您应该将这些参数替换为您自己的数据库连接参数。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值