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


package com.bjsxt;

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

public class JdbcTest {
	
	public void insertDepartment(String department_name, int location_id,float salary ){
		Connection con=null;
		Statement str=null;
		
		try {
			// con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test_2?useUnicode=true&characterEncoding=utf-8","root","root");
			con=jdbcUtil.getConnection();
			String sql="insert into department values(default,'"+department_name+"',"+location_id+","+salary+")";
			 str=con.createStatement();
			int flag=str.executeUpdate(sql);
			System.out.println(flag);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			jdbcUtil.closeResource(str, con);
			
		}
		
			
		
	}
	
	public static void updateDepartments(String department_name,int location_id,int department_id){
		 Connection con=null;
		 Statement str=null;
		 
		 try {
			Class.forName("com.mysql.jdbc.Driver");
			con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test_2?useUnicode=true&characterEncoding=utf-8","root","root");
			str=con.createStatement();
            String sql="UPDATE department d SET d.department_name='"+department_name+"',d.location_id="+location_id+" WHERE department_id="+department_id+"";
			int flag=str.executeUpdate(sql);
			System.out.println(flag); 
		} catch (ClassNotFoundException e) { 
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(str!=null){
				try {
					str.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
			if(con!=null){
				try {
					con.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
		
		
	}
		 
		 
		 
		
		
	}
	
	
	
	public static void main(String[] args) {
		JdbcTest st=new JdbcTest();
		
		//st.insertDepartment("研发部",8,4500);
		//updateDepartments("教学楼",31,2);
		st.insertDepartment("学习部",9,4500);
		
	}
	
	

}




package com.bjsxt;

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

import javax.sql.DataSource;

public class jdbcUtil {
		/*private  static String driver="com.mysql.jdbc.Driver";
		private static String url="jdbc:mysql://localhost/3306/test_2?useUnicode=true&characterEncoding=utf-8";
		private static String username="root";
		private static  String password="root";*/
		private  static String driver;
		private static String url;
		private static String username;
		private static  String password;
		private static DataSource ds;
		static {
			
			ResourceBundle bundle=ResourceBundle.getBundle("jdbc.properties");
			driver=bundle.getString("driver");
			url=bundle.getString("url");
			username=bundle.getString("username");
			password=bundle.getString("password");
			try {	
				Class.forName(driver);
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
					
		}
		public static Connection getConnection(){
			
			Connection con=null;;
			try {
				con = DriverManager.getConnection(url, username, password);
			
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return con;
			
		
			
		}
		
		
		
		
		//关闭 statement;
		public static void closeStatement(Statement state){
			if(state!=null){
				try {
					state.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
				
			}
			
			
		}
		//关闭Connection 
		public static void closeConenection(Connection con){
			if(con!=null){
				try {
					con.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
			}
			
			
			
		}
		
		public static void  closeResource(Statement str,Connection con){
			closeStatement(str);
			closeConenection(con);
			
			
		}
	

}




程序异常如下:
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class com.bjsxt.jdbcUtil
	at com.bjsxt.JdbcTest.insertDepartment(JdbcTest.java:25)
	at com.bjsxt.JdbcTest.main(JdbcTest.java:86)


请问 老师 如何解决 ?

1.PNG





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

JdbcTest.java类

  package com.bjsxt;

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

public class JdbcTest {

	//向Dpeartment表中添加一条数据
	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/test?useUnicode=true&characterEncoding=utf-8", "root", "123456");
			*/
			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);
			JdbcUtil.closeResource(state, conn,null);
		}
		
	}
	//更新departments表中department_id为6的数据,将部门名称修改为教学部,location_id为6
	public void updateDepartments(String department_name,int location_id,int department_id) {
		Connection conn =null;
		Statement state=null;
		try {
			
			conn=JdbcUtil.getConnection();
			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) {
			// TODO: handle exception
			e.printStackTrace();
		}finally {  
			JdbcUtil.closeResource(state, conn,null);
		}
	}
	//查询departments表中部门ID为6的部门信息
	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 departments d where d.department_id = "+departmentId;
			//执行返回结果
			rs= state.executeQuery(sql);
			while(rs.next()) {
				System.out.println(rs.getInt("department_id")+" "+rs.getInt("department_name")+" "+rs.getInt(3));
			}

		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			JdbcUtil.closeResource(state, conn,rs);
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JdbcTest test=new JdbcTest();
		//test.insertDepartments("研发部", 1);
		//test.updateDepartments("xx部", 8,4 );
		//test.updateDepartments("啰嗦不", 6, 4);
		//test.insertDepartments("干啥不", 10);
		test.selectDepartmentsById(6);
	}

}

JdbcUtil.java类

package com.bjsxt;

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

/**
 * Jdbc工具类
 * @author wyz
 *
 */
public class JdbcUtil {
	private static String driver ;
	private static String jdbcurl;
	private static String username;
	private static String password;
	static {
		//读取Properties文件
		ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
		driver=bundle.getString(driver);
		jdbcurl=bundle.getString(jdbcurl);
		username=bundle.getString(username);
		password=bundle.getString(password);
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	//获取Connection对象
	public static Connection getConnection() {
		Connection conn=null;
		try {
			conn= DriverManager.getConnection(jdbcurl,username,password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	//关闭statement
	public static void closeStatement(Statement state) {
			try {
				if(state!=null) {
					state.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}	
	}
	//关闭Connection
	public static void closeConnection(Connection conn) {
		try {
			if(conn!=null) {
			conn.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);
	}
	//关闭ResultSet链接
	public static void closeResultSet(ResultSet rs)  {
		try {
			if(rs!= null) {
			rs.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

jdbc.properties

driver   =com.mysql.jdbc.Driver
jdbcurl  =jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
username =root
password =123456

还是报错跟之前同学们一样的问题,我看不太懂导包啥的我报错就是这样的

image.png

这是下面一章了,这章我就一直报错,找了好久没解决问题,学习下面一章的时候还是报错。麻烦老师详细解释一下

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

程序运行成功,但是数据库没有添加到数据

1:代码

package sxt.com;

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");
            //创建链接
             conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/sxt?useUnicode=true&characterEncoding=utf-8&useSSL=false","root","2020");
            //执行sql
            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();
                }finally {

                }
            }
        }
        if (conn != null){
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }

    }

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

image.png


3:数据库:

image.png

JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1288楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 1289楼

image.png

JdbcUtil类:

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 programmer;
    private static String url;
    private static String username;
    private static String password;

    static {
        //读取Propertises文件
        ResourceBundle bundle =ResourceBundle.getBundle("resource");
        programmer=bundle.getString("programmer");
        url =bundle.getString("url");
        username =bundle.getString("username");
        password =bundle.getString("password");
        try {
            Class.forName(programmer);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //获取connection
    public static Connection getconnection(){
        Connection con =null;
        try {
            con = DriverManager.getConnection(url,username,password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return con;
    }
    //释放资源
    public static void closeResourse(Statement s ,Connection con){
        try {
            s.close();
            con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}


JDBCTest02类:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 测试JDBC
 */
public class JDBCTest02 {

    public void insertdata(String name, int salary) {
        Connection con = null;
        Statement statement = null;
        try {
            con = JdbcUtil.getconnection();
            String sql = "insert into employees values(null,'" + name + "'," + salary + ")";
            statement = con.createStatement();
            int flag = statement.executeUpdate(sql);
            System.out.println(flag);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUtil.closeResourse(statement, con);
        }
    }

    public void updatedata(String name, double salary, int id) {
        Connection conn = null;
        Statement statement = null;
        try {
            conn =JdbcUtil.getconnection();
            statement = conn.createStatement();
            String sql = "update employees e set e.last_name ='" + name + "',e.salary =" + salary + " where e.employee_id=" + id + "";
            int a = statement.executeUpdate(sql);
            System.out.println(a);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.closeResourse(statement,conn);
        }

    }

    public static void main(String[] args) {
        JDBCTest02 jdbcTest = new JDBCTest02();
        jdbcTest.insertdata("tom", 20000);
     
    }
}

结果异常:

image.png

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

课程分类

百战程序员微信公众号

百战程序员微信小程序

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