会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132824个问题
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 361楼

com.bjsxt;

java.sql.Connection;
java.sql.DriverManager;
java.sql.SQLException;
java.sql.Statement;

JdbcTest {
    insertDepartments(String department_name,location_id){
        Connection conn = ;
        Statement state = ;
        {
            Class.();
            conn = DriverManager.(,,);
            String sql=+department_name++location_id+;
            state = conn.createStatement();
            falg = state.executeUpdate(sql);
            System..println(falg);
        } (Exception e) {
            e.printStackTrace();
        }{
            (state !=){
                {
                    state.close();
                } (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        (conn !=){
            {
                conn.close();
            } (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    main(String[] args) {
        JdbcTest test = JdbcTest();
        test.insertDepartments(,);
    }
}

老师:String sql="insert into departments values(default,'"+department_name+"',"+location_id+")";(逗号加了后运行还在报错)

Mon Nov 04 18:55:35 CST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)

at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1714)

at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1224)

at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2199)

at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2230)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2025)

at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:778)

at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)

at java.sql.DriverManager.getConnection(DriverManager.java:664)

at java.sql.DriverManager.getConnection(DriverManager.java:247)

at com.bjsxt.JdbcTest.insertDepartments(JdbcTest.java:17)

at com.bjsxt.JdbcTest.main(JdbcTest.java:44)

请老师再帮忙检查下。


JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 363楼

/**
*Test类
*/
package com.itbaizhan;

public class Test {
    public static void main(String[] args) {
        StatementTest st =new StatementTest();
        st.insertUser("hxf",25);
    }
}

package com.itbaizhan;

import java.sql.Connection;
import java.sql.Statement;

/**
 *  Statement对象的使用
 */

public class StatementTest {
    public void insertUser(String username,int userage){
        Connection connection =null;
        Statement statement =null;
        try {
            //获取Connection对象
            connection=JdbcUtils.getConnection();
            //获取Statement对象
            statement=connection.createStatement();
            //定义需要执行的SQL语句
            String sql ="insert into users values(default,'"+username+"',"+userage+")";
            //执行SQL,返回boolean值,如果sql有结果集返回,那么返回值为true,如果没有结果集返回,则返回false。
            boolean execute =statement.execute(sql);
            System.out.println(execute);

        }catch (Exception e){
            e.printStackTrace();
        }finally {
                JdbcUtils.closeResource(statement,connection);
        }
    }
}



package com.itbaizhan;

import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * Jdbc工具类
 */
public class JdbcUtils {
    private static String url;
    private static String name;
    private static String pwd;

    static  {
        try{
            //实例化properties对象
            Properties prop=new Properties();
            //获取读取properties文件的字节输入流对象
            InputStream is = JdbcTest2.class.getClassLoader().getResourceAsStream("jdbc.properties");
            //读取properties文件并解析
            prop.load(is);
            //获取链接数据库的url,用户名,密码
            String url = prop.getProperty("url");
            String name = prop.getProperty("username");
            String pwd = prop.getProperty("pwd");
            //获取数据库驱动全名
            String driver = prop.getProperty("driver");
            //加载并注册驱动
            Class.forName(driver);

        }catch ( Exception e){
            e.printStackTrace();
        }
    }

    //获取数据库链接对象
    public static Connection getConnection(){

        Connection connection = null;
        try {
            connection = DriverManager.getConnection(url,name,pwd);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
    //关闭数链接对象
    public static void closeConnection(Connection connection){
        try {
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    //提交事务
    public static void commit(Connection connection){
        try {
            connection.commit();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    //回滚事务
    public static void rollback(Connection connection){
        try {
            connection.rollback();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    //关闭Statement对象
    public static void  closeStatement(Statement statement){
        try {
            statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    //关闭ResultSet
    public static void closeResultSet(ResultSet resultSet){
        try {
            resultSet.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    //DML操作时关闭资源
    public static void closeResource(Statement statement,Connection connection){
        //先关闭Statement对象
        closeStatement(statement);

        //后关闭Connection对象
        closeConnection(connection);
    }
    // //查询时关闭资源
    public static void closeResource(ResultSet resultSet,Statement statement,Connection connection){
        //先关闭ResultSet
        closeResultSet(resultSet);
        //在闭Statement对象
        closeStatement(statement);
        //最后关闭Connection对象
        closeConnection(connection);
    }
}


#连接Mysql数据库的URL
url=jdbc:mysql://localhost:3306/itbz?useSSL=false&useUnicode=true&characterEncoding=utf-8
#连接数据库的用户名
username=root
#连接数据库的密码
pwd=root
#数据库驱动名称
driver=com.mysql.jdbc.Driver


image.png

老师,我代码查了几遍,url也试了,在上节课的案例中不通过工具类链接数据库是不报错的,工具类的代码检查几遍后不懂哪里出错了,您能帮我看看吗


JAVA 全系列/第三阶段:数据库编程/JDBC技术 366楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库 367楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库 368楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 370楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 371楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库 372楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 374楼


微信图片_20220124171215.png

JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 375楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637