DB2入门

DB2下载地址:https://www-01.ibm.com/marketing/iwm/iwm/web/pickUrxNew.do?source=swg-db2expressc(需要先注册登录),最新版本11.1

下载后安装一路next就完事了。

安装完了会默认创建一个simple数据库。使用DB2命令行处理器运行:connect to simple user db2admin using 123456,然后使用list tables命令查看名下的表。

参照:https://blog.csdn.net/u012288582/article/details/80870630

常用命令:https://www.cnblogs.com/frankliiu-java/articles/2065666.html

db2与mysql的区别:

db2多了一个实例的概念,由于在MySQL里实例跟数据库是一对一的,所以不提这个概念。但是在db2里,一个实例可以操作多个数据库。

从DB2的体系结构方面来看,实例实际上就是DB2的执行代码和数据库对象的中间逻辑层。实例可以看成是关于所有的数据库及其对象的逻辑集合,实例为数据库运行提供一个环境。

数据库是物理的,我们的表、索引存放在数据库中要占物理存储的;而实例是逻辑的,是共享内存、进程和一些配置文件(实例目录)的集合。

参考:https://blog.csdn.net/nayanminxing/article/details/69397870

图形化工具SQuirreL SQL Client的使用:

1.官网下载http://squirrel-sql.sourceforge.net/

2.先配置驱动,驱动地址大概是jdbc:db2://localhost:50000/sample,然后下载jdbc驱动。

驱动下载地址:https://mvnrepository.com/artifact/com.ibm.db2.jcc/db2jcc4/10.1

下载后在外挂表里把驱动加上,点击列出驱动列表,然后选择类。

3.新建一个别名,然后就可以连接上了。

4.这个软件的优点是可以看到所有的元数据,具体看官网文档。

参考:https://www.cnblogs.com/f1194361820/p/5719557.html

关于如何使用spring+jdbc启动db2:

https://www.ibm.com/developerworks/cn/java/j-tutorials-spring-with-db2-via-jdbc/index.html

DB2语句:

关于注释:http://blog.itpub.net/29668428/viewspace-2284490/

 http://blog.itpub.net/29668428/viewspace-2284490/

https://blog.csdn.net/baibinboss/article/details/63252370

可能出现的SQLCODE错误:

sqlcode=-204:https://www.cnblogs.com/ealenxie/p/9824322.html

没有定义的对象名
  操作表的话是要<schema>.<tableName> db2的schema是和系统的用户一致

sqlcode=-551:https://www.cnblogs.com/1446358788-qq/articles/8332292.html

权限缺失,需要grant dbadm(一切权限) on database to user db2admin(给当前用户哪个用户的权限)

获取列注释:

    public void TestDB2Connect()throws ClassNotFoundException, IllegalAccessException, InstantiationException, SQLException{
        String url = "jdbc:db2://localhost:50000/sample";
        String user = "db2admin";
        String pass = "123456";
        Properties properties=new Properties();
        properties.setProperty("user","db2admin");
        properties.setProperty("password","123456");
        properties.setProperty("currentSchema","administrator");

        Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
        Connection conn = DriverManager.getConnection(url, properties);
        DatabaseMetaData metadata = conn.getMetaData();
        ResultSet resultSet = metadata.getTables(null, null, null, null);
        while (resultSet.next()) {
            String tableName=resultSet.getString("TABLE_NAME");
            //System.out.println(tableName);
            if(tableName.equals("TB1")){
                ResultSet rs = conn.getMetaData().getColumns(null,"%",tableName.toUpperCase(),"%");
                while(rs.next()){
                    System.out.println(rs.getString("COLUMN_NAME"));
                    System.out.println(rs.getString("REMARKS"));
                }
                rs.close();
            }
        }
        resultSet.close();
    }

 参照:

https://blog.csdn.net/xiaofeng6072/article/details/76850391

https://blog.csdn.net/u011637069/article/details/52046662

原文地址:https://www.cnblogs.com/chrisweiii/p/10490505.html