DB2下载地址:https://www-01.ibm.com/marketing/iwm/iwm/web/pickUrxNew.do?source=swg-db2expressc(须要先注册登陆),最新版本11.1html
下载后安装一路next就完事了。java
安装完了会默认建立一个simple数据库。使用DB2命令行处理器运行:connect to simple user db2admin using 123456,而后使用list tables命令查看名下的表。mysql
参照:https://blog.csdn.net/u012288582/article/details/80870630web
经常使用命令:https://www.cnblogs.com/frankliiu-java/articles/2065666.htmlspring
db2与mysql的区别:sql
db2多了一个实例的概念,因为在MySQL里实例跟数据库是一对一的,因此不提这个概念。可是在db2里,一个实例能够操做多个数据库。数据库
从DB2的体系结构方面来看,实例实际上就是DB2的执行代码和数据库对象的中间逻辑层。实例能够当作是关于全部的数据库及其对象的逻辑集合,实例为数据库运行提供一个环境。express
数据库是物理的,咱们的表、索引存放在数据库中要占物理存储的;而实例是逻辑的,是共享内存、进程和一些配置文件(实例目录)的集合。工具
参考:https://blog.csdn.net/nayanminxing/article/details/69397870ui
图形化工具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.这个软件的优势是能够看到全部的元数据,具体看官网文档。
参考:http://www.javashuo.com/article/p-gbsyxeju-dm.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:http://www.javashuo.com/article/p-txoaumfe-dv.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(); }
参照: