区块链 即拼商城系统开发源码(Java)

it2024-02-23  58

运用JAVA语言开发即拼商城系统,分享源码,以及开发总结;完整源码看下面

import java.util.regex.Matcher; import java.util.regex.Pattern;

public class RegexMatches {

public static void main(String args[]) { String str = ""; String pattern = "18929564420"; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(str); System.out.println(m.matches()); System.out.println("即拼商城系统开发源码" + "项目完整源码找白鯨18929564420") }

} 【https://blog.csdn.net/weixin_44956451/article/details/108625915】

即拼商城系统开发介绍:

进入条件:购买任意399产品,即可成为会员,进入排位,可以分享下级 排位方式:二二复制,按订单下单顺序,从上到下从左到右,自动滑落到每个点的上级队伍,凑满6个人(点位) 出局及奖励: 队伍里面排满7个点位,顶上的点位出局, 出局可以拿到层奖励为150/点,即300RMB,第二层奖励为120/点,即480RMB,总共次出局可以拿到至少可以拿到780RMB, 如果二层人员都是自己直推的则第二层奖励也按150/点计算 开发环境:一般包括数据库(mysql,sqlserver,oracle,db2),运行的中间件,即应用服务器,如tomcat,jetty,jboss,weblogic,webphere,以及运行的操作系统环境,如windows,unix(AIX,solaris),各版本的linux等。

硬件环境:如pc server,ibm、hp、SUN(已被oracle收购)的小型机等等;

开发工具:有ibm开源的eclipse及衍生的myeclipse,sun的netbeans、或者收费的好用的IntelliJ IDEA等等。

编译源文件 定义: 使用Java编译器(javac.exe)编译源文件,得到字节码文件。 格式: javac 文件名.java

运行程序 使用Java平台中的Java解释器(java.exe)来解释、执行字节码文件。 格式: java 文件名 //注意不要有添加后缀

前端页面

<?xml version="1.0" encoding="UTF-8"?>

<bean id="dataSource_1" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test1"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource_2" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test2"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource_3" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test3"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource_4" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test4"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource_5" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test5"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource_6" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test6"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource_7" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test7"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource_8" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test8"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource_9" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test9"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource_10" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test10"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource_single" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test_single"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="dataSource" class="com.liuchaojun.DynamicDataSource"> <property name="targetDataSources"> <map> <entry key="test1" value-ref="dataSource_1"/> <entry key="test2" value-ref="dataSource_2"/> <entry key="test3" value-ref="dataSource_3"/> <entry key="test4" value-ref="dataSource_4"/> <entry key="test5" value-ref="dataSource_5"/> <entry key="test6" value-ref="dataSource_6"/> <entry key="test7" value-ref="dataSource_7"/> <entry key="test8" value-ref="dataSource_8"/> <entry key="test9" value-ref="dataSource_9"/> <entry key="test10" value-ref="dataSource_10"/> <entry key="test_single" value-ref="dataSource_single"/> </map> </property> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:cfg/mybatis.xml"></property> <property name="dataSource" ref="dataSource" /> </bean> <bean id="iDemo" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.liuchaojun.IDemo"></property> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean> <bean id="iDemoService" class="com.liuchaojun.DemoServiceImpl"> <property name="idemo" ref="iDemo"></property> </bean> 后端代码 /** * */ package com.liuchaojun;

import java.lang.reflect.Method;

