通过JDBC对数据进行插入,删除,更改这三种操作时,都是用的Statement.executeUpdate()方法,该方法返回影响的行数。其他代码相同,且只有SQL语句不同,如果每次进行更新操作,都要重新写一遍代码则代码复用性太差。
所以我们可以把搭建数据库操作进行封装,减少代码的冗余。
解决方法:将数据库操作封装到一个类中,将方法传入SQL语句,返回值为boolean类型,返回更新操作是否成功,成功返回true,否则返回false 。调用该类中此方法进行增删改操作,执行SQL语句打印Yes或No,表示该方法是否成功的更新(增删改)了数据库中的数据。
封装类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Update {
public static boolean update(String sql) {
Connection connection=null;
Statement statement = null;
try {
//加载数据驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root");
//创建statement
statement = connection.createStatement();
//执行SQL语句
return statement.executeUpdate(sql)>0;
} catch (Exception e) {
e.printStackTrace();
} finally {
//释放资源
try {
if (statement!=null) {
statement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (connection !=null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}
}
添加数据
public class Insert {
public static void main(String[] args) {
String sql = "insert into user_info (id,user_name,password) values ('111','111','111')";
if (new Update().update(sql)) {
System.out.println("Yes");
} else {
System.out.println("NO");
}
}
}
代码运行结果为:Yes 然后查看数据库:
删除数据
public class Delete {
public static void main(String[] args) {
String sql = "delete from user_info where user_name='fuliuqingfeng'";
if (new Update().update(sql)) {
System.out.println("Yes");
} else {
System.out.println("NO");
}
}
}
代码运行结果为:Yes 然后查看数据库:
修改数据
public class Up {
public static void main(String[] args) {
String sql = "update user_info set id='123',user_name='root',password='root' where id='111'";
new Update();
if (Update.update(sql)) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
代码运行结果为:Yes 然后查看数据库: