java 公用的增删改查
来源:互联网 发布:算法之美 pdf 编辑:程序博客网 时间:2024/04/28 22:55
使用公共的增删改查,可以节省时间,也可以减少代码量。
在BaseDao 接口中:
public interface BaseDao {/** * 通用的增刪改方法 * @param sql * @param param * @return */public int excutesql(String sql,Object[]param);/** * 通用的改方法 * @param sql 需要查詢的sql語句 * @param classt 需要返回的字符集 * @param param 參數 * @return */public List excuteQuery(String sql, Class classt,Object...param);}
在BaseDaoImpl中:
public class BaseDaoImpl implements BaseDao{/** * 通用的增删改的方法 */public int exetesql(String sql, Object[] param) {//获取连接Connection connection = JDBCUtil.connection();try {PreparedStatement p = connection.prepareStatement(sql);//设置参数for(int i=0;i<param.length;i++){p.setObject(i+1, param[i]);}int i=p.executeUpdate();return i;} catch (SQLException e) {e.printStackTrace();}return 0;}/** * 通用的查询方法 */public List excuteQuery(String sql, Class classt, Object... param) {List list = new ArrayList(); //1.获取链接Connection connection = JDBCUtil.connection();try {//2.批处理PreparedStatement p = connection.prepareStatement(sql);//3.设置参数if(null!=param){for(int i=0;i<param.length;i++){p.setObject(i+1, param[i]);}}//4.获取结果集ResultSet r= p.executeQuery();//5.获取对象 Object obj;//6.获取字节码对象里面的属性 Field[] fields = classt.getFields(); //7。得到结果集的字段数,字段名 ResultSetMetaData metaData = r.getMetaData(); // System.out.println(""); //8.循环输出 int columnCount = metaData.getColumnCount();//9.获取列的总数 System.out.println(columnCount); while(r.next()){ obj = classt.newInstance(); //10.循环列 for(int i=1;i<= columnCount; i++){ //11.获取列 String columnLabel = metaData.getColumnLabel(i);//别名 String columnName = metaData.getColumnName(i);//列名 System.out.println("columnLabel: "+columnLabel); System.out.println("columnName: "+columnName); //12.根据属性名称获取对应的属性 if(null!=columnLabel){ Field df = classt.getDeclaredField(columnName); if(null!=df){ df.setAccessible(true);//13.将私有的打开 df.set(obj, r.getObject(columnLabel));//14.设值,设列名 } } } //15.添加到list里面 list.add(obj); }} catch (SQLException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (SecurityException e) {e.printStackTrace();} catch (NoSuchFieldException e) {e.printStackTrace();}return list;}
在JDBCUtil工具类:
public class JDBCUtil {static String NAME="root";static String PASS="root";static String URL="jdbc:mysql://127.0.0.1:3306/mysql";static String DRIVER="com.mysql.Driver";static{//1.读取properties文件InputStream resourceAsStream = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");//2.获取一个properties对象Properties properties = new Properties();//3.判断不为空if(resourceAsStream!=null){try {properties.load(resourceAsStream);NAME=properties.getProperty("NAME");PASS=properties.getProperty("PASS");URL=properties.getProperty("URL");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} public static Connection connection() { Connection con=null; try {Class.forName("DRIVER");con=DriverManager.getConnection(URL, NAME, PASS);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} return con;}
jdbc.properties配置文件:
name=rootpass=rooturl=jdbc:mysql://127.0.0.1:3306/mysqldriver=com.mysql.jdbc.Driver
如果我需要查询数据库的 Commodity表时:1.CommodityDao 接口先继承BaseDao类,里面可以什么都不用写
public interface CommodityDao extends BaseDao {}2.在CommodityDaoImpl 实现类中也继承相应的接口public class CommodityDaoImpl extends BaseDaoImpl implements CommodityDao{}3.在service层调用dao层public interface CommodityService {public List<CommodityEntity> getCommodityList();}public class CommodityServiceImpl implements CommodityService {CommodityDao commodityDao=new CommodityDaoImpl();public List<CommodityEntity> getCommodityList(){String sql="select * from CommodityEntity"; List<CommodityEntity> list = commodityDao.excuteselect(sql, CommodityEntity.class, new Object[]{});return list;}
4.最后直接在action层掉用service层就可以了// 调用service,调用对应的方法CommodityService commodityService = new CommodityServiceImpl();1 0
- java 公用的增删改查
- java 对xml的增删改查
- java操作mysql的增删改查
- java操作mysql的增删改查
- java连接数据库的增删改查
- java操作mysql的增删改查
- java实现cassandra的增删改查
- Java的增删改查(例子)
- 数据结构JAVA数组的增删改查
- java实现cassandra的增删改查
- java Cookie的增删改查
- Java对SQLite的"增删改查"
- JAVA实现单链表的增删改查
- java实现单链表的增删改查
- Hbase 的java 增删改查操作
- java实现数组的增删改查
- java对象数组的增删改查
- java数据库的增删改查
- 3.2学习内容
- 信号量、共享内存和消息队列
- IP地址的详细解答
- SpringIOC
- 智能指针——AutoPtr & ScopedPer & SharedPtr & WeakPtr
- java 公用的增删改查
- 自定义时间dialog可选择展示年,月,日选择栏
- 通过Bean工厂创建bean实例的几种方法
- 第六届蓝桥杯-三羊生瑞
- 极客学院----H5的相关笔记----css基础(三)
- todolist
- 动态规划--PAT.A1068.Find More Coins【输出DP序列】
- NSString的几种常用方法
- 笔记 基于OpenCV的目标跟踪软件与系统实现