楼主: ~贝贝~

支持国产数据库,达梦数据库试用团DM7大体验,优缺点我来评!活动结束,获奖名单公布

[复制链接]
论坛徽章:
36
ITPUB社区12周年站庆徽章
日期:2013-11-06 17:30:062013年新春福章
日期:2013-02-27 17:56:022014年新春福章
日期:2014-02-18 16:43:092013年新春福章
日期:2013-02-27 17:56:02奔驰
日期:2013-10-11 10:16:19ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:19马上加薪
日期:2014-02-20 15:51:19马上有钱
日期:2014-02-18 16:43:092014年新春福章
日期:2014-03-27 14:17:262015年新春福章
日期:2015-03-06 11:58:18
191#
发表于 2011-12-13 11:31 | 只看该作者
477 字节 速度

太牛奔了!1

使用道具 举报

回复
论坛徽章:
43
现任管理团队成员
日期:2011-05-07 01:45:08ITPUB元老
日期:2012-09-12 14:50:28版主5段
日期:2014-06-11 02:21:31阿斯顿马丁
日期:2013-11-19 10:38:16祖母绿
日期:2012-11-06 12:43:12路虎
日期:2013-11-20 11:37:53雪佛兰
日期:2013-09-05 13:28:25ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24秀才
日期:2015-05-26 13:32:07
192#
发表于 2011-12-13 13:17 | 只看该作者
lzx313 发表于 2011-12-13 11:31
477 字节 速度

太牛奔了!1

网通的用户下载可能会慢点

使用道具 举报

回复
论坛徽章:
27
2009日食纪念
日期:2009-07-22 09:30:002010广州亚运会纪念徽章:保龄球
日期:2010-11-29 11:17:362010广州亚运会纪念徽章:橄榄球
日期:2010-11-29 11:24:212010广州亚运会纪念徽章:网球
日期:2010-11-29 11:26:562010广州亚运会纪念徽章:摔跤
日期:2010-11-29 11:27:442011新春纪念徽章
日期:2011-02-18 11:43:34ITPUB十周年纪念徽章
日期:2011-11-01 16:24:51鲜花蛋
日期:2011-12-14 16:07:452012新春纪念徽章
日期:2012-01-04 11:54:46迷宫蛋
日期:2012-01-17 10:20:51
193#
发表于 2011-12-13 14:40 | 只看该作者
围观~,有空实验下

使用道具 举报

回复
论坛徽章:
0
194#
发表于 2011-12-13 14:53 | 只看该作者
顶一下

使用道具 举报

回复
论坛徽章:
11
SQL极客
日期:2013-12-09 14:13:35SQL数据库编程大师
日期:2013-12-06 13:59:43SQL大赛参与纪念
日期:2013-12-06 14:03:45红孩儿
日期:2012-12-19 11:08:17优秀写手
日期:2013-12-18 09:29:09暖羊羊
日期:2015-04-22 14:41:41
195#
发表于 2011-12-13 15:54 | 只看该作者
国产的DB,无论如何得支持一下

使用道具 举报

回复
论坛徽章:
23
ITPUB十周年纪念徽章
日期:2011-11-01 16:25:22itpub13周年纪念徽章
日期:2014-10-08 15:20:46itpub13周年纪念徽章
日期:2014-10-08 15:20:46itpub13周年纪念徽章
日期:2014-10-08 15:20:46itpub13周年纪念徽章
日期:2014-10-08 15:20:46itpub13周年纪念徽章
日期:2014-10-08 15:20:46itpub13周年纪念徽章
日期:2014-10-08 15:20:46马上有钱
日期:2014-02-18 16:43:092014年新春福章
日期:2014-02-18 16:43:09ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:42
196#
发表于 2011-12-13 16:20 | 只看该作者
这个给力,支持。。。
有空测测。。。

使用道具 举报

