https://mp.csdn.net/mdeditor/93762310#
此篇主要是在上一篇的基础上,对于之前写的jdbc实现增删改查的代码的一些优化。
在上一篇中先写了DBUtil的类将加载驱动和数据库的连接和关闭的相关代码整理到了一起。
然后继续新建一个名为user的类实现封装,去创造用户实体,其中包括:
1、相关属性的定义。
2、构造方法。
3、getter和setter的方法。
4、toString()输出相关信息。
Constructor、Getter、Setter和toString()均可用快捷方式建立,即单击右键选择“Generate”,选择相应的方法。
相关代码如下:
package com;
public class user {
//构造方法
public user(String userpassword, String username) {
this.userpassword = userpassword;
this.username = username;
}
private int userID;
private String userpassword;
private String username;
public int getUserID() {
return userID;
}
public void setUserID(int userID) {
this.userID = userID;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
return "user{" +
"userID=" + userID +
", userpassword='" + userpassword + '\'' +
", username='" + username + '\'' +
'}';
}
}
然后建立一个名为userInfoDao的类将查询、删除、增加、修改的函数全部整合到其中,当以后进行相关操作可直接从里面调用。另外在进行查询操作时,可将用户的信息放入ArrayList中。
相关代码如下:
package com;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class userInfoDao {
public List<user> check(){
ResultSet resultSet=null;
PreparedStatement statement=null;
Connection connection=null;
List<user> UserInfo=new ArrayList<>();
try {
connection= DBUtil.getConnection();
String sql = "select * from users";
statement=connection.prepareStatement(sql);
resultSet=statement.executeQuery();
while(resultSet.next()){
String username=resultSet.getString(1);
String userpassword=resultSet.getString(2);
int userID=resultSet.getInt(3);
user users=new user(userpassword,username);
users.setUserID(userID);
UserInfo.add(users);
}
System.out.print(UserInfo);
} catch (Exception e) {
e.printStackTrace();
}finally {
DBUtil.close(resultSet,statement,connection);
}
return UserInfo;
}
public void Insert(user users){
Connection connection=null;
PreparedStatement statement=null;
try {
connection=DBUtil.getConnection();
String sql="Insert into users(username,userpassword,userID) values(?,?,?)";
statement=connection.prepareStatement(sql);
statement.setString(1,users.getUsername());
statement.setString(2,users.getUserpassword());
statement.setInt(3,users.getUserID());
statement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
DBUtil.close(null,statement,connection);
}
}
public void delete(user users){
Connection connection=null;
PreparedStatement statement=null;
try {
connection=DBUtil.getConnection();
String sql="delete from users where username='小明'";
statement=connection.prepareStatement(sql);
statement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(null,statement,connection);
}
}
public void update(user users){
Connection connection=null;
PreparedStatement statement=null;
try{
connection=DBUtil.getConnection();
String sql="update users set username='小吴'where userID='1'";
statement=connection.prepareStatement(sql);
statement.executeUpdate();
}catch (Exception e)
{
e.printStackTrace();
}finally {
DBUtil.close(null,statement,connection);
}
}
}
其他代码:
check类:
package com;
public class check {
public static void main(String[] args) {
userInfoDao userInfoDao=new userInfoDao();
userInfoDao.check();
}
}
delete类:
package com;
public class delete {
public static void main(String[] args) {
userInfoDao userInfoDao=new userInfoDao();
userInfoDao.delete("小丽");
}
}
insert类:
package com;
import com.mysql.jdbc.ConnectionImpl;
public class insert {
private static ConnectionImpl connection;
public static void main(String[] args) {
userInfoDao userInfoDao=new userInfoDao();
user users=new user("123","小丽",3);
userInfoDao.Insert(users);
}
}
update类:
package com;
public class update {
public static void main(String[] args){
userInfoDao userInfoDao=new userInfoDao();
user users=new user("","小明",1);
userInfoDao.update(users);
}
}