文章目录
- 什么是BaseDao
- 操作代码
- 增删改
- 查询单个数据
- 查询多个数据
- 总结
什么是BaseDao
BaseDao是:
数据库里负责增加,删除,修改,查询
具体来说是一种接口代码,公共方法的接口类。
在dao层新建basedao,其他dao层接口继承basedao
相当于父类继承子类
用来创建其他dao包
操作代码
增删改
import java.sql.*;public class BaseDao {private String driver = "com.mysql.cj.jdbc.Driver";private String url = "jdbc:mysql://localhost:3306/20240326zy";//mysql的数据库private String user = "root";//用户名private String password = "sasa";//密码/*** 获取数据库连接* @return 返回连接*/public Connection getConnection(){Connection conn = null;try {Class.forName(driver);conn = DriverManager.getConnection(url,user,password);} catch (Exception e) {e.printStackTrace();}return conn;}/*** 释放资源* @param rs* @param prs* @param conn*/public void closeAll(ResultSet rs,PreparedStatement prs,Connection conn){try {if (rs!=null){rs.close();}if (prs!=null){prs.close();}if (conn!=null){conn.close();}}catch (Exception e){e.printStackTrace();}}/*** 增删改* @param sql sql语句* @param objs 参数* @return*/public int exceuteUpdate(String sql,Object... objs){int num = 0;try {Connection conn = getConnection();PreparedStatement prs = conn.prepareStatement(sql);for (int i = 0; i < objs.length; i++) {prs.setObject(i+1,objs[i]);}num = prs.executeUpdate();closeAll(null,prs,conn);}catch (Exception e){e.printStackTrace();}return num;}
}
查询单个数据
/*** 查询一个字段 (只会返回一条记录且只有一个字段;常用场景:查询总数量)* @param sql* @param params* @return*/public static Object findSingleValue(String sql, List<Object> params) {Object object = null;Connection connection = null;PreparedStatement preparedStatement = null;ResultSet resultSet = null;try {// 获取数据库连接connection = getConnection();// 预编译preparedStatement = connection.prepareStatement(sql);// 如果有参数,则设置参数,下标从1开始if (params != null && params.size() > 0) {// 循环设置参数,设置参数类型为Objectfor (int i = 0; i < params.size(); i++){preparedStatement.setObject(i+1, params.get(i));}}// 执行查询,返回结果集resultSet = preparedStatement.executeQuery();// 判断并分析结果集if (resultSet.next()) {object = resultSet.getObject(1);}} catch (Exception e) {e.printStackTrace();}return object;}
查询多个数据
首先我们要有个实类,必须和连接的那个数据库中的列一致
然后创建一个实类的Dao,以下就是查询代码
import zy20240326.entity.brand;//这个就是实类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class brandDao {BaseDao bd = new BaseDao();//创建对象PreparedStatement prs = null;ResultSet rs = null;public List<brand> getAll(){List<brand> list = new ArrayList<>();//创建一个对象Connection conn =bd.getConnection();//获取连接String sql = "select * from brand";try {prs = conn.prepareStatement(sql);rs = prs.executeQuery();while (rs.next()){brand brand = new brand();brand.setBrandid(rs.getInt("Brandid"));brand.setBrandName(rs.getString("BrandName"));list.add(brand);//获取查询到的值并且增到对象中}bd.closeAll(rs,prs,conn);//关闭连接} catch (Exception e) {e.printStackTrace();}return list;}
}
运行代码
public class daoTest {public static void main(String[] args) {brandDao dao = new brandDao();List<brand> list = dao.getAll();for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i).getBrandid() +"---"+list.get(i).getBrandName());}}
}
运行结果
总结
以上操作就是一些简单的BaseDao的增删改查