3 Commits
r16 ... r18

Author SHA1 Message Date
admin
273332c720 db 2022-11-11 12:19:06 +08:00
admin
5b2586112a db 2022-11-11 12:18:54 +08:00
admin
c843272f03 add 2022-11-09 16:11:16 +08:00
3 changed files with 1974 additions and 1 deletions

View File

@@ -16,8 +16,9 @@ import java.util.Map;
public class DBUtil {
// 四大金刚
String dname = ReadTxt.getSetting(null, "setting.ini", "MySqlName","test");
String driver = "com.mysql.jdbc.Driver";// 驱动名称
String url = "jdbc:mysql://"+ReadTxt.getSetting(null, "setting.ini", "MySqlIP","127.0.0.1")+":"+ReadTxt.getSetting(null, "setting.ini", "MySqlPort","3306")+"/"+ReadTxt.getSetting(null, "setting.ini", "MySqlName","test")+"?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true&autoReconnect=true&useSSL=false";// 连接
String url = "jdbc:mysql://"+ReadTxt.getSetting(null, "setting.ini", "MySqlIP","127.0.0.1")+":"+ReadTxt.getSetting(null, "setting.ini", "MySqlPort","3306")+"/"+dname+"?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true&autoReconnect=true&useSSL=false";// 连接
String username = ReadTxt.getSetting(null, "setting.ini", "MySqlUserName","root");// 用户名
String password = ReadTxt.getSetting(null, "setting.ini", "MySqlPassWord","cheng355217");// 密码
@@ -25,6 +26,15 @@ public class DBUtil {
Connection con = null;// 连接对象
PreparedStatement pstmt = null;// 语句对象
ResultSet rs = null;// 结果集对象
public DBUtil(String dbname){
if(dbname!=null&&dbname.trim().length()>0)
this.dname = dbname;
}
public DBUtil(){
}
/**
* 获得连接对象

View File

@@ -0,0 +1,710 @@
package sc545.pay.utils;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import javax.servlet.ServletContext;
public class ReadTxt {
public static void main(String[] args) {
}
/**
* 按行读取txt文件
*
* @param path
* 文件地址默认D:\\scbox_settings开头
* @return ArrayList 返回每行数据为一个items的集合
*/
public static ArrayList<String> readFileLine(ServletContext servletContext, String path) {
if(path.indexOf("./")==0)
path =path.substring(1, path.length());
if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\scbox_settings\\" + path;
} else {
path = servletContext.getRealPath(path);
}
ArrayList<String> strarr = null;
try {
File file = new File(path);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
strarr = new ArrayList<String>();
while ((lineTxt = bufferedReader.readLine()) != null) {
strarr.add(lineTxt);
}
read.close();
} else {
strarr = null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return strarr;
}
/**
* 写入txt文档已存在就修改否则写入末尾,自动加换行 文件格式key=value换行分隔
*
* @param path
* 文件地址默认D:\\scbox_settings开头
* @param keyname
* 要修改的参数名
* @param content
* 要修改的参数值
*/
public static void writeSetting(ServletContext servletContext, String path, String keyname, String content) {
/**************/
// 如果存在,则追加内容;如果文件不存在,则创建文件
if(path.indexOf("./")==0)
path =path.substring(1, path.length());
if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\scbox_settings\\" + path;
} else {
path = servletContext.getRealPath(path);
}
try {
File file = new File(path);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
boolean isread = false;// 是否读取到该行并修改
// 将内容全部读出来,存为新的数据流
// 读到要修改的行进行修改存入,否则原样读取存入
StringBuffer buf = new StringBuffer();
while ((lineTxt = bufferedReader.readLine()) != null) {
if (lineTxt.startsWith(keyname + "=")) {
buf.append(keyname + "=" + content + "\r\n");
isread = true;
} else {
buf.append(lineTxt + "\r\n");
}
}
read.close();
if (!isread) {// 没有读取到,写入末尾
buf.append(keyname + "=" + content + "\r\n");
}
// 把新内容覆盖写入文件
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(path),
"UTF-8")));
out.write(buf.toString());
out.flush();
out.close();
} else {// 不存在,创建写入
String path2 = path.substring(0, path.replace("\\", "/").lastIndexOf("/"));
File file1 = new File(path2);
// 如果文件夹不存在则创建
if (!file1.exists() && !file1.isDirectory()) {
file1.mkdirs();
}
File file2 = new File(path);
if (!file2.exists()) {
file2.createNewFile();
}
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(path),
"UTF-8")));
out.write(keyname + "=" + content + "\r\n");
out.flush();
out.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**************/
}
/**
* 读取txt配置返回map集合文件格式key=value换行分隔
*
* @param path
* 文件地址默认D:\\scbox_settings开头
* @return hashmap
*/
public static HashMap<String, String> readSetting(ServletContext servletContext, String path) {
if(path.indexOf("./")==0)
path =path.substring(1, path.length());
if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\scbox_settings\\" + path;
} else {
path = servletContext.getRealPath(path);
}
HashMap<String, String> strarr = null;
try {
File file = new File(path);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
strarr = new HashMap<String, String>();
while ((lineTxt = bufferedReader.readLine()) != null) {
if(lineTxt.indexOf("#")==0){
continue;
}
String[] arr = new String[2];
if (lineTxt.split("=").length >= 2) {
arr[0] = lineTxt.split("=")[0];
arr[1] = lineTxt.replace(arr[0]+"=", "");
strarr.put(arr[0], arr[1]);
}
}
read.close();
} else {
strarr = null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return strarr;
}
/**
* 获取配置文件中所有设置属性(含注释)<br>
* map.get("z") 取注释<br>
* map.get("k") 取key<br>
* map.get("v") 取value<br>
*
*
* @param path
* 文件地址默认D:\\scbox_settings开头
*
* @param t 只取以此字符开头的不限制填null
* @param st 从以此字符开头的行开始读取不限制填null
* @param et 读到以此字符开头的行结束不限制填null
* @return
*/
public static ArrayList<HashMap<String, String>> getSettingAll(ServletContext servletContext, String path,String t,String st,String et) {
if(st==null||st.length()<1) st="";
if(et==null||et.length()<1) et="";
if(t==null||t.length()<1) t="";
if(path.indexOf("./")==0)
path =path.substring(1, path.length());
if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\scbox_settings\\" + path;
} else {
path = servletContext.getRealPath(path);
}
ArrayList<HashMap<String, String>> list=new ArrayList<>();
try {
File file = new File(path);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
String zs="";//注释文本
while ((lineTxt = bufferedReader.readLine()) != null) {
if((!"".equals(st))||lineTxt.indexOf(st)!=0) continue;
if((!"".equals(et))&&lineTxt.indexOf(et)==0) break;
HashMap<String, String> map = new HashMap<String, String>();
if(lineTxt.indexOf("#")==0){
zs=lineTxt;
continue;
}
String[] arr = new String[2];
if (lineTxt.split("=").length >= 2&&lineTxt.indexOf(t)==0) {
arr[0] = lineTxt.split("=")[0];
arr[1] = lineTxt.replace(arr[0]+"=", "");
map.put("z", zs);
map.put("k", arr[0]);
map.put("v", arr[1]);
list.add(map);
//把注释也加进去
zs="";
}
}
read.close();
} else {
list = null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
/**
* 读取txt配置文件的某一项设置值 文件格式key=value换行分隔
*
* @param path
* 文件地址
* @param settingName
* 设置名
* @param nullString
* 设置值为空时默认返回的内容
* @return string
*/
public static String getSetting(ServletContext servletContext, String path, String settingName,String nullString) {
HashMap<String, String> setting = ReadTxt.readSetting(servletContext,path);
String val = setting == null ? nullString : setting.get(settingName);
val = val == null ? "" : val;
return "".equals(val.trim()) ? nullString : val;
}
/**
* 获取所有设置名以[settingName]开头的数据
* */
public static ArrayList<String> getSettingW(ServletContext servletContext, String path, String settingName) {
HashMap<String, String> setting = ReadTxt.readSetting(servletContext,path);
if(setting==null||setting.size()<1) return null;
Iterator<Entry<String, String>> it = setting.entrySet().iterator();
ArrayList<String> rs=new ArrayList<>();
while (it.hasNext()) {
Entry<String, String> en=it.next();
String k = en.getKey();
String v = en.getValue();
if(k.indexOf(settingName)==0){
rs.add(k+"="+v);
}
}
return rs;
}
/**
* 删除某一项设置值 文件格式key=value换行分隔
*
* @param path
* 文件地址
* @param settingName
* 设置名
* @param nullString
* 设置值为空时默认返回的内容
* @return string
*/
public static void delSetting(ServletContext servletContext, String path, String settingName) {
/**************/
// 如果存在,则追加内容;如果文件不存在,则创建文件
if(path.indexOf("./")==0)
path =path.substring(1, path.length());
if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\scbox_settings\\" + path;
} else {
path = servletContext.getRealPath(path);
}
try {
File file = new File(path);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
// 将内容全部读出来,存为新的数据流
// 读到要修改的行进行修改存入,否则原样读取存入
StringBuffer buf = new StringBuffer();
while ((lineTxt = bufferedReader.readLine()) != null) {
if (lineTxt.startsWith(settingName + "=")) {
} else {
buf.append(lineTxt + "\r\n");
}
}
read.close();
// 把新内容覆盖写入文件
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(path),
"UTF-8")));
out.write(buf.toString());
out.flush();
out.close();
} else {// 不存在,创建
String path2 = path.substring(0, path.replace("\\", "/").lastIndexOf("/"));
File file1 = new File(path2);
// 如果文件夹不存在则创建
if (!file1.exists() && !file1.isDirectory()) {
file1.mkdirs();
}
File file2 = new File(path);
if (!file2.exists()) {
file2.createNewFile();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**************/
}
/**
* 删除设置名以[settingName]开头的数据
* @param servletContext
* @param path
* @param settingName
*/
public static void delSettingW(ServletContext servletContext, String path, String settingName) {
/**************/
// 如果存在,则追加内容;如果文件不存在,则创建文件
if(path.indexOf("./")==0)
path =path.substring(1, path.length());
if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\scbox_settings\\" + path;
} else {
path = servletContext.getRealPath(path);
}
try {
File file = new File(path);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
// 将内容全部读出来,存为新的数据流
// 读到要修改的行进行修改存入,否则原样读取存入
StringBuffer buf = new StringBuffer();
while ((lineTxt = bufferedReader.readLine()) != null) {
if (lineTxt.split("=")[0].indexOf(settingName)==0) {
} else {
buf.append(lineTxt + "\r\n");
}
}
read.close();
// 把新内容覆盖写入文件
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(path),
"UTF-8")));
out.write(buf.toString());
out.flush();
out.close();
} else {// 不存在,创建
String path2 = path.substring(0, path.replace("\\", "/").lastIndexOf("/"));
File file1 = new File(path2);
// 如果文件夹不存在则创建
if (!file1.exists() && !file1.isDirectory()) {
file1.mkdirs();
}
File file2 = new File(path);
if (!file2.exists()) {
file2.createNewFile();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**************/
}
/**
* 删除过期的所有设置值 文件格式key=value换行分隔
* <br>key为检测源
* @param servletContext
* @param path 路径
* @param d 有效天数
*/
public static void delOutDateSetting(ServletContext servletContext, String path, int d) {
/**************/
// 如果存在,则追加内容;如果文件不存在,则创建文件
if(path.indexOf("./")==0)
path =path.substring(1, path.length());
if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\scbox_settings\\" + path;
} else {
path = servletContext.getRealPath(path);
}
try {
File file = new File(path);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
// 将内容全部读出来,存为新的数据流
// 读到要修改的行进行修改存入,否则原样读取存入
StringBuffer buf = new StringBuffer();
boolean ts=false;
while ((lineTxt = bufferedReader.readLine()) != null) {
if(lineTxt.indexOf("=")>0&&lineTxt.indexOf("#")<0){
String[] ls = lineTxt.split("=");
int has = ls[0].length()-ls[0].replaceAll("-", "").length();
if(has>1){//日期时间
if(Utils.dateout(ls[0], d)){
buf.append(lineTxt + "\r\n");
}else{
ts=true;
}//过期
}else{//月份时间
buf.append(lineTxt + "\r\n");
}
}else{//注释或者不是setting
buf.append(lineTxt + "\r\n");
}
}
read.close();
if(ts){
// 把新内容覆盖写入文件
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(path),
"UTF-8")));
out.write(buf.toString());
out.flush();
out.close();
}
} else {// 不存在,创建
String path2 = path.substring(0, path.replace("\\", "/").lastIndexOf("/"));
File file1 = new File(path2);
// 如果文件夹不存在则创建
if (!file1.exists() && !file1.isDirectory()) {
file1.mkdirs();
}
File file2 = new File(path);
if (!file2.exists()) {
file2.createNewFile();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**************/
}
/**
* 删除过期的所有设置值 文件格式key=value换行分隔
* <br>value为检测源
* @param servletContext
* @param path 路径
* @param d 有效天数
*/
public static void delOutDateSettingValue(ServletContext servletContext, String path, int d) {
/**************/
// 如果存在,则追加内容;如果文件不存在,则创建文件
if(path.indexOf("./")==0)
path =path.substring(1, path.length());
if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\scbox_settings\\" + path;
} else {
path = servletContext.getRealPath(path);
}
try {
File file = new File(path);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
// 将内容全部读出来,存为新的数据流
// 读到要修改的行进行修改存入,否则原样读取存入
StringBuffer buf = new StringBuffer();
boolean ts=false;
while ((lineTxt = bufferedReader.readLine()) != null) {
if(lineTxt.indexOf("=")>0&&lineTxt.indexOf("#")<0){
String[] ls = lineTxt.split("=");
int has = ls[1].length()-ls[1].replaceAll("-", "").length();
if(has>1){//日期时间
if(Utils.dateout(ls[1], d)){
buf.append(lineTxt + "\r\n");
}else{
ts=true;
}//过期
}else{//月份时间
buf.append(lineTxt + "\r\n");
}
}else{//注释或者不是setting
buf.append(lineTxt + "\r\n");
}
}
read.close();
if(ts){
// 把新内容覆盖写入文件
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(path),
"UTF-8")));
out.write(buf.toString());
out.flush();
out.close();
}
} else {// 不存在,创建
String path2 = path.substring(0, path.replace("\\", "/").lastIndexOf("/"));
File file1 = new File(path2);
// 如果文件夹不存在则创建
if (!file1.exists() && !file1.isDirectory()) {
file1.mkdirs();
}
File file2 = new File(path);
if (!file2.exists()) {
file2.createNewFile();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**************/
}
/**
* 删除全部内容
*
* @param path
* 文件地址
* @param nullString
* 设置值为空时默认返回的内容
* @return string
*/
public static void delAll(ServletContext servletContext, String path) {
/**************/
// 如果存在,则追加内容;如果文件不存在,则创建文件
if(path.indexOf("./")==0)
path =path.substring(1, path.length());
if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\scbox_settings\\" + path;
} else {
path = servletContext.getRealPath(path);
}
try {
File file = new File(path);
if (file.isFile() && file.exists()) { // 判断文件是否存在
// 把新内容覆盖写入文件
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(path),
"UTF-8")));
out.write("".toString());
out.flush();
out.close();
} else {// 不存在,创建
String path2 = path.substring(0, path.replace("\\", "/").lastIndexOf("/"));
File file1 = new File(path2);
// 如果文件夹不存在则创建
if (!file1.exists() && !file1.isDirectory()) {
file1.mkdirs();
}
File file2 = new File(path);
if (!file2.exists()) {
file2.createNewFile();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**************/
}
/**
* 将InputStream装换成某种字符编码的String
*
* @param in
* @param encoding
* @return
*/
public static String InputStreamTOString(InputStream in, String encoding) {
int BUFFER_SIZE = 4096;
String res = null;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] data = new byte[BUFFER_SIZE];
int count = -1;
try {
while ((count = in.read(data, 0, BUFFER_SIZE)) != -1) {
outputStream.write(data, 0, count);
}
} catch (Exception e) {
e.printStackTrace();
}
try {
res = new String(outputStream.toByteArray(), encoding);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return res;
}
}

File diff suppressed because it is too large Load Diff