会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133306个问题
JAVA 全系列/第四阶段:数据库与AI协同技术实战/SQL 语言 1771楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/SQL 语言 1772楼

为什么工具类无法初始化,查了几次代码都找不到原因?

工具类

package com.bjsxt.commns;

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

/**
 * jdbc工具类
 * @author Administrator
 *
 */
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) {
			// 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) {
			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) {
			e.printStackTrace();
		}
	}
	//事务回滚
	public static void rollback(Connection conn){
		try {
			if(conn != null){
				conn.rollback();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

模型层:

package com.bjsxt.pojo;

public class Departments {
	private String departmentName;
	private int location;
	private int departmentId;
	public String getDepartmentName() {
		return departmentName;
	}
	public void setDepartmentName(String departmentName) {
		this.departmentName = departmentName;
	}
	public int getLocation() {
		return location;
	}
	public void setLocation(int location) {
		this.location = location;
	}
	public Departments() {
		super();
		// TODO Auto-generated constructor stub
	}
	public int getDepartmentId() {
		return departmentId;
	}
	public void setDepartmentId(int departmentId) {
		this.departmentId = departmentId;
	}


}

持久层:


接口

package com.bjsxt.dao.impl;

import java.util.List;

import com.bjsxt.pojo.Departments;

public interface DepartmentsDao {
	public List<Departments> selectDeptByName(String deptName);
	public void insertDept(Departments dept);

}

实现类

package com.bjsxt.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.bjsxt.commns.JdbcUtil;
import com.bjsxt.pojo.Departments;

public class DepartmentsDaoImpl implements DepartmentsDao{
@Override
public List<Departments> selectDeptByName(String departmentName) {
	Connection conn = null;
	PreparedStatement ps = null;
	ResultSet rs = null;
	List<Departments> list = new ArrayList<>();
	try{
		conn = JdbcUtil.getConnection();
		ps = conn.prepareStatement("select * from departments where department_name=?");
		ps.setString(1, departmentName);
		rs = ps.executeQuery();
		while(rs.next()){
			Departments d = new Departments();
			d.setDepartmentId(rs.getInt("department_id"));
			d.setDepartmentName(rs.getString("departmentName"));
			d.setLocation(rs.getInt("location_id"));
			list.add(d);
		}
	}catch(Exception e){
		e.printStackTrace();
	}finally{
		JdbcUtil.closeResource(ps, conn, rs);;
	}
	return list;
}

@Override
public void insertDept(Departments dept) {
	Connection conn = null;
	PreparedStatement ps = null;
	try{
		
		conn = JdbcUtil.getConnection();
		conn.setAutoCommit(false);
		ps = conn.prepareStatement("insert into departemts values(default,?,?)");
		
		ps.setString(1, dept.getDepartmentName());
		ps.setInt(2, dept.getLocation());;
		ps.execute();
		conn.commit();
	}catch(Exception e){
		e.printStackTrace();
		JdbcUtil.rollback(conn);
	}finally{
		JdbcUtil.closeResource(ps, conn, null);
	}
	
}


}

业务层:

接口

package com.bjsxt.server.impl;

import java.util.List;

import com.bjsxt.pojo.Departments;

public interface DepartmentsService {
	public void addDepartments(Departments dept);


}

实现类

package com.bjsxt.server.impl;

import java.util.List;

import com.bjsxt.dao.impl.DepartmentsDao;
import com.bjsxt.dao.impl.DepartmentsDaoImpl;
import com.bjsxt.pojo.Departments;

public class DepartmentsServiceImpl implements DepartmentsService {

	@Override
	public void addDepartments(Departments dept) {
		DepartmentsDao deptDao = new DepartmentsDaoImpl();
		deptDao.insertDept(dept);
		
		
	}



}

测试层

package com.bjsxt.text;

import com.bjsxt.pojo.Departments;
import com.bjsxt.server.impl.DepartmentsService;
import com.bjsxt.server.impl.DepartmentsServiceImpl;

public class Test {

	public static void main(String[] args) {
		Departments dept = new Departments();
		dept.setDepartmentName("数学部2");
		dept.setLocation(20);
		DepartmentsService ds = new DepartmentsServiceImpl();
		ds.addDepartments(dept);
	}

}

运行图片:

image.png

jdbcDemp2.rar


JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术(旧) 1773楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/MySQL数据库 1774楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/Oracle 数据库的使用 1776楼

import java.sql.Connection;
import java.sql.PreparedStatement;

public class PreparedStatementDemo {
    //向Departments表中插入数据
    public void insertDepartment(String departmentName,int locationId){
        Connection conn=null;
        PreparedStatement ps=null;
        try{
            conn=jdbcUtill.getConnection();
            ps=conn.prepareStatement("insert into departments values (default ,?,?)");
            ps.setString(1,departmentName);
            ps.setInt(2,locationId);
            boolean bo=ps.execute();
            System.out.println(bo);

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            jdbcUtill.closeAll(ps,conn,null);
        }
    }

    public static void main(String[] args) {
        PreparedStatementDemo pr=new PreparedStatementDemo();
        pr.insertDepartment("下调部",4);
    }

}
import java.sql.*;
import java.util.ResourceBundle;

public class jdbcUtill {
    /**
     * 工具类
     */

    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(Exception e){
            e.printStackTrace();
        }
        return conn;
    }
    //关闭Connection
    public static void closeConnection(Connection coon){
        if(coon!=null){
            try {
                coon.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
    //关闭Statement
    public static  void closeStatement(Statement state){
        if(state!=null){
            try {
                state.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
    //关闭ResultSet连接
    public static void clossResultset(ResultSet rs){
        try{
            if(rs!=null){
                rs.close();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    //关闭资源
    public static void closeAll(Statement state,Connection coon,ResultSet rs){
        closeConnection(coon);
        closeStatement(state);
        clossResultset(rs);
    }

}

image.png老师,请问一下我这个为什么报错啊

JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术(旧) 1778楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/SQL 语言 1779楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/SQL 语言 1780楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/Oracle 数据库的使用 1783楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术(旧) 1784楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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