zoukankan      html  css  js  c++  java
  • H2数据库简单使用操作

    h2database官网

    http://www.h2database.com/html/main.html

    下载客户端控制台

    h2database Maven配置

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.199</version>
    </dependency>
    

    1 控制台新建数据库与连接数据库

    1.1建库

    windows系统下点击h2/bin/h2.bat启动控制台应用程序

    鼠标右键点击桌面右下角图标 Create a new database...

    例如在k盘h2目录下新建helloForm数据库,则填写路径为k:/h2/helloForm

    1.2控制台连接数据库

    开打控制台,点击H2 Console

    driver class 与 jdbc url 有多种填写方式,详情参考官网说明文档

    在这里使用 org.h2.Driver 驱动

    jdbc url填写为 jdbc:h2:tcp://localhost/k:/h2/helloForm;database_to_upper=false

    • 其中tcp://localhost/表示使用TCP / IP的服务器模式(远程连接),该方式允许有多个客户端同时连接一个数据库
    • 后缀;database_to_upper=false表示取消默认的自动转换成大写。在建表时字段可以区分大小写,在查询数据时,也应该严格区分表名,与字段的大小写

    成功进入浏览器控制台

    2 基本使用代码

    package com.h2;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    /**
     * @Description: H2内嵌数据库的基本使用
     * @author: haidnor
     */
    public class H2Test {
    
        /**
         * 以嵌入式(本地)连接方式连接H2数据库
         */
        private static final String JDBC_URL = "jdbc:h2:K:/Java/H2Test/user";
    
        /**
         * 使用TCP/IP的服务器模式(远程连接)方式连接H2数据库(推荐)
         */
        // private static final String JDBC_URL = "jdbc:h2:tcp://10.35.14.122/C:/H2/user";
    
        // 数据库管理员用户名,用户名不区分大小写
        private static final String USER = "root";
        // 数据库管理员用户名
        private static final String PASSWORD = "root";
        //数据库驱动
        private static final String DRIVER_CLASS = "org.h2.Driver";
    
        public static void main(String[] args) throws Exception {
            // TODO Auto-generated method stub
            Class.forName(DRIVER_CLASS);
            
            // 数据库连接,如果目录下没有指定数据库,会自动生成
            Connection conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);
    
            // 获取数据库操作对象statement
            Statement statement = conn.createStatement();
    
            // 建库
            statement.execute("DROP TABLE IF EXISTS USER_INF");
            // 建表
            statement.execute("CREATE TABLE USER_INF(id INTEGER PRIMARY KEY, name VARCHAR(100), sex VARCHAR(2))");
            // 插入数据操作
            statement.executeUpdate("INSERT INTO USER_INF VALUES(1, 'tom', '男') ");
            statement.executeUpdate("INSERT INTO USER_INF VALUES(2, 'jack', '女') ");
            statement.executeUpdate("INSERT INTO USER_INF VALUES(3, 'marry', '男') ");
            statement.executeUpdate("INSERT INTO USER_INF VALUES(4, 'lucy', '男') ");
            // 查询数据
            ResultSet resultSet = statement.executeQuery("select * from USER_INF");
    
            // 遍历打印数据
            while (resultSet.next()) {
                System.out.println(
                        resultSet.getInt("id") + ", "
                        + resultSet.getString("name") + ", "
                        + resultSet.getString("sex"));
        }
            // 关闭数据库连接
            statement.close();
            conn.close();
        }
    
    }
    

    H2数据库连接池的基本使用

    package com.h2;
    
    import org.h2.jdbcx.JdbcConnectionPool;
    import java.sql.*;
    
    /**
     * @Description: H2数据库连接池的基本使用
     * @author Haidnor
     * @creat 2019-12-23-11:15
     */
    public class H2PoolTest {
    
        private static final String JDBC_URL = "jdbc:h2:tcp://localhost/K:/Java/H2Test/user";
    
        // 数据库管理员用户名,用户名不区分大小写
        private static final String USER = "root";
        // 数据库管理员用户名
        private static final String PASSWORD = "root";
    
        public static void main(String[] args) throws SQLException {
    
            // JDBC连接池
            JdbcConnectionPool pool = JdbcConnectionPool.create(JDBC_URL, USER, PASSWORD);
            // 建立连接超时时间
            pool.setLoginTimeout(10000);
            // 建立连接最大个数
            pool.setMaxConnections(100);
    
            Connection conn = pool.getConnection();
            // 获取数据库操作对象statement
            Statement statement = conn.createStatement();
    
            // 查询数据
            ResultSet resultSet = statement.executeQuery("select * from USER_INF");
            // 遍历打印数据
            while (resultSet.next()) {
                System.out.println(
                        resultSet.getInt("id") + ", "
                                + resultSet.getString("name") + ", "
                                + resultSet.getString("sex"));
            }
            // 释放资源
            statement.close();
            // 关闭连接
            conn.close();
        }
    }
    
  • 相关阅读:
    软件工程期末考试复习(五)
    软件工程期末考试复习(四)
    软件工程期末考试复习(三)
    软件工程期末考试复习(二)
    shell脚本与mongo交互
    python使用单例模式创建MySQL链接
    python with上下文的浅谈
    Docker 基础概念科普 和 常用操作介绍
    MySQL聚集索引和非聚集索引
    为什么选择Python
  • 原文地址:https://www.cnblogs.com/Haidnor/p/12082472.html
Copyright © 2011-2022 走看看