写一个数据库工具类,不过感觉不太像工具类,更像一个数据库操作类hhh

写完后记起来,读取配置文件除了使用之前提到的Properties类,还有这个ResourceBundle类

普普通通User类

public class User {    
	private String username;    
	private String password;    
	private String realname;    
	private String salary;    
	public User(String username, String password, String realname, String salary) {        			   this.username = username;        
			this.password = password;        
			this.realname = realname;        
			this.salary = salary;    
	}    
	public User(){}
	//get,set,toString方法省略
}

SqlUtil类

package world.mysql.Demo1;
import java.sql.*;
import java.util.ResourceBundle;

public class SqlUtil {
    private static Connection connection=null;
    private static PreparedStatement preparedStatement=null;
    private static boolean flag=false;
    private static String driver;
    private static String url;
    private static ResourceBundle bundle;
    private static ResultSet resultSet;
    private SqlUtil() {
    }

    static {
        try {
            bundle = ResourceBundle.getBundle("jdbc");
            driver = bundle.getString("mysql_driver");
            Class.forName(driver);
            url = bundle.getString("teacher_url");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static void login(String user, String password){
        try {
            connection=DriverManager.getConnection(url,user,password);
            connection.setAutoCommit(false);
            if (connection == null) {
                flag=false;
                System.out.println("登陆失败");
            }else {
                flag=true;
                System.out.println("登录成功");
                System.out.println("***************************************************数据库工具类API********************************");
                System.out.println("********--1,插入用户需要给4个参数,分别是username,password,realname,salary");
                System.out.println("********--2,删除用户需要给用户名");
                System.out.println("********--3,查询用户可以查指定用户和全部用户,查指定用户给username,查全部用户给字符串*");
                System.out.println("********--4,修改用户要给5个参数,第一个参数是指定修改的用户名,其余四个参数是修改后的值");
                System.out.println("**************************************************************************************************");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public static void insert(User user){
        if (flag){
            try {
                String insert = bundle.getString("insert");
                preparedStatement = connection.prepareStatement(insert);
                preparedStatement.setString(1,user.getUsername());
                preparedStatement.setString(2,user.getPassword());
                preparedStatement.setString(3,user.getRealname());
                preparedStatement.setString(4,user.getSalary());
                if ( preparedStatement.executeUpdate()== 1) {
                    System.out.println("插入"+user.getUsername()+"信息成功");
                }else {
                    System.out.println("插入"+user.getUsername()+"信息失败");
                }
                connection.commit();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }else {
            System.out.println("尚未登录,请登录");
        }
    }

    public static void delete(String username){
        if (flag){
            try {
                String delete = bundle.getString("delete");
                preparedStatement = connection.prepareStatement(delete);
                preparedStatement.setString(1,username);
                if ( preparedStatement.executeUpdate()== 1) {
                    System.out.println("删除"+username+"信息成功");
                }else {
                    System.out.println("删除"+username+"信息失败");
                }
                connection.commit();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }else {
            System.out.println("尚未登录,请登录");
        }
    }

    public static void query(String username){
        if (flag){
            try {
                String query;
                User user=new User();
                if (username.equals("*")) {
                    query=bundle.getString("queryAll");
                    preparedStatement = connection.prepareStatement(query);
                }else{
                    query=bundle.getString("query");
                    preparedStatement = connection.prepareStatement(query);
                    preparedStatement.setString(1,username);
                }
                resultSet = preparedStatement.executeQuery();
                connection.commit();
                System.out.println("查询结果如下:");
                while (resultSet.next()){
                    user.setUsername(resultSet.getString("username"));
                    user.setPassword(resultSet.getString("password"));
                    user.setRealname(resultSet.getString("realname"));
                    user.setSalary(resultSet.getString("salary"));
                    System.out.println(user);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }else {
            System.out.println("尚未登录,请登录");
        }
    }

    public static void update(String username,User user){
        if (flag){
            try {
                String update = bundle.getString("update");
                preparedStatement = connection.prepareStatement(update);
                preparedStatement.setString(1,user.getUsername());
                preparedStatement.setString(2,user.getPassword());
                preparedStatement.setString(3,user.getRealname());
                preparedStatement.setString(4,user.getSalary());
                preparedStatement.setString(5,username);
                if ( preparedStatement.executeUpdate()== 1) {
                    System.out.println("修改"+username+"信息成功");
                }else {
                    System.out.println("修改"+username+"信息失败");
                }
                connection.commit();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }else {
            System.out.println("尚未登录,请登录");
        }
    }

    public static void close(){
        if (resultSet!=null){
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (preparedStatement!=null){
            try {
                preparedStatement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (connection!=null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

jdbc.properties资源文件

mysql_driver=com.mysql.cj.jdbc.Driver
my_url=jdbc:mysql://localhost:3306/oneforall?serverTimezone=GMT
		&useSSL=false&characterEncoding=utf-8
my_user=root
my_password=123456

teacher_url=jdbc:mysql://192.168.8.121:3306/hbnu? 
		serverTimezone=GMT&useSSL=false&characterEncoding=utf-8
teacher_user=hbnujixin
teacher_password=123456

insert=insert into userinfo(username,password,realname,salary) values(?,?,?,?)
delete=delete from userinfo where username=?
query=select username,password,realname,salary from userinfo where username =?
queryAll=select username,password,realname,salary from userinfo
update= update userinfo set username=?,password=?,realname=?,salary=? where username=?