【JDBC】打造通用增刪改方法原創
簡介:在我們學習JDBC的時候或者編寫簡單的Servlet程序的時候,經常需要增刪改查等操作,很多小伙伴的做法是:增刪改查各寫一個方法,這樣寫雖然可以實現我們想要的功能,但是寫了很多重復的代碼(垃圾代碼),今天帶大家一起來編寫一個通過的CRUD方法。
實體類(用戶類)
BaseDao(鏈接數據庫方法)
java增刪改查功能怎么實現。CrudUtils(增刪改查工具類)
TestDemo(測試功能)
1、實體類
public class User {
private int id;
java增刪改查sql語句。private String name;
private String password;
public int getId() {
return id;
}
mvc的jdbc。public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
jdbc的使用方法、}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
jdbc是什么。return password;
}
public void setPassword(String password) {
this.password = password;
}
jdbc實現,2、BaseDao(鏈接數據庫方法)
public class BaseDao {
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://127.0.0.1/cart";
String dbName="root";
java jdbc?String dbPwd="root";
Connection conn;
PreparedStatement ps;
ResultSet rs;
/**
jdbc六大步驟、* 獲取數據庫鏈接
* @return
*/
public Connection getConnection(){
try {
jdbc五個步驟、Class.forName(driver);
conn=DriverManager.getConnection(url, dbName, dbPwd);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
jdbctemplate增刪改查。} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
jdbc的基本步驟,}
/**
* 釋放資源
*/
public void getClose(){
java對數據庫的增刪改查,if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
java增刪改查mysql。e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3、CrudUtils(增刪改查工具類)
public class CrudUtils extends BaseDao{
public void getUtils(String sql,Object []values){
//獲取數據庫鏈接
conn=getConnection();
try {
//預編譯
ps=conn.prepareStatement(sql);
//獲取ParameterMetaData()對象
ParameterMetaData pmd=ps.getParameterMetaData();
//獲取參數個數
int number=pmd.getParameterCount();
//循環設置參數值
for (int i = 1; i <=number; i++) {
ps.setObject(i, values[i-1]);
}
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
getClose();
}
}
}
講解:大家都知道,增刪改其實沒什么太多的區別,無非就是sql語句不一樣和參數不一樣,此方法中有兩個值,一個是sql,還有一個是數組類型的,首先需要我們創建一個名為ParameterMetaData()對象,關于ParameterMetaData()對象的使用請大家查詢api,通過ParameterMetaData()中的getParameterCount()方法可以獲取我們的參數個數,在以往的情況下,我們如果執行添加操作,首先要創建對象,使用set依次進行賦值,如果屬性過多,寫起來也是比較費力氣的,這邊我們使用for循環,依次對屬性進行賦值操作,在賦值的過程中,很多屬性我們并不知道他是什么類型,但又要做到通用,此時我們使用Object類型更為妥當。
4、測試增刪改
public class Demo01{
public static void main(String[] args) {
//增
new CrudUtils().getUtils("insert into user values(null,?,?)",new Object[]{"bbbbbb","123456"});
//刪
new CrudUtils().getUtils("delete from user where id=?", new Object[]{27});
//改
new CrudUtils().getUtils("update user set name=?,password=? where id=?",new Object[]{"lililili","258369",2});
}
}
講解:當我們需要做增刪改操作的時候,直接調用以上方法即可,CrudUtils中需要傳入兩個參數,一個是sql語句,另一個是參數值,例如以上寫法。
總結:此方法大大簡化了我們的代碼量,使得增刪改更加的方便!
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态