C、C++、python、Java、php、C#六种流行语言大PK

本文是C、C++、python、Java、php、C#六种语言连接mysql数据库的代码展示,在LZ尝试的过程中,无论是语言环境搭建、mysql依赖库的导入还是代码的风格,各种语言都各有千秋。接下来,我们就让这些语言一一登场吧。

Java(最具噱头的语言)

Java给新人的印象应该是入门简单、代码优雅、活跃度高、跨平台、开源大家庭等等,实在是当之无愧的明星语言,而且是偶像派的。不过可惜的是, 偶像派明星很容易被干掉。Java语言是LZ赖以生存的语言,因此LZ不希望做个偶像派,只能奋起直追,争取做实力派的Javaer。

说起这次Java连接mysql的编写,实在没什么好说的,毕竟本身就是做这个的,所以这一路非常顺利,算是最无感的一个。下面是LZ写的代码。

Java代码

  1. package  cn.zxl.jmysql;
  2. import  java.sql.Connection;
  3. import  java.sql.DriverManager;
  4. import  java.sql.ResultSet;
  5. import  java.sql.Statement;
  6. public   class  JMysql {
  7. private   static   final  String DRIVER =  "com.mysql.jdbc.Driver" ;
  8. private   static   final  String URL =  "jdbc:mysql://localhost/test" ;
  9. private   static   final  String USERNAME =  "root" ;
  10. private   static   final  String PASSWORD =  "123456" ;
  11. private   static   final  String SQL =  "select * from test" ;
  12. public   static   void  main( String[] args ) {
  13. Connection connection =  null ;
  14. Statement statement =  null ;
  15. ResultSet resultSet =  null ;
  16. try  {
  17. Class.forName(DRIVER);
  18. connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
  19. statement = connection.createStatement();
  20. resultSet = statement.executeQuery(SQL);
  21. while  (resultSet.next()) {
  22. System.out.println( "|"  + resultSet.getString( "id" ) +  "|"  + resultSet.getString( "name" ) +  "|" );
  23. }
  24. }  catch  (Exception e) {
  25. System.out.println( "query failed!" );
  26. }  finally  {
  27. try  {
  28. resultSet.close();
  29. statement.close();
  30. connection.close();
  31. }  catch  (Exception e) {
  32. throw   new  RuntimeException(e);
  33. }
  34. }
  35. }
  36. }

以下是输出结果,表示程序是正确的。

总的来说,Java的mysql连接编写是最无感的一个,因为这是LZ比较熟悉的。就Java本身而言,LZ对它的打分如下。这里要特别说明的是,由于其它几种语言LZ都只是略知皮毛,因此本次只从最直观的两个感受去评分。

入门难度:★★★

代码优雅度:★★★★

C(最令人崇拜的语言)

这个语言在大学里LZ就学过一点皮毛,不过当时很厌烦这个无用的家伙,LZ想要写的是大型网游,而不是输出一个矩阵,或者打印个“心形”去泡妞。 不过说来也怪,到得现在,LZ已经做了两年的程序猿,近半年的PM,却忽然之间对C这个老家伙情有独钟,敬意油然而生,实在是怪哉怪哉。

废话不多说,下面是LZ写的代码。

C++代码

  1. 《c_mysql.h》
  2. #ifndef C_MYSQL_H_
  3. #define C_MYSQL_H_
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <winsock2.h>
  7. #include <windows.h>
  8. #include <mysql.h>
  9. void  execute_sql( char * sql);
  10. #endif

C++代码

  1. 《c_mysql.c》
  2. #include "c_mysql.h"
  3. #define HOST "localhost"
  4. #define USERNAME "root"
  5. #define PASSWORD "123456"
  6. #define DATABASE "test"
  7. int  main()
  8. {
  9. char  *sql =  "select * from test" ;
  10. execute_sql(sql);
  11. return  0;
  12. }
  13. void  execute_sql( char * sql)
  14. {
  15. MYSQL connection;
  16. MYSQL_RES *result_pointer;
  17. MYSQL_ROW result_row;
  18. int  result, row, column, i, j;
  19. mysql_init(&connection);
  20. if  (NULL == mysql_real_connect(&connection, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS))
  21. {
  22. printf( "Error:connection failed!\n" );
  23. return ;
  24. }
  25. mysql_query(&connection,  "set names gbk" );
  26. result = mysql_query(&connection, sql);
  27. if  (result)
  28. {
  29. printf( "Error:query failed!\n" );
  30. mysql_close(&connection);
  31. return ;
  32. }
  33. result_pointer = mysql_store_result(&connection);
  34. if  (result_pointer)
  35. {
  36. row = mysql_num_rows(result_pointer);
  37. for  (i = 1; i < row + 1; i++)
  38. {
  39. result_row = mysql_fetch_row(result_pointer);
  40. printf( "|%s|%s|\n" , result_row[0] ,result_row[1]);
  41. }
  42. }
  43. mysql_close(&connection);
  44. system( "pause" );
  45. }

