利用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();
}
}
注:实现数据库连接的完整代码在开头连接的另一篇博客中.
输出结果:
实现连接信息文件!!!
作者说:文章仅供参考,不足之处请见谅,如果觉得有帮助记得一键三连哦!