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

//更新departments表中department_id为3的数据,将部门换成教学部,将location_id 换成6
    public void updateDepartments(String department_name,int location_id,int department_id){
        Connection conn=null;
        Statement state=null;
        try{
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bjsxt?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT","root","mysql");
            state=conn.createStatement();
            String sql="update departments d set d.department_name='"+department_name+"',d.location_id="+location_id+"where d.department_id="+department_id;
            int flag=state.executeUpdate(sql);
            System.out.println(flag);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(state!=null){
                try {
                    state.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }

            }
        }
    }
    public static void main(String[] args) {
        jdbcTest test=new jdbcTest();
        //test.insertDepartments("研发部",8);
        test.updateDepartments("教学部",6,3);
    }
}

捕获.PNG


老师您好,在更新数据库这节,拼接的更新语句的字符串检查了几遍,没有找到问题,报错

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

package com.bjsxt;

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

public class jdbcTest {
    //定义一个方法,向departments表中添加一条数据
    public void insertDepartments(String department_name,int location_id){

        Connection conn=null;
        Statement state=null;

        try {
            //注册驱动
            Class.forName("com.mysql.jdbc.Driver");  //通过反射jar包中的Driver类来获得驱动对象
            //创建链接
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bjsxt?useUnicode=true&characterEncoding=utf-8","root","root");
            String sql="insert into departments values(default,'"+department_name+"',"+location_id+")";
            state=conn.createStatement();
            int flag=state.executeUpdate(sql);
            System.out.println(flag);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(state!=null){
                try {
                    state.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }

            }
        }
    }
    public static void main(String[] args) {
        jdbcTest test=new jdbcTest();
        test.insertDepartments("研发部",8);
    }
}

blob.png

 您好老师,按照视频中的步骤向数据库中添加数据报错,这个什么原因呢

JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1236楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 1237楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库的使用 1239楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库的使用 1240楼

public class jdbcTest {
    public void insertDepartments(String department_name,int location_id){
        Connection conn =null;
        Statement state =null;
        try {
            //驱动注册
            Class.forName("com.mysql.jdbc.Driver");
            //创建连接
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bjsxt?useUnicode=true&characterEncoding=utf-8","root","19981015wxj");
            String sql = "insert into departments value(default,'"+department_name+"',"+location_id+")";
            state = conn.createStatement();
            int flag = state.executeUpdate(sql);
            System.out.println(flag);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if (state!=null){
                try {
                    state.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if (conn!=null){
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
    }

    public static void main(String[] args) {
        jdbcTest test = new jdbcTest();
        test.insertDepartments("研发部",8);
    }
}

老师,我在插入数据时如果department_name插入的是中文就会报错

image.pngimage.png

但如果department_name插入的是英文又没问题

image.png

这是为什么?

JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1241楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 1242楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 1245楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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