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

老师,麻烦帮我找找这个bug

package DataBase;

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


public class test {
	public void insertDepartments(String department_name,int location_id) {
		Connection conn=null;
		Statement state=null;
		try {
			//注册驱动
			Class.forName("com.mysql.jdbc.Driver");
			//创建链接,解决乱码问题useUnicode=true&characterEncoding=utf-8
			conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8", "root", "root");
			String sql="insert into department values('"+department_name+"',"+location_id+")";
			//注意不要导错包,使用javasql包下
			state=conn.createStatement();
			int flag=state.executeUpdate(sql);
			System.out.println(flag);
			//注意释放statement(先)和connection(后)
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			if(state!=null) {
				try {
					state.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if(conn!=null) {
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		
	}
	//更新departments表中的department_id为6的数据,将部门修改为教学部,location_id改为6
	private void updateDepartments(String departmentString_name,int location_id,int department_id) {
		// TODO Auto-generated method stub
		Connection conn=null;
		Statement state=null;
		try {
			conn=jdbcUtil.getConnection();
			String sql="update department set department.department_name ='"+departmentString_name+"',department.location_id ="+location_id+" where department.location_id ="+department_id;
			System.out.println(sql);
			//注意不要导错包,使用javasql包下
			state=conn.createStatement();
			int flag=state.executeUpdate(sql);
			System.out.println(flag);
			//注意释放statement(先)和connection(后)
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			jdbcUtil.closeResource(state, conn);
		}
	}
	public void selectDepartmentsById(int departmentId) {
		Connection conn=null;
		Statement state=null;
		ResultSet rs=null;
		try {
			conn=jdbcUtil.getConnection();
			state=conn.createStatement();
			String sql="select * from department where department.department_id="+departmentId;
			//执行查询,返回结果
			rs=state.executeQuery(sql);
			while (rs.next()) {
				rs.getInt("department_id");
				rs.getString("department_name");
				rs.getInt(2);
				System.out.println(rs.getInt("department_id")+" "+rs.getString("department_name")+" "+rs.getInt(2));
			}
		} 
		catch (Exception e) {
			// TODO: handle exception
		}finally {
			jdbcUtil.closeResource(state, conn,rs);
		}
	}
	public static void main(String[] args) {
		test test=new test();
//		test.insertDepartments("教学部", 18);
//		test.updateDepartments("教学部", 3,2);
		test.selectDepartmentsById(1);
	}
}
package DataBase;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;

public class jdbcUtil {
	//只实例化数据库驱动一次
	private static String driver;
	private static String jdbcURL;
	private static String username;
	private static String userpassword;
	static {
		//读取Properties文件
		ResourceBundle bundle=ResourceBundle.getBundle("jdbc");
		driver=bundle.getString("driver");
		jdbcURL=bundle.getString("jdbcURL");
		username=bundle.getString("username");
		userpassword=bundle.getString("userpassword");
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	//获取Connection对象
	public static Connection getConnection() {
		// TODO Auto-generated method stub
		Connection conn=null;
		try {
			conn=DriverManager.getConnection(jdbcURL,username,userpassword);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	private static void closeStatement(Statement state) {
		// TODO Auto-generated method stub
		if(state!=null) {
			try {
				state.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	private static void closeConnection(Connection conn) {
		// TODO Auto-generated method stub
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	private static void closeResultSet(ResultSet rs) {
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
	public static void closeResource(Statement state,Connection conn,ResultSet rs) {
		closeStatement(state);
		closeConnection(conn);
		closeResultSet(rs);
	}
	public static void closeResource(Statement state,Connection conn) {
		closeStatement(state);
		closeConnection(conn);
	}
}
driver="com.mysql.jdbc.Driver";
jdbcURL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8";
username="root";
userpassword="root";

image.png

运行增加一条数据代码不会报错,但是查找代码报如上错误

JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 995楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 996楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 998楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 1002楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1003楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 1004楼

jdbcUtil

  1. package com.bjsxt;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ResourceBundle;
    
    /**
     * JDBC工具类
     */
    public class jdbcUtil {
        private static String driver ;
        private static String jdbcUrl ;
        private static String username ;
        private  static String userpassword ;
        static {
            //读取properties文件
            ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
            driver = bundle.getString("driver");
            jdbcUrl=bundle.getString("jdbcUrl");
            username=bundle.getString("username");
            userpassword=bundle.getString("userpassword");
            //驱动注册
            try {
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
            //获取Connection对象
        public static Connection getConnection(){
            Connection conn = null;
            //创建连接
            try {
                conn = DriverManager.getConnection(jdbcUrl,username,userpassword);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return conn;
        }
    
        //关闭statement
        public static void closeStatement(Statement state){
            if (state != null){
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        //关闭connection
        public static void closeConnection(Connection conn){
            if(conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
  2. jdbcTset


  3. package com.bjsxt;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class jdbcTest {
        //向department添加一条数据
        public void insertDepartments(String department_name, int location_id){
            Connection conn = null;
            Statement state = null;
            try {
                //驱动注册
                //创建连接
                conn = jdbcUtil.getConnection();
                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 {
                jdbcUtil.closeStatement(state);
                jdbcUtil.closeConnection(conn);
    
            }
        }
    
        //更新数据
        public void updateDepartments (String department_name,int location_id,int department_id){
            Connection conn = null;
            Statement state = null;
            try{
                conn = jdbcUtil.getConnection();
                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 {
                jdbcUtil.closeStatement(state);
                jdbcUtil.closeConnection(conn);
            }
        }
    
        public static void main(String[] args) {
            jdbcTest test = new jdbcTest();
            //test.insertDepartments("研发部",8);
           test.updateDepartments("研发部4",6,3);
            //test.insertDepartments("教学部",9);
    
        }
    }

properties中

driver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/bjsxt?useUnicode=true&characterEncoding=utf-8
username=root
userpassword=niehan

看不出来是什么原因 为什么提示未连接呢?

image.png

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

课程分类

百战程序员微信公众号

百战程序员微信小程序

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