今天早上的考试主要考Java的网络,HttpClient的get,post方法,Socket的文件传输和Xml和Json文件的解析,对于HttpCLient很简单,只需要用HttpCLient去读取文件就行了,而对于Socket需要注意用换行符,因为有时候没有换行符代码会阻塞在readline处,使代码不往下执行,但是又很难找到原因。而对于Xml和Json文件的解析,需要注意编码格式,用utf-8编码,不然编码会有问题。如果有第三方库的话,mvn package打包的jar中只会含有自己的代码,直接用java -jar *.jar会报一个类找不到的错误,对于这种情况,我们需要在maven打包时把第三方依赖打包进去,有多种方式可以选择,最简单的选择maven-assembly-plugin插件,设置descriptorRefs运行即可。
maven打包打上第三方依赖包
Error:java: Compilation failed: internal java compiler error
ODBC:Open DataBase Connetivity
JDBC:Java DataBase Connectivity
Class.forName("com.mysql.cj.jdbc.Driver");,不要用Class.forName("com.mysql.jdbc.Driver");为什么不需要Class.ForName("com.mysql.cj.jdbc.Driver")也可以执行
private static void query(){
        String sql = "select * from t_user where id = ?";
        try(Connection connection = DriverManager.getConnection(MYSQL_URL,MYSQL_NAME,MYSQL_PWD);
            PreparedStatement statement = connection.prepareStatement(sql);){
            statement.setInt(1,2);
            ResultSet rs = statement.executeQuery();
            while (rs.next()){
                System.out.print(rs.getInt("id")+" ");
                System.out.print(rs.getString("username")+" ");
                System.out.print(rs.getString("pwd")+" ");
                System.out.print(rs.getString("email")+" ");
                System.out.println();
            }
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
private static void insert(){
        String sql = "insert into t_user(id,username,pwd,email) values  (?,?,?,?)";
        try (Connection connection = DriverManager.getConnection(MYSQL_URL,MYSQL_NAME,MYSQL_PWD);
             PreparedStatement statement = connection.prepareStatement(sql);){
            statement.setInt(1,3);
            statement.setString(2,"dey");
            statement.setString(3,"123");
            statement.setString(4,"123@qq.com");
            //返回值是更新的记录数量
            int resultNum = statement.executeUpdate();
            System.out.println("插入的记录数量:"+resultNum);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
private static void update(){
        String sql = "update t_user set username=?,pwd=?,email=? where id =?";
        try (Connection connection = DriverManager.getConnection(MYSQL_URL,MYSQL_NAME,MYSQL_PWD);
             PreparedStatement statement = connection.prepareStatement(sql);){
            statement.setString(1,"lcu");
            statement.setString(2,"123u");
            statement.setString(3,"123u@qq.com");
            statement.setInt(4,3);
            //返回值是更新的记录数量
            int resultNum = statement.executeUpdate();
            System.out.println("更新的记录数量:"+resultNum);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
private static void delete(){
        String sql = "delete from t_user where id=?";
        try (Connection connection = DriverManager.getConnection(MYSQL_URL,MYSQL_NAME,MYSQL_PWD);
             PreparedStatement statement = connection.prepareStatement(sql);){
            statement.setInt(1,3);
            //返回值是更新的记录数量
            int resultNum = statement.executeUpdate();
            System.out.println("删除的记录数量:"+resultNum);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
原文:https://www.cnblogs.com/sufferingStriver/p/9403437.html