回复
论坛徽章:
43
现任管理团队成员
日期:2011-05-07 01:45:08ITPUB元老
日期:2012-09-12 14:50:28版主5段
日期:2014-06-11 02:21:31阿斯顿马丁
日期:2013-11-19 10:38:16祖母绿
日期:2012-11-06 12:43:12路虎
日期:2013-11-20 11:37:53雪佛兰
日期:2013-09-05 13:28:25ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24秀才
日期:2015-05-26 13:32:07
197#
发表于 2011-12-13 16:54 | 只看该作者
wjlcn 发表于 2011-12-13 16:20
这个给力,支持。。。
有空测测。。。

感谢支持!

使用道具 举报

回复
论坛徽章:
43
现任管理团队成员
日期:2011-05-07 01:45:08ITPUB元老
日期:2012-09-12 14:50:28版主5段
日期:2014-06-11 02:21:31阿斯顿马丁
日期:2013-11-19 10:38:16祖母绿
日期:2012-11-06 12:43:12路虎
日期:2013-11-20 11:37:53雪佛兰
日期:2013-09-05 13:28:25ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24秀才
日期:2015-05-26 13:32:07
198#
发表于 2011-12-13 16:55 | 只看该作者
sohay 发表于 2011-12-13 15:54
国产的DB,无论如何得支持一下

呵呵,非常感谢!

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
199#
发表于 2011-12-13 17:38 | 只看该作者
我执行JDBC程序,测试DM的数据库,报以下错误,无法解决。