以下是程序的输出,代表代码是可正确运行的。

或许是因为Java无法操纵指针,所以在写C语言的时候,使用&、*、->这些符号感觉特别爽,不知道真正的Cer是否有这样的感觉呢。下面是LZ对C语言的打分。

入门难度:★★

代码优雅度:★★★

C++(最神秘莫测的语言)

C++作为难度最高的语言,称之为神秘莫测一点都不过分,能游刃有余使用C++的,实在是少之又少。对C++有此印象,主要是因为当时LZ看Java虚拟机源码的悲惨经历,那满屏幕的宏定义,实在令LZ为自己的智商捉急,同时也被编写Java虚拟机的大神们深深折服。

以下是最高深的语言连接mysql的代码,请过目。

C++代码

  1. 《c++_mysql.h》
  2. #ifndef C___MYSQL_H_
  3. #define C___MYSQL_H_
  4. #include <iostream>
  5. #include <mysql_connection.h>
  6. #include <mysql_driver.h>
  7. #include <statement.h>
  8. using   namespace  sql;
  9. using   namespace  std;
  10. void  execute_sql( const  SQLString sql);
  11. #endif

C++代码

  1. 《c++_mysql.cpp》
  2. #include "c++_mysql.h"
  3. #define HOST "localhost"
  4. #define USERNAME "root"
  5. #define PASSWORD "123456"
  6. #define DATABASE "test"
  7. int  main()
  8. {
  9. const  SQLString sql =  "select * from test" ;
  10. execute_sql(sql);
  11. return  0;
  12. }
  13. void  execute_sql( const  SQLString sql)
  14. {
  15. mysql::MySQL_Driver *driver;
  16. Connection *connection;
  17. Statement *statement;
  18. ResultSet *result_set;
  19. driver = mysql::get_mysql_driver_instance();
  20. connection = driver->connect( "tcp://localhost:3306" ,  "root" ,  "123456" );
  21. statement = connection->createStatement();
  22. statement->execute( "use test" );
  23. statement->execute( "set names gbk" );
  24. result_set = statement->executeQuery(sql);
  25. while (result_set->next())
  26. {
  27. cout <<  "|"  << result_set->getInt( "id" ) <<  "|"  << result_set->getString( "name" ) <<  "|"  << endl;
  28. }
  29. delete  statement;
  30. delete  connection;
  31. system( "pause" );
  32. }

以下是输出结果,代表程序可以正确运行。

C++这个mysql连接的方式,其API与Java的相似度极高,粗略估计大约有90%左右。因此C++的程序除了异常捕捉和内存清理与Java有些区别之外,其它的代码非常相似,但LZ始终觉得使用“.”没有使用“->”显得高端,0.0。以下是LZ的评分。

入门难度:★★★★

代码优雅度:★★★

php(最低调奢华的语言)

PHP虽然近期也很火,但是总觉得它有点低调,但又不失内涵。作为网站制作最适合的语言之一,它总是默默的在发挥自己的力量。

以下是PHP连接mysql低调的代码。

PHP代码

  1. <?php
  2. $mysql_server_name = "localhost" ;
  3. $mysql_username = "root" ;
  4. $mysql_password = "123456" ;
  5. $mysql_database = "test" ;
  6. $connection  = mysql_connect( $mysql_server_name ,  $mysql_username , $mysql_password );
  7. if (! $connection ) {
  8. echo   "connection failed!" ;
  9. return ;
  10. }
  11. mysql_set_charset( "gbk" , $connection );
  12. mysql_select_db( $mysql_database ,  $connection );
  13. $sql = "select * from test" ;
  14. $result =mysql_query( $sql ,  $connection );
  15. while ( $row  = mysql_fetch_array( $result )) {
  16. echo   "|" . $row [ "id" ]. "|" . $row [ "name" ]. "|\n" ;
  17. }
  18. mysql_close( $connection );
  19. ?>

