利用JDBC在java上實現對SQL資料庫的新增刪除修改,連線資訊檔案,批處理等操作
阿新 • • 發佈:2020-12-10
利用JDBC在java上實現對SQL資料庫的刪除修改新增,連線資訊檔案,批處理等操作
關於sql資料庫的設定和查詢方法的實現可參考我的另一篇部落格:利用JDBC在java中實現資料庫連線查詢等操作
資料庫表資訊
一.在介面中定義增加,刪除,修改,批處理的類介面
import cn.zc.entity.UserInfo;
import java.util.List;
public interface UserInfoDao {
// 修改某個部門資訊
public int updataUser(UserInfo ui);
// 增加資訊
public int addUser(UserInfo ui);
// 刪除資訊
public int deleteUser(int depno);
// 批處理增加方法
public int[] addUser(List<UserInfo> list);
}
二.定義類實現介面
import cn.zc.Dao.UserInfoDao;
import cn.zc.entity.UserInfo;
import cn.zc.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class UserInfoDaoImpl implements UserInfoDao {
// 修改資訊
public int updataUser(UserInfo ui) {
int result =0;
// 獲取資料庫連線物件
Connection conn = DBHelper.getConn();
// sql語句
String sql = "update dept set dname=?,loc=? WHERE depno=?";
try {
// 預編譯sql語句
PreparedStatement ps = conn.prepareStatement(sql);
// 賦值
ps.setInt(3,ui.getDepno());
ps.setString(1, ui.getDname());
ps.setString(2, ui.getLoc());
result= ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
//新增資訊
@Override
public int addUser(UserInfo ui) {
int result = 0;
// 獲取資料庫連線物件
Connection conn = DBHelper.getConn();
// sql語句
String sql = "insert into dept values(?,?,?)";
try {
// 預編譯sql語句
PreparedStatement ps = conn.prepareStatement(sql);
// 賦值
ps.setInt(1,ui.getDepno());
ps.setString(2, ui.getDname());
ps.setString(3, ui.getLoc());
result= ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
//刪除資訊
@Override
public int deleteUser(int depno) {
int result = 0;
// 獲取資料庫連線物件
Connection conn = DBHelper.getConn();
// sql語句
String sql = "delete FROM dept where depno=?";
try {
// 預編譯sql語句
PreparedStatement ps = conn.prepareStatement(sql);
// 賦值
ps.setInt(1,depno);
result= ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
// 批處理
@Override
public int[] addUser(List<UserInfo> list) {
int [] result =null;
Connection conn = DBHelper.getConn();
try {
conn.setAutoCommit(false);
String sql ="insert into dept values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
Iterator<UserInfo> it = list.iterator();
while(it.hasNext()){
UserInfo ui = it.next();
ps.setInt(1,ui.getDepno());
ps.setString(2,ui.getDname());
ps.setString(3,ui.getLoc());
ps.addBatch();
}
result = ps.executeBatch();
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
}
三.資料庫連線和資料資訊類在文章開頭連線的另一篇部落格中已經說明過,這裡就不再贅述了.
四.實現程式碼及輸出結果展示
新增:
import cn.zc.Dao.UserInfoDao;
import cn.zc.Impl.UserInfoDaoImpl;
import cn.zc.entity.UserInfo;
public class AddTest {
public static void main(String[] args) {
// 增加部門資訊
UserInfoDao depno = new UserInfoDaoImpl();
int result =0;
result = depno.addUser(new UserInfo(40,"宣傳","房間10"));
if (result>0){
System.out.println("增加成功");
}else{
System.out.println("增加失敗");
}
}
}
輸出:
檢視資料庫:
注意:檢視時記得在資料庫中點選重新整理.
刪除:
import cn.zc.Dao.UserInfoDao;
import cn.zc.Impl.UserInfoDaoImpl;
public class DeleteTest {
public static void main(String[] args) {
// 刪除部門資訊
UserInfoDao depno = new UserInfoDaoImpl();
int result = depno.deleteUser(40);
if (result>0){
System.out.println("刪除成功");
}else{
System.out.println("刪除失敗");
}
}
}
輸出:
檢視資料庫:
修改:
import cn.zc.Dao.UserInfoDao;
import cn.zc.Impl.UserInfoDaoImpl;
import cn.zc.entity.UserInfo;
public class UpdateTest {
public static void main(String[] args) {
// 修改部門資訊
UserInfoDao depno = new UserInfoDaoImpl();
int ui1 = depno.updataUser(new UserInfo(10,"管理","房間10"));
if (ui1!=0){
System.out.println("修改成功");
}else{
System.out.println("修改失敗");
}
}
}
輸出:
檢視資料庫:
批處理新增:
import cn.zc.Dao.UserInfoDao;
import cn.zc.Impl.UserInfoDaoImpl;
import cn.zc.entity.UserInfo;
import java.util.ArrayList;
import java.util.List;
public class AddBatchTest {
public static void main(String[] args) {
List<UserInfo> list = new ArrayList<UserInfo>();
UserInfoDao depno = new UserInfoDaoImpl();
list.add(new UserInfo(11,"管理","房間11"));
list.add(new UserInfo(12,"宣傳","房間12"));
list.add(new UserInfo(13,"管理","房間13"));
int [] result = depno.addUser(list);
if (result.length>0){
System.out.println("批處理成功");
}else{
System.out.println("批處理失敗");
}
}
}
輸出:
檢視資料庫:
五.連線資訊檔案
我們需要在src同級目錄處新建一個File檔案jdbc.properties,如圖所示
在檔案中寫入:
driver=com.mysql.cj.jdbc.Driver
# 資料庫名test1--可根據實際境況修改
url=JDBC:mysql://localhost:3306/test1?characterEncoding=utf8&useSSL=false&serverTimezone=UTC
#賬號
name=root
#密碼
psw=123456
在實現資料庫連線的main函式里加入:
//若不為空則代表連線成功
public static void main(String[] args) {
// System.out.println(DBHelper.getConn());
Properties pp = new Properties();
try {
pp.load(new FileInputStream("jdbc.properties"));
String driver = pp.getProperty("driver");
String url = pp.getProperty("url");
String name = pp.getProperty("name");
String psw = pp.getProperty("psw");
try {
Class.forName(driver);
try {
System.out.println(DriverManager.getConnection(url,name,psw));
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
注:實現資料庫連線的完整程式碼在開頭連線的另一篇部落格中.
輸出結果:
實現連線資訊檔案!!!
作者說:文章僅供參考,不足之處請見諒,如果覺得有幫助記得一鍵三連哦!