JAVA 학습 노트 (첫 주)

5919 단어
머리말
이전에 Python 을 배 웠 기 때문에 자바 가 비교적 빠 릅 니 다. 이번 주 에 대체적으로 자바 를 한 번 보 았 습 니 다.마침 선생님 도 우리 가 자신의 학습 과정 을 기록 하 기 를 원 하 셨 다.이번 주 공부 매듭 만 짓 자.
자바 의 특징
1. 완전한 대상 과 단순 성 2. 플랫폼 무관 성 3. 안전성 과 신뢰성 4. 병발 과 분포 식 컴 퓨 팅 지원 5. 효율 적 인 네트워크 프로 그래 밍 메커니즘
플랫폼 의 무관 성: 크로스 플랫폼 성 이 라 고도 부 르 는데 프로그램 이 수정 되 지 않 고 서로 다른 소프트 하드웨어 플랫폼 에서 정확하게 운행 할 수 있다 는 것 을 말한다.자바 가 크로스 플랫폼 을 실현 하 는 데 는 두 가지 관건 적 인 요소 가 있다. 가상 컴퓨터 와 바이트 코드 이다.가상 컴퓨터 는 자바 명령 을 만 드 는 해석 기 이다.서로 다른 플랫폼 의 가상 컴퓨터 는 다르다.바이트 코드 는 가상 컴퓨터 가 실행 하 는 중간 코드 로 명령 은 바이트 (바 이 너 리 가 아 닌) 형식 으로 나타난다.바이트 코드 의 가장 큰 특징 은 형식 통일 이다.이렇게 하면 서로 다른 컴 파일 러 는 형식 이 통 일 된 바이트 코드 를 만 듭 니 다.이 동시에 서로 다른 가상 컴퓨터 는 바이트 코드 에 대해 통 일 된 해석 을 하고 실행 하기 전에 처 한 소프트 하드웨어 플랫폼 에 따라 즉시 적당 한 바 이 너 리 코드 를 생 성 할 수 있다.이렇게 하면 크로스 플랫폼 수 요 를 쉽게 실현 할 수 있다.
환경 변수의 설정
PATH:C:\Program Files\Java\jdk1.8.0_121 CLASSPATH:C:\Program Files\Java\jdk1.8.0_121\lib
기본 문법:
대체로 문법 은 C 언어 와 통한다.가장 큰 느낌 이 다른 것 은 바로 입력 문 이다.먼저 java. util 의 Scanner 클래스 를 가 져 온 다음 대상 을 실례 화하 고 대상 의 방법 을 통 해 입력 을 실현 해 야 합 니 다. C 언어 나 Python 처럼 어떤 함 수 를 사용 해서 이 동작 을 수행 하 는 것 이 아 닙 니 다.
import java.util.*;
public class Input{
    public static void main(String[] args){
        Scanner input = new Scanner();
        String name = input.nextLine();  //       
        Integer id = input.nextInt();  //      
    }
}

대상 을 향 하 다
대상 을 대상 으로 하 는 이 부분 은 Python 과 대동소이 합 니 다. 클래스 의 인 스 턴 스 를 만 들 때 기본 호출 클래스 의 구조 함수 로 대상 을 초기 화 하 는 데 사 용 됩 니 다.
public class Person{
    private static String country = "China"; 
    private String name;
    private Integer age;
    public Person(String name, Integer age){
      this.name = name;
      this.age = age;
    }
}

정 의 된 Person 클래스 에서 name 과 age 는 인 스 턴 스 속성 이 고 static 가 수식 하 는 country 는 클래스 의 속성 입 니 다.클래스 속성 은 사용 할 때 클래스 이름, 이름 의 방법 을 통 해 직접 사용 할 수 있 으 며, 인 스 턴 스 속성 은 대상 을 예화 해 야 사용 할 수 있 습 니 다.클래스 의 속성 은 공 유 된 것 입 니 다. 즉, 몇 개의 대상 을 예화 하 든 그 속성의 메모리 에는 한 개 만 있 고 대상 의 증가 로 인해 증가 하지 않 습 니 다.
무 거 운 짐
자바 와 막 접촉 하 는 과정 에서 기본 매개 변 수 를 지원 하지 않 는 다 는 것 을 알 게 되 었 습 니 다. Python 에서 저 는 이렇게 함 수 를 사용 할 수 있 습 니 다.
def Func(name, age=15):
    print name, age 