以下是程序运行结果,代表程序是正确的。

如果仔细观察会发现,PHP的API与C语言非常相似,这是因为PHP是使用DLL来扩展的mysql操作导致的。此外,PHP与前面三个不同的是,它不是编译型语言,是一种服务端的脚本语言,因此LZ选择使用命令来执行它。以下是LZ对它的评分。

入门难度:★★★

代码优雅度:★★★★

C#(最具潜力的语言)

C#最近虽然也算火爆,但却似乎一直有些力不从心的感觉,尽管LZ非C#成员,但也认识不少C#程序猿。不过LZ个人觉得,高级形态是语言的趋 势,因此像C#、Java、Object-c这种被高度封装的语言总会发光发热,毕竟再退回几十年前去,使用汇编甚至二进制去写代码的日子肯定是不会再到 来了。

以下是C#连接mysql数据库的代码。

C#代码

  1. using  System;
  2. using  System.Collections.Generic;
  3. using  System.Linq;
  4. using  System.Text;
  5. using  MySql.Data.MySqlClient;
  6. namespace  CSMysql
  7. {
  8. class  Program
  9. {
  10. static   void  Main( string [] args)
  11. {
  12. MySqlConnection connection =  new  MySqlConnection("Database=‘test‘;Data Source=‘localhost‘;User Id=‘root‘;Password=‘123456‘;charset=‘utf8‘;pooling=true" );
  13. MySqlCommand command =  new  MySqlCommand();
  14. command.Connection = connection;
  15. command.CommandText =  "select * from test" ;
  16. try
  17. {
  18. command.Connection.Open();
  19. MySqlDataReader reader = command.ExecuteReader();
  20. while  (reader.Read())
  21. {
  22. Console.WriteLine( "|"  + reader.GetInt32( "id" ) +  "|"  + reader.GetString( "name" ) +  "|" );
  23. }
  24. Console.ReadLine();
  25. }
  26. catch  (Exception)
  27. {
  28. Console.WriteLine( "query failed!" );
  29. }
  30. finally
  31. {
  32. command.Connection.Close();
  33. }
  34. }
  35. }
  36. }

以下是程序运行结果,代表着程序是可以正确运行的。

C#的API有些特别,而且看到有command就难免让人联想到command模式,不知这API里面的实现是否是command设计模式。总的来说,C#和Java的mysql操作API还是差别比较大的,这让LZ有点出乎意料。以下是LZ对它的评分。

入门难度:★★★

代码优雅度:★★★★

python(最高端大气上档次的语言)

对于python来说,LZ之前就已经写过一篇小博文,无论从哪个角度来讲,这个语言都给LZ一种高大上的感觉。无论是它霸气的脚本语言特有的语法,还是特别的编码格式要求,都让LZ心生向往。

以下是python高端大气上档次的代码。

Python代码

  1. # coding=utf-8
  2. import  MySQLdb
  3. import  sys
  4. host =  ‘localhost‘
  5. user =  ‘root‘
  6. password  =  ‘123456‘
  7. db   =  ‘test‘
  8. if  __name__ ==  ‘__main__‘ :
  9. connection = MySQLdb.connect(host,user,password,db);
  10. try :
  11. connection.ping()
  12. except :
  13. print  ( ‘failed to connect MySQL.‘ )
  14. sql =  ‘select * from test‘
  15. cursor = connection.cursor()
  16. cursor.execute(sql)
  17. for  row  in  cursor:
  18. print  ( "|"  + str(row[ 0 ]) +  "|"  + row[ 1 ] +  "|" )
  19. cursor.close()
  20. connection.close()
  21. sys.exit()

以下是程序输出结果,代表程序的正确性。

尽管python在安装mysql库的时候曾一度让LZ一筹莫展,但这依然无法阻止LZ对python的追逐之心。见到python的API可以说让LZ惊了个呆,实在是简洁至极,别具匠心。好了,多的就不说了,分数代表LZ的心。

入门难度:★★★

代码优雅度:★★★★★

时间: 2024-08-05 09:24:47

C、C++、python、Java、php、C#六种流行语言大PK的相关文章

开发语言大PK:php和Java哪个更好?

