【问题标题】:How to connect to database connection in Java如何在 Java 中连接到数据库连接
【发布时间】:2014-02-17 03:58:11
【问题描述】:

我想知道如何连接到托管在 Xampp MySQL 中的数据库。

这是我迄今为止在我的 java 代码中要连接的内容,但我不确定我在做什么。

public static void main(String[] args) {
    try {
        Connection con = DriverManager.getConnection( host, username, password );
        String host = "jdbc:derby://localhost:1527/Employees";
        String uName = "root";
        String uPass= "password";
    }
    catch ( SQLException err ) {
    System.out.println( err.getMessage( ) );
    }

}
  1. 主机 URL 是什么?
  2. 我需要一个 JDBC Jar 文件来连接数据库吗?

我已经通过 phpMyAdmin 设置了一个数据库和表。只是不知道如何继续。

我正在使用 Netbeans 编写我的 Java 代码以连接到通过 Xampp PHPMyAdmin 创建的本地数据库。

最后,我想在 Java 中创建一个数据库连接并在 IDE 中调用表。不胜感激。

【问题讨论】:

  • 您在尝试连接时是否遇到错误?

标签: java database jdbc xampp


【解决方案1】:
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class DbOperations {
  Connection con;
  PreparedStatement ps;
    public DbOperations() {
        con = DbUtil.getConnection();
    }
    public boolean insertSubject(String name) throws SQLException {
    Statement s = con.createStatement();
    String sql = "insert into subject (name) values ('"+ name +"')";
     ps=con.prepareStatement(sql);
// ps.executeUpdate();
    ps.executeUpdate();
    if(ps!= null){
        System.out.println("successfull!!");
      return true;
    }else {
    return false;
    }
  
    }
    public ArrayList getSubjectById(int id) throws SQLException {
   
     Statement s = con.createStatement();
    String sql = "select * from subject where id = '"+ id +"'";
     ResultSet resultSet = s.executeQuery(sql);
   ArrayList<Object> records=new ArrayList<Object>();
while(resultSet.next()){
    // subject sub = new subject();
    // sub.id = resultSet.getInt(1);
    // sub.name = resultSet.getString(2);
    // records.add(sub.id);
    // records.add(sub.name);
    records.add(resultSet.getInt(1));
    records.add(resultSet.getString(2));
    System.out.println("record output:" + records );
}

return (ArrayList) records;
    }

    public ResultSet getAllSubjects() throws SQLException {
 Statement s = con.createStatement();
    String sql = "select * from subject";
     ResultSet resultSet = s.executeQuery(sql);
        return resultSet;
  }
  
    public boolean insertStudent(String student_name, float score, String name) throws SQLException {

    Statement s = con.createStatement();
    String sql = "select id from subject where name = '"+ name +"'";
     ResultSet resultSet = s.executeQuery(sql);
     int subId =0;
    while(resultSet.next()){
      subId = resultSet.getInt(1);
    }

    String sql1 = "insert into student (student_name,score,subject_id) values ('"+ student_name+"','"+score+"','"+subId+"')";

    int result = s.executeUpdate(sql1);
    if(result==0){
      return false;
    }else {
        return true;
    }
    
    }
    public ArrayList getStudentyId(int id) throws SQLException {

Statement s = con.createStatement();
    String sql = "select * from student where id = '"+ id +"'";
     ResultSet resultSet = s.executeQuery(sql);
   ArrayList<Object> records=new ArrayList<Object>();
while(resultSet.next()){
    // student sub = new student();
    // sub.id = resultSet.getInt(1);
    // sub.student_name = resultSet.getString(2);
    // sub.score = resultSet.getFloat(3);
    // sub.subject_id = resultSet.getInt(4);

    // records.add(sub.id);
    // records.add(sub.student_name);
    // records.add(sub.score);
    // records.add(sub.subject_id);
    records.add(resultSet.getInt(1));
    records.add( resultSet.getString(2));
    records.add(resultSet.getFloat(3));
    records.add(resultSet.getInt(4));

}
return (ArrayList) records;

}
    public ResultSet getAllStudents() throws SQLException {
        Statement s = con.createStatement();
    String sql = "select * from student";
     ResultSet resultSet = s.executeQuery(sql);
        return resultSet;
    }
    
}

