1. 程式人生 > >JDBC(1)JAVA連線資料庫之 基礎知識學習

JDBC(1)JAVA連線資料庫之 基礎知識學習

java連線資料庫

  1. 載入驅動類 匯入jar(jar中都是class)

    1. 專案名右鍵 屬性中新增JavaBuildPath
  2. 應該把資料庫的連線和資源的關閉包裝

  3. 把針對表的操作進行包裝。DAO

    1. 一張表會和一個類進行對應
    2. 列會對應屬性
    3. 一條記錄對應物件
  4. java.sql.Statement====>java,sqp.PreparedStatement

    1. sql語句中的需要傳遞的值可以用?站位,起到預編譯的效果,提高效率。
    2. 防止sql注入
  5. 用PreparedStatement包裝UserDao

資料庫的簡單連線和查詢

package lesson1;

import java.sql.Connection;
import
java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class jdbcDemo1 { public static void main(String[] args) { try { // 1.載入驅動類 Class.forName("oracle.jdbc.driver.OracleDriver"); // 2.獲得連線 java.sql.Connection Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:ORCL"
, "scott", "tiger"); // System.out.println(con); // 3.執行sql語句 java.sql.Statement Statement stmt = con.createStatement(); // 4.執行sql 查詢語句---->查詢得到結果集 java.sql.ResultSet String sql = "select * from bb_user"; ResultSet rs = stmt.executeQuery(sql); // 5.訪問結果集
while (rs.next()) { System.out.println(rs.getInt(1) + "," + rs.getString(2) + "," + rs.getString(3) + "," + rs.getString(4)); // System.out.println(rs.getInt("empno")+","+ rs.getString("ename") + "," // + rs.getString("job") + "," + rs.getInt("sal")); } // 6.關閉資源 ---->異常後面要細緻處理 rs.close(); stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } }

資料庫操作練習

package lesson1;

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

public class jdbcDemo2 {
    public static void main(String[] args) {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection(
                    "jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "tiger");
            Statement stmt =con.createStatement();
        //增加一條記錄    
//      String sql = "insert into bb_user(id,username,userpass,email) " +
//          "values(1111,'hh','123456','[email protected]m')";

//      String sql = "insert into bb_user(id,username,userpass,email) " +
//              "values(1112,'hh1','123456','[email protected]')";

        //修改一條記錄
//      String sql  = "update bb_user set username='hhhh' where id=1111";

        //刪除一條記錄
        String sql = "delete bb_user where id=1001";
        //返回時影響記錄的條數
        int n = stmt.executeUpdate(sql);
            System.out.println(n);
            stmt.close();   //關閉相關資源
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

對連線資料庫的操作進行包裝

配置資訊寫在properties檔案中,方便修改

package lesson1;

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

public class JdbcUitl {
    private static Properties prop = new Properties();
    static{
        try {
            prop.load(JdbcUitl.class.getResourceAsStream("/database.properties"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static Connection getConn(){
        try {
            Class.forName(prop.getProperty("driverClass"));
            Connection con = DriverManager.getConnection(
                    prop.getProperty("url"),prop.getProperty("user"),prop.getProperty("pass"));

            return con;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 資源關閉
     * @param con
     * @param stmt
     * @param rs
     */
    public static void close(Connection con,Statement stmt,ResultSet rs){
        if(rs!=null)
            try {
                rs.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        if(stmt!=null)
            try {
                stmt.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        if(con!=null)
            try {
                con.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
}
package lesson1;

import java.sql.Connection;
import java.sql.Statement;

public class jdbcDemo3 {
    public static void main(String[] args) {
        try {
            Connection con = JdbcUitl.getConn();
            Statement stmt = con.createStatement();
            //增加一條記錄
        /*  int id=1113;
            String pass="zsan";
            String name="zhangsan";
            String email="[email protected]";
            String sql="insert into bb_user(id,username,userpass,email) "+
                    "values("+id+",'"+name+"','"+pass+"','"+email+"')";
            int n=stmt.executeUpdate(sql);
            System.out.println(n);*/

            //修改記錄
            int id=1112;
            String pass="zzzs123";
            String email = "[email protected]";
            String sql = "update bb_user set userpass='"+pass+"',email='"+email+"'" +
                    "where id="+id+"";
            stmt.executeUpdate(sql);
//          stmt.close();
//          con.close();
            JdbcUitl.close(con, stmt, null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

對“增刪改查”操作進行包裝

建立和資料結構對應的user類

package lesson1;

public class User {
    private int id;
    private String username;
    private String userpass;
    private String email;
    public User (){}

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getUserpass() {
        return userpass;
    }
    public void setUserpass(String userpass) {
        this.userpass = userpass;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }


    public User(int id, String username, String userpass, String email) {
        super();
        this.id = id;
        this.username = username;
        this.userpass = userpass;
        this.email = email;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", userpass="
                + userpass + ", email=" + email + "]";
    }

}

包裝方法

package lesson1;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.jws.soap.SOAPBinding.Use;

public class UserDao {
    /**
     * 增加一條記錄
     * @param user
     * @return
     */
    public int addUser(User user) {
        Connection con = null;
        Statement stmt = null;
        int n = 0;
        try {
            con = JdbcUitl.getConn();
            stmt = con.createStatement();
            String sql = "insert into bb_user(id,username,userpass,email)"
                    + "values(" + user.getId() + ",'" + user.getUsername()
                    + "','" + user.getUserpass() + "','" + user.getEmail()
                    + "')";
            n = stmt.executeUpdate(sql);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUitl.close(con, stmt, null);
        }
        return n;
    }

    /**
     * 查詢所有記錄
     * @return
     */
    public List<User> getAll() {
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;

        ArrayList<User> users = new ArrayList<User>();
        try {
            con = JdbcUitl.getConn();
            stmt = con.createStatement();
            String sql = "select * from bb_user";
            rs = stmt.executeQuery(sql);
            while (rs.next()) {
                User user = new User();
                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("username"));
                user.setUserpass(rs.getString("userpass"));
                user.setEmail(rs.getString("email"));
                users.add(user);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUitl.close(con, stmt, rs);
        }
        return users;
    }

    /**
     * 修改使用者資訊
     * @param user
     * @return
     */
    public int updateUser(User user) {
        Connection con = null;
        Statement stmt = null;
        int n = 0;
        try {
            con = JdbcUitl.getConn();
            stmt = con.createStatement();
            String sql = "update bb_user set username='" + user.getUsername()
                    + "',userpass='" + user.getUserpass() + "',email='"
                    + user.getEmail() + "'where id =" + user.getId();
            n=stmt.executeUpdate(sql);
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUitl.close(con, stmt, null);
        }
        return n;
    }

    /**
     * 根據主鍵查詢一條記錄
     * @param id
     * @return
     */
    public User findById(int id){
        Connection con =null;
        Statement stmt = null;
        ResultSet rs = null;
        User user = null;
        try {
            con=JdbcUitl.getConn();
            stmt=con.createStatement();
            String sql = "select*from bb_user where id="+id;
            rs = stmt.executeQuery(sql);
            if(rs.next()){
                user = new User();
                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("username"));
                user.setUserpass(rs.getString("userpass"));
                user.setEmail(rs.getString("email"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUitl.close(con, stmt, rs);
        }
        return user;
    }

    /**
     * User物件中除主鍵外,哪個屬性有值,就根據哪個屬性查詢
     * @param user
     * @return
     */
    public List<User> findBy(User user){
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        ArrayList<User> users = new ArrayList<User>();
        String sql ="select*from bb_user where 1=1";
        String username = user.getUsername();
        if(username!=null)
            sql +=" and username='"+username+"'";
        String userpass = user.getUserpass();
        if(userpass!=null)
            sql +=" and userpass='"+userpass+"'";
        String email = user.getEmail();
        if(email!=null)
            sql +=" and email='"+email+"'"; 
        System.out.println(sql);
        try {
            con = JdbcUitl.getConn();
            stmt = con.createStatement();
            rs=stmt.executeQuery(sql);
            while(rs.next()){
                User user2 = new User();
                user2.setId(rs.getInt("id"));
                user2.setUsername(rs.getString("username"));
                user2.setUserpass(rs.getString("userpass"));
                user2.setEmail(rs.getString("email"));
                users.add(user2);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUitl.close(con, stmt, rs);
        }
        return users;
    }
    public int deleteUser(int id){
        Connection con = null;
        Statement stmt = null;
        int n = 0;
        try {
            con =JdbcUitl.getConn();
            stmt =con.createStatement();
            String sql = "delete bb_user where id="+id;
            n= stmt.executeUpdate(sql);
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUitl.close(con, stmt, null);
        }
        return n; 
    }
}

測試

package lesson1;

import java.util.List;

public class jdbcDemo4 {

    public static void main(String[] args) {
        //測試增加提條記錄
        UserDao ud =new UserDao();

//      User user = new User(1115, "yq", "12345", "[email protected]");
//      int n = ud.addUser(user);
//      System.out.println(n);  


        //測試查詢所有
//      List<User> users = ud.getAll();
//      for (User user : users) {
//          System.out.println(user);
//      }

        //測試根據主鍵來查詢記錄
/*      User user = ud.findById(1111);
        if(user!=null)
        System.out.println(user);*/
        //測試修改
/*      user.setUsername("lisi_name");
        user.setUserpass("123lisi");
        ud.updateUser(user);    */

        //測試不定查詢
//      User user = new User();
//      user.setUsername("zhangsan");
//      user.setUserpass("12345");  
//      List<User> users= ud.findBy(user);
//      for (User user2 : users) {
//          System.out.println(user2);
//      }

        //測試刪除
//      User user = ud.findById(1111);
//      ud.deleteUser(user.getId());

        int n=ud.deleteUser(1001);
        System.out.println(n);

    }
}

PreparedStatement類的使用

package lesson1;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;


public class JdbcDemo5 {
    public static void main(String[] args) {
        try {
            Connection con = JdbcUitl.getConn();
/*          Statement stmt = con.createStatement();
            int id = 1001;
            String name = "lisi";
            String pass = "lisi123";
            String email = "[email protected]";

            String sql ="insert into bb_user(id,username,userpass,email) "+
                    "values("+id+",'"+name+"','"+pass+"','"+email+"')";
            int n = stmt.executeUpdate(sql);
            JdbcUitl.close(con, stmt, null);    */
            String sql="insert into bb_user(id,username,userpass,email)values(?,?,?,?)";
            PreparedStatement pstmt = con.prepareStatement(sql);
            int id = 1001;
            String name = "lisi";
            String pass = "lisi123";
            String email = "[email protected]";
            pstmt.setInt(1, id);
            pstmt.setString(2, name);
            pstmt.setString(3, pass);
            pstmt.setString(4, email);
            int n =pstmt.executeUpdate();
            System.out.println(n);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

sql注入測試

package lesson1;
/**
 * 測試 sql注入
 */
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdebDemo6 {
    public static void main(String[] args) {
        try {
            Connection con = JdbcUitl.getConn();
            Statement stmt = con.createStatement();
            String name = "zhangsan";
            //如果密碼是類似這樣的值, 那麼sql語句恆成立
            String pass = "123'or'a'='a";
    /*      String sql = "select*from bb_user where username='" + name
                    + "'and userpass='" + pass + "'";
            System.out.println(sql);
            ResultSet rs=stmt.executeQuery(sql);
            System.out.println(rs.next());  */
            PreparedStatement pstmt = con.prepareStatement("select*from bb_user where username=? and userpass=?");
            pstmt.setString(1, name);
            pstmt.setString(2, pass);
            ResultSet rs = pstmt.executeQuery();
            System.out.println(rs.next()); 
        } catch (Exception e) {
            e. printStackTrace();
        }
    }
}

重新包裝方法

package lesson1;

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

import javax.jws.soap.SOAPBinding.Use;

public class UserDaoBean {
    /**
     * 增加一條記錄
     * @param user
     * @return
     */
    public int addUser(User user) {
        Connection con = null;
        PreparedStatement pstmt = null;
        int n = 0;
        try {
            con = JdbcUitl.getConn();
            String sql = "insert into bb_user(id,username,userpass,email)values(?,?,?,?)";
            pstmt = con.prepareStatement(sql);
            pstmt.setInt(1, user.getId());
            pstmt.setString(2, user.getUsername());
            pstmt.setString(3, user.getUserpass());
            pstmt.setString(4,user.getEmail());
            n=pstmt.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUitl.close(con, pstmt, null);
        }
        return n;
    }

    /**
     * 查詢所有記錄
     * @return
     */
    public List<User> getAll() {
        Connection con = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        ArrayList<User> users = new ArrayList<User>();
        try {
            con = JdbcUitl.getConn();
            pstmt = con.prepareStatement("select * from bb_user");
            rs = pstmt.executeQuery();
            while (rs.next()) {
                User user = new User();
                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("username"));
                user.setUserpass(rs.getString("userpass"));
                user.setEmail(rs.getString("email"));
                users.add(user);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUitl.close(con, pstmt, rs);
        }
        return users;
    }

    /**
     * 修改使用者資訊
     * @param user
     * @return
     */
    public int updateUser(User user) {
        Connection con = null;
        PreparedStatement pstmt = null;
        int n = 0;
        try {
            con = JdbcUitl.getConn();
            String sql = "update bb_user set username=?,userpass=?,email=? where id=?";
            pstmt = con.prepareStatement(sql);
            pstmt.setString(1, user.getUsername());
            pstmt.setString(2, user.getUserpass());
            pstmt.setString(3, user.getEmail());
            pstmt.setInt(4, user.getId());
            n=pstmt.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUitl.close(con, pstmt, null);
        }
        return n;
    }

    /**
     * 根據主鍵查詢一條記錄
     * @param id
     * @return
     */
    public User findById(int id){
        Connection con =null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        User user = null;
        try {
            con=JdbcUitl.getConn();
            String sql = "select*from bb_user where id="+id;    
            pstmt = con.prepareStatement(sql);
            rs = pstmt.executeQuery();
            if(rs.next()){
                user = new User();
                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("username"));
                user.setUserpass(rs.getString("userpass"));
                user.setEmail(rs.getString("email"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUitl.close(con, pstmt, rs);
        }
        return user;
    }

    /**
     * User物件中除主鍵外,哪個屬性有值,就根據哪個屬性查詢
     * @param user
     * @return
     */
    public List<User> findBy(User user){
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        ArrayList<User> users = new ArrayList<User>();
        String sql ="select*from bb_user where 1=1";
        String username = user.getUsername();
        if(username!=null)
            sql +=" and username='"+username+"'";
        String userpass = user.getUserpass();
        if(userpass!=null)
            sql +=" and userpass='"+userpass+"'";
        String email = user.getEmail();
        if(email!=null)
            sql +=" and email='"+email+"'"; 
        System.out.println(sql);
        try {
            con = JdbcUitl.getConn();
            stmt = con.createStatement();
            rs=stmt.executeQuery(sql);
            while(rs.next()){
                User user2 = new User();
                user2.setId(rs.getInt("id"));
                user2.setUsername(rs.getString("username"));
                user2.setUserpass(rs.getString("userpass"));
                user2.setEmail(rs.getString("email"));
                users.add(user2);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUitl.close(con, stmt, rs);
        }
        return users;
    }


    public int deleteUser(int id){
        Connection con = null;
        PreparedStatement pstmt = null;
        int n = 0;
        try {
            con =JdbcUitl.getConn();        
            String sql = "delete bb_user where id="+id;
            pstmt = con.prepareStatement(sql);
            n=pstmt.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUitl.close(con, pstmt, null);
        }
        return n; 
    }
}

測試

package lesson1;

import java.util.List;

public class JdbcDemo7 {
    public static void main(String[] args) {
        UserDaoBean udb = new UserDaoBean();
        //新增一條記錄測試
    /*  User user = new User(2000,"wp","123","[email protected]");
        int n=udb.addUser(user);
        System.out.println(n);  */

        //查詢全部測試
    /*  
        List<User> users = udb.getAll();
        for (User user : users) {
            System.out.println(user);  
        }
    */  
        //根據ID查詢 並修改
    /*  User user = udb.findById(2000);
        System.out.println(user);
        user.setUsername("xxxx");
        user.setUserpass("12xxxxx");
        udb.updateUser(user);
    */
        //刪除資訊
        udb.deleteUser(2000);
    }
}

寫在最後:JDBC基礎知識學習了一下。做此總結

相關推薦

JDBC1JAVA連線資料庫 基礎知識學習

java連線資料庫 載入驅動類 匯入jar(jar中都是class) 專案名右鍵 屬性中新增JavaBuildPath 應該把資料庫的連線和資源的關閉包裝 把針對表的操作進行包裝。DAO 一張表會和一個類進行對應 列會對應屬性 一條記錄對應物件 java

JDBC3JAVA連線資料庫 抽象DAO操作

抽象DAO操作 關於所有的表操作都會對應一些操作,我們都會把這些抽取到對應的DAO中。那麼存在大量的重複操作,是否可以抽出通用的部分,供大家繼承使用。 把DAO的操作先寫成介面,把通用的操作提煉出來。 實現操作 根據主鍵查詢 查詢所有 增加、刪除、修改、記

JDBC1簡單介紹/資料庫連線

初始JDBC: JDBC是java連線資料庫的一個工具,沒有這個工具,java將無法和資料庫進行連線。 JDBC API: JDBC是個“低階”介面,也就是說,他直接用於呼叫SQL命令。 JDBC驅動型別: JDBC是應用程式程式設計介面,描述了在訪問關係資料庫的標準 java類庫。並且還為資料庫廠商提

Java基礎java連線資料庫

Java 連線 MySQL和Java 連線 Oracle資料庫的一些基本總結: 1.Java 連線 MySQL資料庫 //整體封裝寫為一個方法(後續補上) public class MysqlDemo { //引入Jdbc驅動及資料庫地址URL final String Jd

android反射元件 java 自定義annotation基礎知識

自定義annotation包括三部分: 自定義annotation、使用annotation的類、annotation的處理方法。 一、自定義annotation        元註解包括以下:            1)@Target    描述註解使用的範圍  取值包括

初識ABP vNext1:開篇計劃&基礎知識

[TOC] # 前言 ABP vNext(以下簡稱ABP)的前身是asp.net boilerplate(老版abp),它不是一個簡單的版本更新,而是完全基於.NET Core的重寫。之前有聽說過ABP框架,但是一直沒有去詳細瞭解。最近認真學習了一下,準備記錄下自己的一些心得,計劃分為3部分來進行: 1

Java-JDBC1

得到 nbsp 成對 spa ext 概述 三個參數 jvm imp 一, 1.jdbc概述:jdbc是一種用來執行sql語句的java api,可以為多種關系數據庫提供同意訪問,是由一組用Java代碼寫的類和接口組成,是java訪問數據庫的標準規範 2.jdbc原理:Ja

Spring學習51:IoC容器IoC概述,JAVA反射機制,資源訪問器

spring學習5(1)  在經過了對spring框架基本開發的瞭解以及對spring boot流程的學習,《精通spring4.x…》這本書正式開始了spring的講解,我也跟隨著這本書的腳步進行學習。 IoC概述  首先需要學習的是spring的IoC技術,

ArangoDB入門教程java連線ArangoDB資料庫

    (一)說明                       和其他noSQL差不多,java連線ArangoDB也是大同小異的。                       確保ArangoDB資料庫的服務已經開啟就好。    (二)程式碼例項            

1Java多線程編程核心——Java多線程技能

urn 優先 語句 成才 都是 ora border cell this 1、為什麽要使用多線程?多線程的優點? 提高CPU的利用率 2、什麽是多線程? 3、Java實現多線程編程的兩種方式? a、繼承Thread類 pub

JDBC1——獲取數據庫連接

name puts 數據庫驅動 靜態代碼塊 use root driver pri gui 主要講通過 DriverManager 連接 DriverManager 是驅動的管理類. 1). 可以通過重載的 getConnection() 方法獲取數據庫連接. 較為方便

Linux鞏固記錄1 java項目的編譯和執行

mce frame cati readfile 知識 4.3 sse apach ast 由於要近期使用hadoop等進行相關任務執行,操作linux時候就多了 以前只在linux上配置J2EE項目執行環境,無非配置下jdk,部署tomcat,再通過docker或者jenk

算法1——Java冒泡算法

info 算法 一個 stat bubble 比較 接下來 mage body Java冒泡算法算是最常見的算法之一了。那麽什麽是冒泡算法呢?如下圖所示(圖片來自網絡): 其實可以看到,第一遍的遍歷過程中,首先比較第一對數字,比較交換完成後第二個數字一定是比較大的,接下來比

JDBC1

而後 product 一個數 set 連接方式 mil ssp mongodb int 一、JDBC簡介。   JDBC(Java DataBase Connectivity,java數據庫連接)是一種用於執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,

Redis學習總結1——Redis記憶體資料庫詳細教程

1.Redis是什麼 2.redis的作者何許人也 3.誰在使用redis 4.學會安裝redis 5.學會啟動redis 6.使用redis客戶端 7.redis資料結構 – 簡介 8.redis資料結構 – strings 9.redis資料結構 – lists 10.redis

VB6基本資料庫應用連線資料庫與SQL語句的Select語句初步

資料庫我們已經建好了,重提一下上一章的結果,我們最後建立了一張Student的表,其中有StudentID(數字的雙精度型別)和StudentName(文字型別。補充一下,2013中有【長文字】和【短文字】,人名不會很長,根據上一章選擇儘量小的資料型別的規則,這裡就選【短文字】就可以了)。儘

Java】「深入理解Java虛擬機器」學習筆記1 - Java語言發展趨勢

這本書寫的比較早,現在這些功能都已經不同程度的實現了。 1、模組化     JDK9之前的版本都是一個整體,使用者可能只需要使用一個小功能,但他不得不下載整個JDK。不能滿足定製化需求,顯然Java語言的發展因此大大受限。   所以,Sun公司在OpenJDK建立了一個Jigsaw(拼圖)的專案來推動模

javaweb學習筆記十五JDBC1

目錄 1.概念 2 JDBC介面的核心API 例1:jdbc連線資料庫  例2:Statement物件演示 例3:PreparedStatement物件演示 例4:CallableStatement物件演示 1.概念 SUN公司為了簡化、統一對資料庫

jvm學習筆記1——java虛擬機器記憶體區域

一、java記憶體區域:      1、程式計數器(執行緒私有):     記憶體中較小的記憶體空間,可以當做當前執行緒所執行位元組碼的行號指示器。如分支、迴圈、跳轉、異常處理、執行緒恢復都需要依賴這個計數器完成。 2、java虛擬機

自動記憶體管理機制1- java記憶體區域與虛擬機器物件

自動記憶體管理機制(1)- java記憶體區域與虛擬機器物件 1. 執行時資料區域 Java虛擬機器在執行Java程式的過程中會把它所管理的記憶體劃分為若干個不同的資料區域。有的區域隨著虛擬機器進行的啟動而存在,有些區域則以來使用者執行緒的啟動和結束而建立和銷燬。 有以下幾個區域