mysql c++

来源:互联网 发布:深入浅出带你学python 编辑:程序博客网 时间:2024/06/05 18:56

LOAD_FILE(file_name)读取文件并返回该文件的内容作为一个字符串。要使用这个函数,该文件必须位于服务器上的主机,你必须指定该文件的完整路径名,你必须具有FILE权限。该文件必须是可读的,其大小小于max_allowed_packet个字节。如果该文件不存在或无法读取,因为不符合上述条件之一的,该函数返回NULL。截至SQL5.0.19,character_set_filesystem系统变量控制文字字符串文件名的解释。//mysql数据库查询void mysql_select(){const char user[] = "root";         //usernameconst char pswd[] = "123";         //passwordconst char host[] = "localhost";    //or"127.0.0.1"const char table[] = "faces";        //databaseunsigned int port = 3306;           //server port        MYSQL myCont;MYSQL_RES *result=NULL;MYSQL_ROW sql_row;MYSQL_FIELD *fd;char column[32][32];int res;// BLOB blob[100] ;     mysql_init(&myCont); if(mysql_real_connect(&myCont,host,user,pswd,table,port,NULL,0))    {        cout<<"sql connect succeed!"<<endl;        mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文        res=mysql_query(&myCont,"select * from face_table");//查询        if(!res)        {            result=mysql_store_result(&myCont);//保存查询到的数据到result            if(result){int i,j;               // cout<<"number of result: "<<(unsigned long)mysql_num_rows(result)<<endl;                for(i=0;fd=mysql_fetch_field(result);i++)//获取列名                {                    strcpy(column[i],fd->name);                }                j=mysql_num_fields(result);//face_num=j/2;               /* for(i=0;i<j;i++)                {                    printf("%s\t",column[i]);                }*/                printf("\n");i=0;                while(sql_row=mysql_fetch_row(result))//获取具体的数据                {                                         // printf("%s\n",sql_row[i]);my_mat.push_back(imread(sql_row[1], CV_LOAD_IMAGE_GRAYSCALE));//my_mat.push_back(imread(sql_row[i+1], CV_LOAD_IMAGE_GRAYSCALE));//my_lable.push_back(i/2);//imshow("原图",my_mat());my_lable.push_back(fromString<int>(sql_row[3]));name_people[fromString<int>(sql_row[3])]=sql_row[4];                }face_num=name_people.size();cout<<"number of people in the sql: "<<face_num<<endl;}}else        {            cout<<"query sql failed!"<<endl;        }   }}//mysql数据库插入void mysql_connect(string s1){const char user[] = "root";         //username    const char pswd[] = "123";         //password    const char host[] = "localhost";    //or"127.0.0.1"    const char table[] = "faces";        //database    unsigned int port = 3306;           //server port            MYSQL myCont;MYSQL_RES *result=NULL;    MYSQL_ROW sql_row;    MYSQL_FIELD *fd;    char column[32][32];    int res;    mysql_init(&myCont);    if(mysql_real_connect(&myCont,host,user,pswd,table,port,NULL,0))    {        cout<<"connect succeed!"<<endl;mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文// 插入操作        string strsql;mysql_query(&myCont,"START TRANSACTION"); // 开启事务, 如果没有开启事务,那么效率会变得非常低下!//double current_time = (double)getTickCount();strsql="insert into face_table(path,image) values('"+s1+"',load_file('C:/Users/admin/Documents/Visual Studio 2012/Projects/Facedetect/face/"+s1+"'))";mysql_query(&myCont,strsql.c_str());mysql_query(&myCont,"COMMIT");   // 提交事务cout<<"insert end"<<endl;}   else{string strError= mysql_error(&myCont);         cout <<"Error info: "<<strError<<endl;}//释放结果集 关闭数据库if(result!=NULL) mysql_free_result(result);//释放结果资源mysql_close(&myCont);mysql_library_end();}连接MYSQL数据库的方法及示例方法一:使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL该组件为MYSQL为ADO.NET访问MYSQL数据库设计的.NET访问组件。安装完成该组件后,引用命名空间MySql.Data.MySqlClient;使用命令行编译时:csc /r:MySql.Data.dll test.cs方法二:通过ODBC访问MYSQL数据库访问前要先下载两个组件:odbc.net和MYSQL的ODBC驱动(MySQL Connector/ODBC (MyODBC) driver)目前为3.51版安装完成后,即可通过ODBC访问MYSQL数据库方法三:使用CoreLab推出的MYSQL访问组件,面向.NET安装完成后,引用命名空间:CoreLab.MySql;使用命令编译时:csc /r:CoreLab.MySql.dll test.cs以下为访问MYSQL数据库实例编译指令:csc /r:CoreLab.MySql.dll /r:MySql.Data.dll test.csusing System;using System.Net;using System.Text;using CoreLab.MySql;using System.Data.Odbc;using MySql.Data.MySqlClient;class ConnectMySql{public void Connect_CoreLab(){  string c;  MySqlConnection mycn = new MySqlConnection("Database=test;Data Source=localhost;User Id=root;Password=qing");  mycn.Open();  MySqlCommand mycm = new MySqlCommand("select * from shop",mycn);  MySqlDataReader msdr = mycm.ExecuteReader();  while(msdr.Read())  {   if (msdr.HasRows)   {    Console.WriteLine(msdr.GetString(0));   }  }  msdr.Close();  mycn.Close();}public void Connect_Odbc(){  //string MyC;   string MyC +     "SERVER=localhost;" +    "DATABASE=test;" +    "UID=root;" +    "PASSWORD=qing;" +    "OPTION=3";  OdbcConnection MyConn = new OdbcConnection(MyConString);  MyConn.Open();  OdbcCommand mycm = new OdbcCommand("select * from hello",MyConn);  OdbcDataReader msdr = mycm.ExecuteReader();  while(msdr.Read())  {   if (msdr.HasRows)   {    Console.WriteLine(msdr.GetString(0));   }  }  msdr.Close();  MyConn.Close();}public void Connect_Net(){  string myC;  MySqlConnection mycn = new MySqlConnection(myConnectionString);  mycn.Open();  MySqlCommand mycm = new MySqlCommand("select * from hello",mycn);  MySqlDataReader msdr = mycm.ExecuteReader();  while(msdr.Read())  {   if (msdr.HasRows)   {    Console.WriteLine(msdr.GetString(0));   }  }  msdr.Close();  mycn.Close();}public static void Main(){  ConnectMySql ms = new ConnectMySql();  ms.Connect_CoreLab();  ms.Connect_Odbc();  Connect_Net();}}
</pre><pre name="code" class="cpp"><span style="color: rgb(51, 51, 51); font-family: 'times new roman', times; font-size: 14px; line-height: 25px;">编写.java文件来演示一下如何访问MySQL数据库。</span>import java.sql.*;public class JDBCTest {public static void main(String[] args){           // 驱动程序名           String driver = "com.mysql.jdbc.Driver";           // URL指向要访问的数据库名scutcs           String url = "jdbc:mysql://127.0.0.1:3306/scutcs";           // MySQL配置时的用户名           String user = "root";            // MySQL配置时的密码           String password = "root";           try {             // 加载驱动程序            Class.forName(driver);            // 连续数据库            Connection conn = DriverManager.getConnection(url, user, password);            if(!conn.isClosed())              System.out.println("Succeeded connecting to the Database!");            // statement用来执行SQL语句            Statement statement = conn.createStatement();            // 要执行的SQL语句            String sql = "select * from student";            // 结果集            ResultSet rs = statement.executeQuery(sql);            System.out.println("-----------------");            System.out.println("执行结果如下所示:");            System.out.println("-----------------");            System.out.println(" 学号" + "\t" + " 姓名");            System.out.println("-----------------");            String name = null;            while(rs.next()) {                 // 选择sname这列数据             name = rs.getString("sname");                 // 首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。             // 然后使用GB2312字符集解码指定的字节数组             name = new String(name.getBytes("ISO-8859-1"),"GB2312");             // 输出结果             System.out.println(rs.getString("sno") + "\t" + name);            }            rs.close();            conn.close();           } catch(ClassNotFoundException e) {            System.out.println("Sorry,can`t find the Driver!");             e.printStackTrace();           } catch(SQLException e) {            e.printStackTrace();           } catch(Exception e) {            e.printStackTrace();           } } }


0 0
原创粉丝点击