【讨论】:

    【解决方案2】:

    数据库连接:

    这些是连接java应用程序和数据库所需要的以下步骤。

    • 导入sql包

    Import.java.sql.*;
    

    • 加载驱动程序

    Every database has diffirent driver,we are using sql database so driver for sql database is
    

    Class.forName(“com.mysql.jdbc.Driver”);

    • 制作网址

    String url=”jdbc:mysql://localhost/DataBaseName”;
    

    • 建立联系

    Connection con=DriverManager(url,”root”,””);
    

    • 创建语句对象

    Statement st=con.CreateStatement();
    
    After creating statement object,we can perform sql queries on database,
    

    • 进行查询

    String sql=”SELECT * FROM table_Name ”;
    

    • 制作 ResultSet 对象并执行查询

    ResultSet rs=st.excuteUpdate(sql);
    

    • 关闭连接的重要步骤

    con.close();
    

    注意如果我们在 jdk 中没有 sql 连接器,首先从这个 url 下载连接器 https://dev.mysql.com/downloads/connector/j/5.1.html 然后复制粘贴进去,

    Java/jre/lib/ext

    【讨论】:

      【解决方案3】:

      导入包:要求您包含包含数据库编程所需的 JDBC 类的包。大多数情况下,使用 import java.sql.* 就足够了。

      注册 JDBC 驱动程序:要求您初始化驱动程序,以便您可以打开与数据库的通信通道。

      打开一个连接:需要使用 DriverManager.getConnection() 方法创建一个 Connection 对象,代表与数据库的物理连接。

      【讨论】:

        【解决方案4】:
        package com.util;
        
        import java.sql.Connection;
        import java.sql.DriverManager;
        import java.sql.PreparedStatement;
        import java.sql.SQLException;
        
        
        
        public class DatabaseUtil1 {
        
            public static final String DRIVER="oracle.jdbc.driver.OracleDriver";
            public static final String URL="jdbc:oracle:thin:@DIPAK-PC:1521:xe";
            public static final String USERNAME="system";
            public static final String PASSWORD="password";
        
            public static Connection getConnection() throws ClassNotFoundException, SQLException
            {
                Connection con= null;
        
                Class.forName(DRIVER);
                con=DriverManager.getConnection(URL,USERNAME,PASSWORD);
        
                System.out.println(con);
                return con; 
            }
            public static void closePreparedStatement(PreparedStatement pst) throws SQLException
            {
                if(pst!=null)
                {
                    pst.close();
                }
        
            }
            public static void closeConnection(Connection con) throws SQLException
            {
                if(con!=null)
                {
                    con.close();
                }
        
            }
        
        
        
        }
        

        【讨论】:

          【解决方案5】:

          这是一个代码(Java 7 风格,try-with-resources,更简洁的风格),用于连接和检索数据库中的数据。

           public static final String SELECT_QUERY = "SELECT * FROM your_table_name";
           public static void main(String[] args) {
              String host = "jdbc:derby://localhost:1527/Employees";
              String uName = "root";
              String uPass = "password";
          
              try (Connection conn = DriverManager.getConnection(host, uName, uPass);
                   Statement stmt = conn.createStatement();
                   ResultSet rs = stmt.executeQuery(SELECT_QUERY)) {
          
                  while (rs.next()) {
                      //read your lines one ofter one
                      int id = rs.getInt("id");
                      String somePropertyValue = rs.getInt("some_column_name");
                      // etc. 
                  }
              } catch (SQLException e) {
                  e.printStackTrace();
              }
          }
          

          此外,如果您从命令行运行,则在您的类路径中添加 JDBC 驱动程序(*.jar 文件),或者如果您在 IDE(Eclipse、IDEA 等)中工作,则将此 jar 添加到您的项目中。有点每个人都不一样)。

          顺便说一句,如果变量声明在使用之后,您的代码如何编译?那个代码甚至无法编译。

          【讨论】:

            【解决方案6】:

            这是项目结构

            试试这个

            更新

                public static void main(String[] args) {
                // TODO Auto-generated method stub
                try {
                    Class.forName("com.mysql.jdbc.Driver");
                } catch (ClassNotFoundException e) {
                    System.out.println("Where is your MySQL JDBC Driver?");
                    e.printStackTrace();
                    return;
                }
            
                System.out.println("MySQL JDBC Driver Registered!");
                Connection connection = null;
            
                try {
                    connection = DriverManager
                    .getConnection("jdbc:mysql://localhost:3306/testspring","root", "password");
            
                } catch (SQLException e) {
                    System.out.println("Connection Failed! Check output console");
                    e.printStackTrace();
                    return;
                }
            
                if (connection != null) {
                    System.out.println("You made it, take control your database now!");
                } else {
                    System.out.println("Failed to make connection!");
                }
            }
            

            它对我有用

            我从Java2s.com下载了jar

            Refer

            【讨论】:

            • 问题。我在哪里添加jar文件?到我的 Netbeans 项目目录?我必须从 zip 文件中复制所有文件吗?
            • 创建一个文件夹lib并添加他们的jar
            • 我必须重命名 jar 文件还是保留命名约定?另外我可以写什么代码来说明与数据库的连接已经成功?
            • 就这样吧,没关系。对于您的下一个问题,请参阅编辑
            • 添加库的正确方法是将jar复制到lib文件夹中,然后右键单击您的项目->Properties->Java Build Java-> Add Jars(然后从lib文件夹中选择jar) -> 好的
            【解决方案7】:

            也许你应该在使用它们之前定义你的字符串。

            主机 URL 看起来不错。

            您必须在您的服务器中安装驱动程序,或者将其放在项目的/lib 文件夹中。在%DERBY_HOME%/lib文件夹中填写find,命名为derby.jar,假设%DERBY_HOME%是Derby的安装目录。

            【讨论】:

            • 我相信我使用的是mysql,这意味着我需要将url路径更改为以下右侧,String host = "jdbc:mysql://localhost:3306/db_test14";?请指教。
            • 你是对的,假设 MySQL 在端口 3306 上并且你的数据库名称是 db_test14。然后你需要一个MySQL JDBC driver
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-08-27
            • 2017-02-03
            • 2015-10-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多