ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Java(31):Java对于jdbc对数据库的封装[2]

2021-09-25 12:01:16  阅读:210  来源: 互联网

标签:Map aoe jdbc Java String 31 input id out


JDBC数据库操作的封装方法参考(之前写的这篇文章):Java(23):Java对于jdbc对数据库的封装[1]_fen_fen的专栏-CSDN博客

下面接着说的是,加上判断查询结果是否正确。

自己写的断言方法类:
断言类:DatabaseAssert.java

package com.ciphergateway.asserts;

import org.apache.commons.lang3.StringUtils;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;


/**
 *Author:HMF
 *@create 2021-09-25
 **/
public class DatabaseAssert {

    /**
     * 断言(入参Map_input)
     * @param listMaps_out
     * @param Map_input
     * @throws SQLException
     */
    public static int assertData(List<Map<String, Object>> listMaps_out,Map<String, String> Map_input){
        int num=0;
        for (Map<String, Object> map : listMaps_out) {
            for (String key : map.keySet()) {
                boolean flag=false;
                for (String key_input : Map_input.keySet()) {
                    //key值相同再对比value值
                    if(key.equals(key_input)){
                        //System.out.println(Map_input.get(key_input));
                        flag =StringUtils.endsWith(String.valueOf(map.get(key)), String.valueOf(Map_input.get(key_input)));
                        if (flag){
                            num += 1;
                        } else {
                            System.out.println("未找到匹配" + key);
                        }
                    }
                }
            }
        }
        return num;
    }

    /**
     * 断言(入参,标识符)
     * @param listMaps_out
     * @param cipher
     * @throws SQLException
     */
    public static int assertData(List<Map<String, Object>> listMaps_out,String cipher){
        int num=0;
        for (Map<String, Object> map : listMaps_out) {
            for (String key : map.keySet()) {
            boolean flag = false;
                if (key.equals("aoe_id") == false) {
                    //System.out.println(String.valueOf(map.get(key)));
                    //System.out.println(cipher);
                    flag = StringUtils.endsWith(String.valueOf(map.get(key)), cipher);
                    if (flag) {
                        num += 1;
                    } else {
                        System.out.println("未找到匹配" + key);
                    }
                }
            }

        }
        return num;
    }

}

调用示例二

数据库db.propeties

#mysql原库

driverClass =com.mysql.jdbc.Driver

url=jdbc:mysql://10.1.1.191:3306/aoe_auto?useSSL=false&useUnicode=yes&characterEncoding=UTF-8

userName=root

passWord=123456

断言调用:

int num= DatabaseAssert.assertData(listMaps_1,Map_input);

import com.ciphergateway.utils.DataBaseUtil;
import com.ciphergateway.asserts.DatabaseAssert;
import com.ciphergateway.utils.Common;
import org.apache.commons.lang3.StringUtils;

import java.io.*;
import java.sql.*;
import java.util.*;

public class mysqlTest2{
    private static Map<String, String> Map_input = new LinkedHashMap<String,String>();

    public static void main(String[] args) throws Exception {
        //获取配置文件数据
        String filename="db.properties";
        Properties pro=Common.getProperty(filename);
        String tableName=pro.getProperty("tableName");

        //定义插入数据
        Map_input.put("aoe_aes", "吴秀梅");
        Map_input.put("aoe_sm4", "Beijing Refining Network Technology Co.Ltd.");
        Map_input.put("aoe_sm4_a", "北京市海淀区北三环西路32号楼7层0710-1");
        Map_input.put("aoe_email", "qianxiulan@yahoo.com");
        Map_input.put("aoe_phone", "15652996964");
        Map_input.put("aoe_id_card", "210302199608124861");
        Map_input.put("aoe_officer_card", "武水电字第3632734号");
        Map_input.put("aoe_passport", "BWP018930705");
        Map_input.put("aoe_general_id_card", "0299233902");//智能识别证件号
        Map_input.put("aoe_credit_card", "6212262502009182455");//银行卡号

        DataBaseUtil database=new DataBaseUtil();
        //操作数据库
        Connection conn=database.getConnection();
        //插入数据
        insertTest(conn,database,tableName);
        //查询最大的id(最后插入的数据,用来做查询条件)
        String sql="select max(aoe_id) maxId from "+tableName;
        int aoe_id=database.getMaxId(conn,sql);
        System.out.println(aoe_id);

        //查询数据
        List<Map<String, Object>> listMaps_1=selectTest(conn,database,tableName,aoe_id);
//断言
        int num= DatabaseAssert.assertData(listMaps_1,Map_input);
        if (num ==10){
            System.out.println("=====================================");
            System.out.println("插入数据后,查询,10个字段数据都正确");
        }
        else {
            System.out.println("=====================================");
            System.out.println("插入数据后,查询,10个字段部分正确"+num);
        }
     }
    /**
     * 插入数据
     * @param database
     */
    public static void insertTest(Connection conn,DataBaseUtil database,String tableName){
        List<Object> params = new ArrayList<Object>();
        //params.add("1");
        params.add(Map_input.get("aoe_aes"));   //aoe_aes
        params.add(Map_input.get("aoe_sm4")); //aoe_sm4
        params.add(Map_input.get("aoe_sm4_a"));//aoe_sm4_a
        params.add(Map_input.get("aoe_email"));//aoe_email
        params.add(Map_input.get("aoe_phone"));//aoe_phone
        params.add(Map_input.get("aoe_id_card"));//aoe_id_card
        params.add(Map_input.get("aoe_officer_card"));//aoe_officer_card
        params.add(Map_input.get("aoe_passport"));//aoe_passport
        params.add(Map_input.get("aoe_general_id_card"));//aoe_general_id_card,智能识别证件号
        params.add(Map_input.get("aoe_credit_card"));//aoe_credit_card银行卡
        System.out.println(params);
        //String sql ="insert into aoe_auto (aoe_aes, aoe_sm4) values (?,?)";   //'"+ tableName +"'
        String sql="INSERT INTO "+ tableName +" (aoe_aes, aoe_sm4, aoe_sm4_a, aoe_email, aoe_phone, aoe_id_card, aoe_officer_card, aoe_passport, aoe_general_id_card, aoe_credit_card) VALUES(?,?,?,?,?,?,?,?,?,?)";
        try {
            boolean flag = database.updateByPreparedStatement(conn,sql, params);
            System.out.println(flag);
        }
        catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 通过主键查询
     * @param database
     * @param aoe_id
     * @throws SQLException
     */
    public static List<Map<String, Object>> selectTest(Connection conn,DataBaseUtil database,String tableName,int aoe_id) throws SQLException {
        String sql="select * from "+ tableName +" where aoe_id='"+aoe_id+"'";
        List<Map<String, Object>> listMaps = new ArrayList<Map<String, Object>>();
        listMaps=database.executeQuery(conn,sql);
        System.out.println(listMaps);
        return listMaps;
    }

}

标签:Map,aoe,jdbc,Java,String,31,input,id,out
来源: https://blog.csdn.net/fen_fen/article/details/120469074

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有