程序如下:

  1. package dmtest;

  2. import java.awt.Color;
  3. import java.awt.Font;
  4. import java.awt.Graphics2D;
  5. import java.awt.font.FontRenderContext;
  6. import java.awt.geom.Rectangle2D;
  7. import java.awt.image.BufferedImage;
  8. import java.io.BufferedInputStream;
  9. import java.io.File;
  10. import java.io.FileInputStream;
  11. import java.io.FileNotFoundException;
  12. import java.io.FileOutputStream;
  13. import java.io.IOException;
  14. import java.io.InputStream;
  15. import java.math.BigDecimal;
  16. import java.sql.CallableStatement;
  17. import java.sql.Connection;
  18. import java.sql.Date;
  19. import java.sql.DriverManager;
  20. import java.sql.PreparedStatement;
  21. import java.sql.ResultSet;
  22. import java.sql.ResultSetMetaData;
  23. import java.sql.SQLException;
  24. import java.sql.Statement;
  25. import javax.imageio.ImageIO;

  26. public class BasicApp {
  27.         // 定义 DM JDBC 驱动串
  28.         String jdbcString = "dm7.jdbc.driver.DmDriver";
  29.         // 定义 DM URL 连接串
  30.         String urlString = "jdbc:dm7://localhost:5236";
  31.         // 定义连接用户名
  32.         String userName = "SYSDBA";
  33.         // 定义连接用户口令
  34.         String password = "adminadmin";
  35.         // 定义连接对象
  36.         Connection conn = null;

  37.         /*
  38.          * 加载 JDBC 驱动程序
  39.          *
  40.          * @throws SQLException 异常
  41.          */
  42.         public void loadJdbcDriver() throws SQLException {
  43.                 try {
  44.                         System.out.println("Loading JDBC Driver...");
  45.                         // 加载 JDBC 驱动程序
  46.                         Class.forName(jdbcString);
  47.                 } catch (ClassNotFoundException e) {
  48.                         throw new SQLException("Load JDBC Driver Error : " + e.getMessage());
  49.                 } catch (Exception ex) {
  50.                         throw new SQLException("Load JDBC Driver Error : "
  51.                                         + ex.getMessage());
  52.                 }
  53.         }

  54.         /*
  55.          * 连接 DM 数据库
  56.          *
  57.          * @throws SQLException 异常
  58.          */
  59.         public void connect() throws SQLException {
  60.                 try {
  61.                         System.out.println("Connecting to DM Server...");
  62.                         // 连接 DM 数据库
  63.                         conn = DriverManager.getConnection(urlString, userName, password);
  64.                 } catch (SQLException e) {
  65.                         throw new SQLException("Connect to DM Server Error : "
  66.                                         + e.getMessage());
  67.                 }
  68.         }

  69.         /*
  70.          * 关闭连接
  71.          *
  72.          * @throws SQLException 异常
  73.          */
  74.         public void disConnect() throws SQLException {
  75.                 try {
  76.                         // 关闭连接
  77.                         conn.close();
  78.                 } catch (SQLException e) {
  79.                         throw new SQLException("close connection error : " + e.getMessage());
  80.                 }
  81.         }

  82.         /*
  83.          * 往产品信息表插入数据
  84.          *
  85.          * @throws SQLException 异常
  86.          */
  87.         public void insertTable() throws SQLException {
  88.                 // 插入数据语句
  89.                 String sql = "INSERT INTO production.product(name,author,publisher,publishtime,"
  90.                                 + "product_subcategoryid,productno,satetystocklevel,originalprice,nowprice,discount,"
  91.                                 + "description,photo,type,papertotal,wordtotal,sellstarttime,sellendtime) "
  92.                                 + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
  93.                 // 创建语句对象
  94.                 PreparedStatement pstmt = conn.prepareStatement(sql);
  95.                 // 为参数赋值
  96.                 pstmt.setString(1, "三国演义");
  97.                 pstmt.setString(2, "罗贯中");
  98.                 pstmt.setString(3, "中华书局");
  99.                 pstmt.setDate(4, Date.valueOf("2005-04-01"));
  100.                 pstmt.setInt(5, 4);
  101.                 pstmt.setString(6, "9787101046121");
  102.                 pstmt.setInt(7, 10);
  103.                 pstmt.setBigDecimal(8, new BigDecimal(19.0000));
  104.                 pstmt.setBigDecimal(9, new BigDecimal(15.2000));
  105.                 pstmt.setBigDecimal(10, new BigDecimal(8.0));
  106.                 pstmt.setString(11, "《三国演义》是中国第一部长篇章回体小说,中国小说由短篇发展至长 篇的原因与说书有关。");
  107.                 // 设置大字段参数
  108.                 try {
  109.                         // 创建一个图片用于插入大字段
  110.                         String filePath = "c:\\三国演义.jpg";
  111.                         CreateImage(filePath);
  112.                         File file = new File(filePath);
  113.                         InputStream in = new BufferedInputStream(new FileInputStream(file));
  114.                         pstmt.setBinaryStream(12, in, (int) file.length());
  115.                 } catch (FileNotFoundException e) {
  116.                         System.out.println(e.getMessage());
  117.                         // 如果没有图片设置为 NULL
  118.                         pstmt.setNull(12, java.sql.Types.BINARY);
  119.                 } catch (IOException e) {
  120.                         System.out.println(e.getMessage());
  121.                 }
  122.                 pstmt.setString(13, "25");
  123.                 pstmt.setInt(14, 943);
  124.                 pstmt.setInt(15, 93000);
  125.                 pstmt.setDate(16, Date.valueOf("2006-03-20"));
  126.                 pstmt.setDate(17, Date.valueOf("1900-01-01"));
  127.                 // 执行语句
  128.                 pstmt.executeUpdate();
  129.                 // 关闭语句
  130.                 pstmt.close();
  131.         }

  132.         /*
  133.          * 查询产品信息表
  134.          *
  135.          * @throws SQLException 异常
  136.          */
  137.         public void queryProduct() throws SQLException {
  138.                 // 查询语句
  139.                 String sql = "SELECT   productid,name,author,description,photo FROM production.product WHERE productid=11";
  140.                 // 创建语句对象
  141.                 Statement stmt = conn.createStatement();
  142.                 // 执行查询
  143.                 ResultSet rs = stmt.executeQuery(sql);
  144.                 // 显示结果集
  145.                 displayResultSet(rs);
  146.                 // 关闭结果集
  147.                 rs.close();
  148.                 // 关闭语句
  149.                 stmt.close();
  150.         }

  151.         /*
  152.          * 修改产品信息表数据
  153.          *
  154.          * @throws SQLException 异常
  155.          */
  156.         public void updateTable() throws SQLException {
  157.                 // 更新数据语句
  158.                 String sql = "UPDATE production.product SET name = ?"
  159.                                 + "WHERE productid = 11;";
  160.                 // 创建语句对象
  161.                 PreparedStatement pstmt = conn.prepareStatement(sql);
  162.                 // 为参数赋值
  163.                 pstmt.setString(1, "三国演义(上)");
  164.                 // 执行语句
  165.                 pstmt.executeUpdate();
  166.                 // 关闭语句
  167.                 pstmt.close();
  168.         }

  169.         /*
  170.          * 删除产品信息表数据
  171.          *
  172.          * @throws SQLException 异常
  173.          */
  174.         public void deleteTable() throws SQLException {
  175.                 // 删除数据语句
  176.                 String sql = "DELETE FROM production.product WHERE productid = 11;";
  177.                 // 创建语句对象
  178.                 Statement stmt = conn.createStatement();
  179.                 // 执行语句
  180.                 stmt.executeUpdate(sql);
  181.                 // 关闭语句
  182.                 stmt.close();
  183.         }

  184.         /*
  185.          * 查询产品信息表
  186.          *
  187.          * @throws SQLException 异常
  188.          */
  189.         public void queryTable() throws SQLException {
  190.                 // 查询语句
  191.                 String sql = "SELECT productid,name,author,publisher FROM production.product";
  192.                 // 创建语句对象
  193.                 Statement stmt = conn.createStatement();
  194.                 // 执行查询
  195.                 ResultSet rs = stmt.executeQuery(sql);
  196.                 // 显示结果集
  197.                 displayResultSet(rs);
  198.                 // 关闭结果集
  199.                 rs.close();
  200.                 // 关闭语句
  201.                 stmt.close();
  202.         }

  203.         /*
  204.          * 调用存储过程修改产品信息表数据
  205.          *
  206.          * @throws SQLException 异常
  207.          */
  208.         public void updateProduct() throws SQLException {
  209.                 // 更新数据语句
  210.                 String sql = "{ CALL production.updateProduct(?,?) }";
  211.                 // 创建语句对象
  212.                 CallableStatement cstmt = conn.prepareCall(sql);
  213.                 // 为参数赋值
  214.                 cstmt.setInt(1, 1);
  215.                 cstmt.setString(2, "红楼梦(上)");
  216.                 // 执行语句
  217.                 cstmt.execute();
  218.                 // 关闭语句
  219.                 cstmt.close();
  220.         }

  221.         /*
  222.          * 显示结果集
  223.          *
  224.          * @param rs 结果集对象
  225.          *
  226.          * @throws SQLException 异常
  227.          */
  228.         private void displayResultSet(ResultSet rs) throws SQLException {
  229.                 // 取得结果集元数据
  230.                 ResultSetMetaData rsmd = rs.getMetaData();
  231.                 // 取得结果集所包含的列数
  232.                 int numCols = rsmd.getColumnCount();
  233.                 // 显示列标头
  234.                 for (int i = 1; i <= numCols; i++) {
  235.                         if (i > 1) {
  236.                                 System.out.print(",");
  237.                         }
  238.                         System.out.print(rsmd.getColumnLabel(i));
  239.                 }
  240.                 System.out.println("");
  241.                 // 显示结果集中所有数据
  242.                 while (rs.next()) {
  243.                         for (int i = 1; i <= numCols; i++) {
  244.                                 if (i > 1) {
  245.                                         System.out.print(",");
  246.                                 }
  247.                                 // 处理大字段
  248.                                 if ("IMAGE".equals(rsmd.getColumnTypeName(i))) {
  249.                                         byte[] data = rs.getBytes(i);
  250.                                         if (data != null && data.length > 0) {
  251.                                                 FileOutputStream fos;
  252.                                                 try {
  253.                                                         fos = new FileOutputStream("c:\\三国演义 1.jpg");
  254.                                                         fos.write(data);
  255.                                                         fos.close();
  256.                                                 } catch (FileNotFoundException e) {
  257.                                                         System.out.println(e.getMessage());
  258.                                                 } catch (IOException e) {
  259.                                                         System.out.println(e.getMessage());
  260.                                                 }
  261.                                         }
  262.                                         System.out.print("字段内容已写入文件 c:\\三国演义 1.jpg,长度"
  263.                                                         + data.length);
  264.                                 } else {
  265.                                         // 普通字段
  266.                                         System.out.print(rs.getString(i));
  267.                                 }
  268.                         }
  269.                         System.out.println("");
  270.                 }
  271.         }

  272.         /*
  273.          * 创建一个图片用于插入大字段
  274.          *
  275.          * @throws IOException 异常
  276.          */
  277.         private void CreateImage(String path) throws IOException {
  278.                 int width = 100;
  279.                 int height = 100;
  280.                 String s = "三国演义";
  281.                 File file = new File(path);
  282.                 Font font = new Font("Serif", Font.BOLD, 10);
  283.                 BufferedImage bi = new BufferedImage(width, height,
  284.                                 BufferedImage.TYPE_INT_RGB);
  285.                 Graphics2D g2 = (Graphics2D) bi.getGraphics();
  286.                 g2.setBackground(Color.WHITE);
  287.                 g2.clearRect(0, 0, width, height);
  288.                 g2.setPaint(Color.RED);
  289.                 FontRenderContext context = g2.getFontRenderContext();
  290.                 Rectangle2D bounds = font.getStringBounds(s, context);
  291.                 double x = (width - bounds.getWidth()) / 2;
  292.                 double y = (height - bounds.getHeight()) / 2;
  293.                 double ascent = -bounds.getY();
  294.                 double baseY = y + ascent;
  295.                 g2.drawString(s, (int) x, (int) baseY);
  296.                 ImageIO.write(bi, "jpg", file);
  297.         }

  298.         /*
  299.          * 类主方法 @param args 参数
  300.          */
  301.         public static void main(String args[]) {
  302.                 try {
  303.                         // 定义类对象
  304.                         BasicApp basicApp = new BasicApp();
  305.                         // 加载驱动程序
  306.                         basicApp.loadJdbcDriver();
  307.                         // 连接 DM 数据库
  308.                         basicApp.connect();
  309.                         // 插入数据
  310.                         System.out.println("---  插入产品信息  ---");
  311.                         basicApp.insertTable();
  312.                         // 查询含有大字段的产品信息
  313.                         System.out.println("---  显示插入结果  ---");
  314.                         basicApp.queryProduct();
  315.                         // 在修改前查询产品信息表
  316.                         System.out.println("---  在修改前查询产品信息  ---");
  317.                         basicApp.queryTable();
  318.                         // 修改产品信息表
  319.                         System.out.println("---  修改产品信息  ---");
  320.                         basicApp.updateTable();
  321.                         // 在修改后查询产品信息表
  322.                         System.out.println("---  在修改后查询产品信息  ---");
  323.                         basicApp.queryTable();
  324.                         // 删除产品信息表
  325.                         System.out.println("---  删除产品信息  ---");
  326.                         basicApp.deleteTable();
  327.                         // 在删除后查询产品信息表
  328.                         System.out.println("---  在删除后查询产品信息  ---");
  329.                         basicApp.queryTable();
  330.                         // 调用存储过程修改产品信息表
  331.                         System.out.println("---  调用存储过程修改产品信息  ---");
  332.                         basicApp.updateProduct();
  333.                         // 在存储过程更新后查询产品信息表
  334.                         System.out.println("---  调用存储过程后查询产品信息  ---");
  335.                         basicApp.queryTable();
  336.                         // 关闭连接
  337.                         basicApp.disConnect();
  338.                 } catch (SQLException e) {
  339.                         System.out.println(e.getMessage());
  340.                 }
  341.         }
  342. }
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
200#
发表于 2011-12-13 17:42 | 只看该作者
我跟踪代码的运行,发现在
conn = DriverManager.getConnection(urlString, userName, password);
就没能取到连接。

而设置都是正确的,因为我用disql以命令行方式连接正确。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表