写一个数据库工具类,不过感觉不太像工具类,更像一个数据库操作类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=?