会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133636个问题

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 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术(旧) 361楼

/**
*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 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术 364楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/MySQL数据库 365楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/MySQL数据库 366楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术 367楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/Oracle 数据库的使用 368楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/SQL 语言 369楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/MySQL数据库 370楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术(旧) 372楼


微信图片_20220124171215.png

JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术(旧) 373楼

老师,这是我对逻辑分页代码实现的一个理解,请问您觉得有什么需要纠正的地方吗?

public void selectDeptPage(int current,int pageRows){
    Connection conn=null;
    Statement state=null;
    ResultSet rs=null;

    try {
        conn=JdbcUtil.getConnection();
        String sql="select * from department";
        state=conn.createStatement();
        rs=state.executeQuery(sql);
        int begin=(current-1)*pageRows; //表示取每页的第一条数据所在位置的索引,最小为0
        int end=current*pageRows;  //表示每页的最后一条数据的位置,这个位置是指一般人的位置思维中的位置,即最后一条数据的索引位置+1,

        int currentNum=0;  //当前位置的计数器
        while (rs.next()){
            if(currentNum>=begin&&currentNum<end){  //当计数器大于或等于每页第一条数据的索引以及小于最后一条数据的位置时,打印出表中指定列的数据
                System.out.println(rs.getInt("department_id")+" "+rs.getString("department_name")+" "+rs.getInt(3));
                if(currentNum==end-1){  
                    break;  //当计数器等于每页最后一条数据的索引值时,表示属于当前页current的数据结果集已经获取完毕,没有必要再继续移动指针获取下一行的结果集,直接结束while循环
                }
            }
            currentNum++;  
        }

    } catch (SQLException e) {
        e.printStackTrace();
    }finally {
        JdbcUtil.closeResource(state,conn,rs);
    }
}


JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术(旧) 375楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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