Java JDBC与MYSQL数据库

在MySQL中创建一个数据库company,在数据库中创建一个数据表emp,表格字段有:no,name,表示工号和姓名,在数据库中写入自己的学号和姓名
编写测试类Test,连接MySQL数据库,然后通过sql语句查询表emp的内容并打印出来
不会打出代码,需要大家帮忙

完成代码如下:

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/company?useUnicode=true&characterEncoding=utf8";
        try (Connection connection = DriverManager.getConnection(url, "root", "123456")) {
            ResultSet rs = connection.createStatement().executeQuery("select * from emp");
            while(rs.next()) {
                System.out.println("工号:" + rs.getString("no"));
                System.out.println("姓名:" + rs.getString("name"));
            }
        }
    }

如有帮助,请采纳,十分感谢!

注:
(1)我使用的是MySQL 8.0,一定要记得换以下用户名和密码,大家不一样
(2)不要忘记在pom.xml添加依赖

 <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>
1、数据库

create database company;
use company;
CREATE TABLE emp
(no Varchar(9) PRIMARY KEY,
name Varchar(20) UNIQUE
);

INSERT INTO emp(no,name)
VALUES('001','小桀同学');


2、java源代码

```java
import java.sql.*;

public class Student {

    private static String Driver = "com.mysql.cj.jdbc.Driver";
    private static final String User = "root";//换成自己的账户名
    private static final String Pwd = "520710828guo";//换成自己的账户密码
    private static final String Url = "jdbc:mysql://localhost:3306/company?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";

    public static void dispaly(){
        Connection conn = null;
        Statement stmt = null;
        try{
            // 注册 JDBC 驱动
            Class.forName(Driver);
            // 打开链接
            conn = DriverManager.getConnection(Url, User, Pwd);
            // 执行查询
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT no, name FROM emp";
            ResultSet rs = stmt.executeQuery(sql);
            // 展开结果集数据库
            while(rs.next()){
                // 通过字段检索
                String no = rs.getString("no");
                String name = rs.getString("name");
                // 输出数据
                System.out.print("no: " + no+"     "+"name: " + name+"\n");
            }
            // 完成后关闭
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            // 处理 JDBC 错误
            se.printStackTrace();
        }catch(Exception e){
            // 处理 Class.forName 错误
            e.printStackTrace();
        }finally{
            // 关闭资源
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }// 什么都不做
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        dispaly();
    }
    
}


3、结果展示

img

img

// 驱动
private static final String DRIVER = "com.mysql.jdbc.Driver";
// 地址
private static final String URL = "jdbc:mysql://localhost:3306/company";
//用户名
private static final String USER_NAME = "root";
// 密码
private static final String PSW = "123456";

/**
 *  获取连接
 */
public static Connection getConnection(){
  Connection conn = null;
  try {
    // 加载驱动
    Class.forName(DRIVER);
    // 数据库连接
    conn = DriverManager.getConnection(URL,USER_NAME,PSW);

  } catch (ClassNotFoundException e) {
    System.out.println("加载驱动失败,请检查是否引入Jar包或者驱动名称是否正确");
    throw new RuntimeException("加载驱动失败,请检查是否引入Jar包或者驱动名称是否正确",e);
  } catch (SQLException throwables) {
    System.out.println("连接数据库失败,请检查数据库地址,用户名,密码是否正确");
    throw new RuntimeException("连接数据库失败,请检查数据库地址,用户名,密码是否正确",throwables);
  }
  return conn;
}

/**
* 关闭连接
* @param conn
*/
public static void close(Connection conn){
  if(conn != null){
    try {
      conn.close();
    } catch (SQLException throwables) {
      throwables.printStackTrace();
    }
  }
}

public static void doQuery(){
  String sql = "select * from emp";
  Connection conn = getConnection();
  PreparedStatement statement = null;
  ResultSet resultSet = null;
  try {
    statement = conn.prepareStatement(sql);
    resultSet = statement.executeQuery();
    // resultSet.next 方法  将光标向前移动一行,最初为第一行之前,第一次调用使得第一行为当前行
    while (resultSet.next()){
      int id = resultSet.getInt("no");
      String name = resultSet.getString("name");
      System.out.println("查询到no为"+no+",name为"+name+"的记录");
    }

  } catch (SQLException throwables) {
    throwables.printStackTrace();
  } finally {
    if(resultSet != null){
      try {
        resultSet.close();
      } catch (SQLException throwables) {
        throwables.printStackTrace();
      }
    }
    close(conn,statement);
  }
}

你可以参考我的文章,有数据库连接,测试的内容

这得看看你到底是mysql没连接上还是sql有问题查不出来

搜一下手动编写JDBC代码 多得很

可以看一下我的文章,之前做的小项目

初学者 自己去下载相应版本的jdbc驱动 然后写jdbc工具类
调用工具类做增删改查即可

jdbc示例不管是在网上还是课本上都有很多的,随便翻一个动手抄一遍也比在这里直接让别人写好复制粘贴强