/**

数据库访问任务定义。将每一个对数据库访问的请求包装为一个任务对象,放到任务管理中, 然后等待任务执行完成,取出执行结果。

@author liuchaojun */ public class DBTask implements Runnable { // 操作数据库标识,用于指定访问的数据库。与spring配置文件中的数据动态数据源定义一致。 private final String dbKey;

// mybatis数据库访问对象 private final Object dbAccessObject;

// mysbatis数据库访问方法名称,用于反射调用 private final String methodName;

// 存储可变参数的值 private final Object[] paraArray;

// 存储可变参数类型 @SuppressWarnings(“rawtypes”) private final Class[] paraClassArray;

// 数据库操作结果。查询操作返回查询结果; 插入、删除、修改操作返回null。 private Object operateResult;

// 操作数据库抛出的异常信息 private Exception exception;

// 标识任务是否已经执行 private boolean finish;

/**

构造函数@param dbKey 数据库标识 @param dbAccessObject 数据库访问对象 @param methodName 数据库访问方法名称 @param paraArray 参数列表

*/ public DBTask(final String dbKey, final Object dbAccessObject, final String methodName, final Object… paraArray) { this.dbKey = dbKey; this.dbAccessObject = dbAccessObject; this.methodName = methodName; this.paraArray = paraArray; finish = false; exception = null;

paraClassArray = new Class[paraArray.length]; for (int index = 0; index < paraArray.length; ++index) { paraClassArray[index] = paraArray[index].getClass(); } operateResult = null;

}

/**

任务执行函数

*/ @Override public void run() { try { DBIndetifier.setDBKey(dbKey); Method method = dbAccessObject.getClass().getMethod(methodName, paraClassArray);

// 查询操作返回查询结果; 插入、删除、修改操作返回null operateResult = method.invoke(dbAccessObject, paraArray); } catch (Exception e) { exception = e; e.printStackTrace(); } finish = true;

}

/**

返回操作结果。查询操作返回查询结果; 插入、删除、修改操作返回null@return 操作结果 */ public Object getRetValue() { return operateResult; }

/**

抛出数据库操作异常@return 异常 */ public Exception getException() { return exception; }

/**

返回任务是否已执行@return 标记 */ public boolean isFinish() { return finish; } } package com.liuchaojun;

import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List;

import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;

/**

@author liuchaojun@date 2018-3-20 上午10:09:12 / public class TestMain { /*

测试代码

@param args */ public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( “cfg/spring.xml”); IDemoService service1 = (IDemoService) context.getBean(“iDemoService”);

// 创建任务对象 DBTask task1 = new DBTask(“test1”, service1, “selectGroup”); DBTask task2 = new DBTask(“test2”, service1, “selectGroup”); DBTask task3 = new DBTask(“test3”, service1, “selectGroup”); DBTask task4 = new DBTask(“test4”, service1, “selectGroup”); DBTask task5 = new DBTask(“test5”, service1, “selectGroup”); DBTask task6 = new DBTask(“test6”, service1, “selectGroup”); DBTask task7 = new DBTask(“test7”, service1, “selectGroup”); DBTask task8 = new DBTask(“test8”, service1, “selectGroup”); DBTask task9 = new DBTask(“test9”, service1, “selectGroup”); DBTask task10 = new DBTask(“test10”, service1, “selectGroup”); DBTask task_single = new DBTask(“test_single”, service1, “selectGroup”);

// 单个线程直接查询单表 SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); DBTaskMgr.instance().excute(task_single); System.out.println(“开始查询test_single表中的200万数据:”+ format.format(new Date())); while (true) { if (!task_single.isFinish()) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } else { break; } } System.out.println(“结束查询test_single表中的200万数据结束:”+ format.format(new Date()));

// 多个线程查询多个数据库中的表数据 List taskList = new ArrayList(); taskList.add(task1); taskList.add(task2); taskList.add(task3); taskList.add(task4); taskList.add(task5); taskList.add(task6); taskList.add(task7); taskList.add(task8); taskList.add(task9); taskList.add(task10); for (DBTask task : taskList) { DBTaskMgr.instance().excute(task); } System.out.println(“开始查询10个数据库中的t_test_table表中的20万数据表:”+ format.format(new Date())); while (true) { int success = 0; for (DBTask task : taskList) { if (!task.isFinish()) { // 运行线程run方法这里为false,没有运行择true continue; } else { ++success; } } if (success == 10) { break; } } System.out.println(“结束查询10个数据库中的t_test_table表中的20万数据表:”+ format.format(new Date())); } } 总结 分布式架构基本思想:

分拆(系统分拆,子系统分拆,存储分拆,计算分拆);

并发(多线程);

缓存;在线VS离线;同步VS异步;Push VS Pull;批量;

重读轻写VS重写轻读;读写分离(对数据库而言);动静分离(对前端界面而言);冷热分离(对数据备份而言);

限流;服务熔断与降级;CAP理论(C:数据一致性;A:稳定性和性能;P:分区容错性);

最终一致性。

最新回复(0)