Java通过jdbc来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库.访问数据库的接口比较统一. PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强.例如:用java开发的web应用从MySQL数据库转到Oracle数据库只需要做很少的修改.而php则需要做大量的修改工作. 2语言比较 php是解释执行的服务器脚本语言,首先php有简单容易上手的特点.语法和C语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发.而java需要先学好java的

六种流行的语言---C、C++、python、Java、php、C#比较[转]

语言大餐 回归正题,本文是六种语言连接mysql数据库的代码展示,在LZ尝试的过程中,无论是语言环境搭建.mysql依赖库的导入还是代码的风格,各种语言都各有千秋.接下来,我们就让这些语言一一登场吧. Java(最具噱头的语言) Java给新人的印象应该是入门简单.代码优雅.活跃度高.跨平台.开源大家庭等等,实在是当之无愧的明星语言,而且是偶像派的.不过可惜的是,偶像派明星很容易被干掉.Java语言是LZ赖以生存的语言,因此LZ不希望做个偶像派,只能奋起直追,争取做实力派的Javaer. 说起这

Python 查找Twitter中最流行(转载最多)的10个Tweet

CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-4 @author: guaguastd @name: find_popular_retweets.py ''' # Finding the most popular retweets def popular_retweets(statuses): retweets = [ # Store out a tuple of these three values.

Java 理论与实践: 流行的原子

Java 理论与实践: 流行的原子 新原子类是 java.util.concurrent 的隐藏精华 在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待.无锁定的算法.在 java.util.concurrent 中添加原子变量类之后,这种情况发生了变化.请跟随并行专家 Brian Goetz 一起,了解这些新类如何使用 Java 语言开发高度可伸缩的无阻塞算法.您可以在本文的 论坛中与作者或其他读者共享您对本文的看法.(也可以通过单击文章顶部或者底部的 讨论链接来

十大经典排序算法(Python,Java实现)

参照:https://www.cnblogs.com/wuxinyan/p/8615127.html https://www.cnblogs.com/onepixel/articles/7674659.html 一.排序算法分类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序. 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排 二.算法复杂度 注(

如何在Java平台上使用脚本语言做Java开发

如何在Java平台上使用脚本语言做Java开发     最近开始流行区分Java平台和Java语言,但很多Java开发者还是不能确定如何在 Java应用程序开发中结合脚本.本篇文章,Gregor Roth给出了在Java平台上使用脚本的方法.通过这篇文章,你可以了解怎样在你的Java应用程序中使用脚本,是否你要通过使用Groovy和 Jython把不同的Java应用程序模块粘合在一起,或者写一个你自己的基于JRuby的应用程序,适用于Java平台. 作为一个Java开发者,你可能已经注意到了,J

Java EE 程序员必读图书大推荐

第一部分: Java语言篇 1 <Java编程规范> 星级: 适合对象:初级,中级 介绍:作者James Gosling(Java之父),所以这本书我觉得你怎么也得读一下.对基础讲解的很不错. 2 <Java核心技术:卷Ⅰ基础知识> 星级: 适合对象:初级,中级 介绍:官方机构图书,你怎么也得有一本,这本书比较全面而且易懂.放在案旁用到的时候查一查,看一看.是学习入门必备书. 注:新手必备 3 <Java编程思想>星级: 适合对象:初级,中级 介绍:这本书的作者就是著名

atitit. java跟php的比较..为什么大企业喜欢java 而不是php

atitit. java跟php的比较..为什么大企业喜欢java 而不是php 1. 主要原因::php是"低技术.低价格.低素质人员使用"的三低武器 1 2. 三低武器的特点(所谓优点) 2 2.1. 操作简单 2 2.2. 结构简单可靠 2 2.3. 价格低廉 2 2.4. 低后勤保障要求 2 3. 正规军使用的编程语言特点 2 3.1. 高性能 2 3.2. 功能强大 2 3.3. 可以面对大规模项目(敌人) 2 3.4. 需要一定的后勤保障 3 3.5. 代码编译加密,适合商

Java JUC之Atomic系列12大类实例讲解和原理分解

Java JUC之Atomic系列12大类实例讲解和原理分解 2013-02-21      0个评论       作者:xieyuooo 收藏    我要投稿 在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的ABA问题,本文讲述Atomic系列的类的实现以及使用方法,其中包含: 基本类:AtomicInteger.AtomicLong.Atomic