Func("Jack")
Func("Jack", 20)

자바 에 서 는 이러한 기본 매개 변 수 를 지원 하지 않 습 니 다. 어떻게 해 야 합 니까?자바 에서 이 메커니즘 을 다시 불 러 와 함수 가 '동명 의 다른 인삼' 이라는 기능 을 지원 하도록 합 니 다.예 를 들 면:
void f(int x, int y){}
void f(double x, double y){}
void f(double x, float y){}

JDBC
JDBC (Java DataBase Connectivity, 자바 데이터베이스 연결) 는 SQL 문 구 를 실행 하 는 자바 API 로 다양한 관계 데이터 베 이 스 를 통일 적 으로 접근 할 수 있 으 며 자바 언어 로 작 성 된 클래스 와 인터페이스 로 구성 된다.JDBC 는 데이터베이스 개발 자가 데이터베이스 응용 프로그램 을 작성 할 수 있 도록 더 높 은 도구 와 인 터 페 이 스 를 구축 할 수 있 는 기준 을 제공 합 니 다.
데이터베이스 연결
package com.imooc.sql;

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

public class DBUtil {
    
    private static final String URL = "jdbc:mysql://127.0.0.1:3306/project";  //URL
    private static final String USER = "root";  //  
    private static final String PASSWORD = "root";  //  
    private static Connection conn;  //  
    
    static{  //         
                try {
                    Class.forName("com.mysql.jdbc.Driver");
                } catch (ClassNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                //2.        
                try {
                    conn = DriverManager.getConnection(URL, USER, PASSWORD);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    }
    
    public static Connection getConnection(){
    //        ,      
        return conn;
    }
    
    public static void main(String[] args) throws ClassNotFoundException, SQLException{
          System.out.println("Hello");
        }
    }
}

데이터 시트 에 열 이 추가 되 었 습 니 다.
package dao;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.imooc.sql.DBUtil;

import model.Person;

public class PersonDao {
    /**
     *     
     * @param g
     * @throws SQLException
     */
    public void addPerson(Person g) throws SQLException{
        Connection conn = DBUtil.getConnection();
        String sql = ""+
        "insert into person"+
        "(user_name, sex, age, birthday, email, mobile, isdel)"+
        "values("+
        "?, ?, ?, ?, ?, ?,?)";
        //   sql  
        PreparedStatement ptmt = conn.prepareCall(sql);
        ptmt.setString(1, g.getUser_name());
        ptmt.setInt(2, g.getSex());
        ptmt.setInt(3, g.getAge());
        ptmt.setDate(4, new Date(g.getBirthday().getTime()));//  Date   sql  Date
        ptmt.setString(5, g.getEmail());
        ptmt.setString(6, g.getMobile());
        ptmt.setInt(7, g.getIsdel());
        ptmt.execute();
    }

JDBC 를 사용 하 는 과정 에서 이와 같은 오류 가 발생 한 적 이 있 습 니 다.
com. mysql. jdbc. MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE 는 문 제 를 해결 하 는 데 목적 을 둡 니 다. com. mysql. jdbc. MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE 의 오류 해결 에 관 한 제 방안 은 sql 문장의 and 를 ',' (쉼표) 로 바 꾸 는 것 입 니 다. 예 를 들 어 updatecategory set name = ? and description = ? where id = ? update 로 변경category set name = ? , description = ? where id = ?
문 제 는 sql 구문 에 있 는 and 입 니 다. 쉼표 로 바 꾸 면 됩 니 다. 왜 이런 문제 가 발생 했 는 지 아직 잘 모 르 겠 습 니 다.
이상 은 바로 일주일 동안 의 주요 한 정리 이 고 일부 내용 은 학습 에서 기록 하 는 것 도 앞으로 의 학습 에 편리 하 다.

좋은 웹페이지 즐겨찾기