为什么工具类无法初始化,查了几次代码都找不到原因?
工具类
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);
}
}
运行图片:

包
jdbcDemp2.rar