每日总结 4..9

Posted syhxx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日总结 4..9相关的知识,希望对你有一定的参考价值。

今天对我的售卖机页面设计。

 

 

 实现androd的数据传输,和补货的数据更新。

package com.example.jjt;
import android.util.Log;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class Dbhelper 
    private static Connection connection;
    private final static String driver = "com.mysql.jdbc.Driver";
    private final static String url = "jdbc:mysql://10.99.121.119/jiaqi?useUnicode=true&characterEncoding=UTF-8";
    private final static String user = "root";
    private final static String pass= "020907";

    Connection conn=null;
    Statement st=null;
    ResultSet rs=null;

    static 
        try 
            Class.forName(driver);
         catch (ClassNotFoundException e) 
            System.out.println("加载驱动错误");
        
    


    //2. 获取连接
    public static Connection getConnect() 
        try 
            connection=DriverManager.getConnection(url,user,pass);
        catch(SQLException e) 
            e.printStackTrace();
        
        return connection;
    
    //3. 释放连接资源

    public static void release(Connection conn, Statement st, ResultSet rs) throws Exception 
        if (rs != null) 
            rs.close();
        
        if (st != null) 
            st.close();
        
        if (conn != null) 
            conn.close();
        
    
    public static String getInfoByName(String name)
        String s="";
        // 根据数据库名称,建立连接
        Connection connection = getConnect();

        try 
            // mysql简单的查询语句。这里是根据MD_CHARGER表的NAME字段来查询某条记录
            String sql = "select * from thing where name = ?";
//            String sql = "select * from MD_CHARGER";
            if (connection != null)// connection不为null表示与数据库建立了连接
                PreparedStatement ps = connection.prepareStatement(sql);
                if (ps != null)
                    // 设置上面的sql语句中的?的值为name
                    ps.setString(1, name);
                    // 执行sql查询语句并返回结果集
                    ResultSet rs = ps.executeQuery();
                    if (rs != null)
                        int count = rs.getMetaData().getColumnCount();
                        Log.e("DBUtils","列总数:" + count);
                        while (rs.next())
                            // 注意:下标是从1开始的
                            s= rs.getString("total");
                        
                        connection.close();
                        ps.close();
                        return  s;
                    else 
                        return null;
                    
                else 
                    return  null;
                
            else 
                return  null;
            
        catch (Exception e)
            e.printStackTrace();
            Log.e("DBUtils","异常:" + e.getMessage());
            return null;
        
    
    public static String fins(String name)
        String s="";
        // 根据数据库名称,建立连接
        Connection connection = getConnect();

        try 
            // mysql简单的查询语句。这里是根据MD_CHARGER表的NAME字段来查询某条记录
            String sql = "select * from thing where name = ?";
//            String sql = "select * from MD_CHARGER";
            if (connection != null)// connection不为null表示与数据库建立了连接
                PreparedStatement ps = connection.prepareStatement(sql);
                if (ps != null)
                    // 设置上面的sql语句中的?的值为name
                    ps.setString(1, name);
                    // 执行sql查询语句并返回结果集
                    ResultSet rs = ps.executeQuery();
                    if (rs != null)
                        int count = rs.getMetaData().getColumnCount();
                        Log.e("DBUtils","列总数:" + count);
                        while (rs.next())
                            // 注意:下标是从1开始的
                            s= rs.getString("num");
                        
                        connection.close();
                        ps.close();
                        return  s;
                    else 
                        return null;
                    
                else 
                    return  null;
                
            else 
                return  null;
            
        catch (Exception e)
            e.printStackTrace();
            Log.e("DBUtils","异常:" + e.getMessage());
            return null;
        
    

 

20210827每日总结

20210827 每日总结

  1. python细节:

    • 回溯法把每一层的结果放入总结果result时,要用切片的方式复制append(path[:]),否则仅仅是引用了path的地址,会随着path不断变化
  2. 回溯法复习

    • 组合问题:参数StartIndex 控制每一层遍历数组里的下一个数字。
      • 组合总和,无重复元素情况下:元素不能重复拿,每次递归从startindex+1开始;可以重复拿就从startindex开始。
      • 组合总和2,有重复元素情况下:元素只能拿一次,且不能出现相同组合,意味着同一树层上不能重复,同一树枝上可以重复,需要一个used数组判断前一个相同的数字是否用过(某数和前数相等且前数的used为初始状态,则同层使用过)
    • LC17电话号码组合问题:需要一个index来控制遍历不同的数字(即遍历的深度);而每个数字对应的3-4个字母是每一层遍历的广度(由本层的for循环控制),终止条件就是深度参数idx等于规定的长度。每次递归传入idx+1表示处理下一个数字。
    • 切割问题:startIdx模拟切割线,对[startIdx:i+1]子串进行递归遍历、判断、回溯。
    • 子集问题:要保存的是所有节点而非仅仅是叶子结点。写法上的区别在于:不需要结束条件,递归收集所有节点,for循环结束自动结束
    • LC491.递增子序列:与组合总和2相似,都是数组有重复且不允许结果重复。组合问题可以排序+标记来去重,此题牵扯到递增,不能排序,单开一个数组记录本层哪些数字访问过。
    • 排列问题:
      • 无重复的数组的全排列,和组合问题的不同就是每次递归都从0开始遍历,用used数组来保证不会重复选到自己,体现在代码上就是组合问题的used数组可以放在递归函数内,每一个新分支都重置;而排列问题used数组放在递归函数外,保证每个分支往深处递归时不停的更新。
      • 有重复的数组的全排列,要求结果不能重复,这就说明同一树层和同一树枝上的元素都不能重复。综合前面的去重方法,用used[i-1] 和 used[i]来判断。
  3. 动态规划 子序列子串问题复习

    • 最长递增子序列:因为要求可以不连续,故而dp[i] 依赖于从0-i-1的最长子序列长度+1。
    • 最长连续递增子序列:要求必须连续,故而dp[i] 只依赖于dp[i-1] +1 ,初始化都为1。
    • 最长重复子数组:要求必须连续,定义dp[i][j] 为A下标0-i-1、B下标0-j-1的子串的最长公共子数组长度,只依赖于dp[i-1][j-1]
    • 最长公共子序列:要求不一定连续,分类讨论当A[i-1][j-1]和B[i-1][j-1]相等和不相等(不相等时i j依赖于i-1 j和i j-1的最大值)

以上是关于每日总结 4..9的主要内容,如果未能解决你的问题,请参考以下文章

每日总结#2

2107 JAVASE每日复习总结 链接汇总

2110 JAVASE每日复习总结 链接汇总

2111 JAVASE每日复习总结 链接汇总

2108 JAVASE每日复习总结 链接汇总

2109 JAVASE每日复习总结 链接汇总