9.3. 用户变量
可以先在用户变量中保存值然后在以后引用它;这样可以将值从一个语句传递到另一个语句。用户变量与连接有关
。也就是说,一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。
用户变量的形式为@var_name
,其中变量名var_name
可以由当前字符集的文字数字字符、‘.
’、‘_
’和‘$
’组成。
默认字符集是cp1252
(Latin1)
。可以用mysqld
的--default-character-set
选项更改字符集。参见5.10.1节,“数据和排序用字符集”
。用户变量名对大小写不敏感。
设置用户变量的一个途径是执行SET
语句:
SET @
var_name
=
expr
[, @
var_name
=
expr
] ...
对于SET
,可以使用=
或:=
作为分配符。分配给每个变量的expr
可以为整数、实数、字符串或者NULL
值。
也可以用语句代替SET
来为用户变量分配一个值。在这种情况下,分配符必须为:=
而不能用=
,因为在非SET
语句中=
被视为一个比较
操作符:
mysql>
SET @t1=0, @t2=0, @t3=0;
mysql>
SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
+----- ......
一个简单示例--
1,准备:MySQL数据库驱动包【mysql-connector-java-5.1.10-bin.jar】导入
2,创建测试连接主程序
package mysqlConnection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JdbcDemo {
public static void main(String[] args) {
try {
//数据库连接MySQL
Connection conn=null;
Statement stmt=null;
//MySQL驱动名
String className="com.mysql.jdbc.Driver";
//要连接的URL,localhost是连接本地,如果连接其他机器改为IP地址3306是Mysql默认端口,test是你要操作的数据库的名称,数据库要有才行
String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";
//mySql的用户名密码要改为你自己的mysql数据库的用户名、密码
String user="root";
String password="1314520";
//下面三行是固定写法
Class.forName(className);
......
一个简单示例--
1,准备:MySQL数据库驱动包【mysql-connector-java-5.1.10-bin.jar】导入
2,创建测试连接主程序
package mysqlConnection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JdbcDemo {
public static void main(String[] args) {
try {
//数据库连接MySQL
Connection conn=null;
Statement stmt=null;
//MySQL驱动名
String className="com.mysql.jdbc.Driver";
//要连接的URL,localhost是连接本地,如果连接其他机器改为IP地址3306是Mysql默认端口,test是你要操作的数据库的名称,数据库要有才行
String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";
//mySql的用户名密码要改为你自己的mysql数据库的用户名、密码
String user="root";
String password="1314520";
//下面三行是固定写法
Class.forName(className);
......
编译和连接程序
MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项.
1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项.
$ mysql_config --libs
2. --cflags 选项 - 使用必要的include文件的选项等等.
$ mysql_config --cflags
你需要将上面两个选项加入到对源文件的编译命令中. 所以,要编译上面的程序,要使用下面的命令:
$ g++ -o output-file $(mysql_config --cflags) test.c $(mysql_config --libs)
执行编译后的程序:
$ ./output.file
#include <mysql.h>
#include <stdlib.h>
#include <stdio.h>
static char *server_args[] =
{
"this_program", /* this string is not used */
"--datadir=.",
"--key_buffer_size=32M"
};
static char *server_groups[] =
{
"embedded",
"server",
"this_program_SERVER",
(char *)NULL
};
int main(void)
{
if (mysql_server_init(sizeof(se ......
编译和连接程序
MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项.
1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项.
$ mysql_config --libs
2. --cflags 选项 - 使用必要的include文件的选项等等.
$ mysql_config --cflags
你需要将上面两个选项加入到对源文件的编译命令中. 所以,要编译上面的程序,要使用下面的命令:
$ g++ -o output-file $(mysql_config --cflags) test.c $(mysql_config --libs)
执行编译后的程序:
$ ./output.file
#include <mysql.h>
#include <stdlib.h>
#include <stdio.h>
static char *server_args[] =
{
"this_program", /* this string is not used */
"--datadir=.",
"--key_buffer_size=32M"
};
static char *server_groups[] =
{
"embedded",
"server",
"this_program_SERVER",
(char *)NULL
};
int main(void)
{
if (mysql_server_init(sizeof(se ......
编译和连接程序
MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项.
1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项.
$ mysql_config --libs
2. --cflags 选项 - 使用必要的include文件的选项等等.
$ mysql_config --cflags
你需要将上面两个选项加入到对源文件的编译命令中. 所以,要编译上面的程序,要使用下面的命令:
$ g++ -o output-file $(mysql_config --cflags) test.c $(mysql_config --libs)
执行编译后的程序:
$ ./output.file
#include <mysql.h>
#include <stdlib.h>
#include <stdio.h>
static char *server_args[] =
{
"this_program", /* this string is not used */
"--datadir=.",
"--key_buffer_size=32M"
};
static char *server_groups[] =
{
"embedded",
"server",
"this_program_SERVER",
(char *)NULL
};
int main(void)
{
if (mysql_server_init(sizeof(se ......
这里介绍一个集成环境 XAMPP。
XAMPP 是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版。XAMPP 的确非常容易安装和使用:只需下载,解压缩,启动即可。
下载地址:
http://www.apachefriends.org/zh_cn/xampp.html
到目前为止,XAMPP 共有以下四种版本:
(1)适用于 Linux 的 XAMPP
(2)适用于 Windows 的 XAMPP
(3)适用于 Mac OS X 的 XAMPP
(4)适用于 Solaris 的 XAMPP
您只需下载并解压 XAMPP 就能完成安装,且对 Windows 的注册表不做任何改动(但使用 XAMPP 的 Windows 安装包时除外). 您也无需编辑任何配置文件。没有更简单的方法了吧!
软件包中包含了一些范例程序可供检测 XAMPP 是否正在运行:一个小型 CD 收集程序(基于 PHP 和 MySQL)、一个小型留言本程序(用 Perl 写成)和另外几个示例工具。
如果您觉得不再需要 XAMPP 了,只需直接将其目录删除,就完成卸载了。
如果您使用 XAMPP 的 Windows 安装包, 建议您调用系统的“添加或删除程序”功能执行卸载。 这是因为每种安装文件在执行安装过程时都会在注册表中留下痕迹,XAMPP 的安装包也不例外。
......
这里介绍一个集成环境 XAMPP。
XAMPP 是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版。XAMPP 的确非常容易安装和使用:只需下载,解压缩,启动即可。
下载地址:
http://www.apachefriends.org/zh_cn/xampp.html
到目前为止,XAMPP 共有以下四种版本:
(1)适用于 Linux 的 XAMPP
(2)适用于 Windows 的 XAMPP
(3)适用于 Mac OS X 的 XAMPP
(4)适用于 Solaris 的 XAMPP
您只需下载并解压 XAMPP 就能完成安装,且对 Windows 的注册表不做任何改动(但使用 XAMPP 的 Windows 安装包时除外). 您也无需编辑任何配置文件。没有更简单的方法了吧!
软件包中包含了一些范例程序可供检测 XAMPP 是否正在运行:一个小型 CD 收集程序(基于 PHP 和 MySQL)、一个小型留言本程序(用 Perl 写成)和另外几个示例工具。
如果您觉得不再需要 XAMPP 了,只需直接将其目录删除,就完成卸载了。
如果您使用 XAMPP 的 Windows 安装包, 建议您调用系统的“添加或删除程序”功能执行卸载。 这是因为每种安装文件在执行安装过程时都会在注册表中留下痕迹,XAMPP 的安装包也不例外。
......
java(jsp)使用MySql数据库,中文乱码的完整解决方案
mysql是一个小型的开源的数据库,用来自学一些技术是十分方便的。但使用mysql存储数据,也会遇到一些非常恶心的问题,如:中文乱码问题、java驱动程序无法使用的问题(已经解决,详见:http://hi.baidu.com/lauo1988/blog/item/ff0da655bd3e2eceb745ae0b.html)。
对于中文乱码问题。网上搜索得到的解决方案比较多,主要还是设置mySql的配置文件。这些都比较麻烦,但是设置成功的话,的确能够一劳永逸。但我尝试了很多次网上的方法,都不能很好的解决这个问题。乱码依然存在。想想,要做网站的话,用mySql数据库存放数据,中文都不能很好支持的话,做这东西是没有用的!
最终,我按照:将中文字字符串,按照无损编码的方式,对其进行编码,然后直接存于数据库中。当要取出数据时,再将中文字符串解码。这样可以达到存储中文字符串,又不会产生乱码的目标。
我在网上找到了一些无损编码的方式,详见:http://www.cnblogs.com/qiren5761/articles/523790.html
我采用了里面的:“String-GBK〉ByteArray-ISO-8859-1〉String-ISO-8859-1〉ByteArray-GBK〉String
”的编码/解码方式。
主要的java处理 ......
java(jsp)使用MySql数据库,中文乱码的完整解决方案
mysql是一个小型的开源的数据库,用来自学一些技术是十分方便的。但使用mysql存储数据,也会遇到一些非常恶心的问题,如:中文乱码问题、java驱动程序无法使用的问题(已经解决,详见:http://hi.baidu.com/lauo1988/blog/item/ff0da655bd3e2eceb745ae0b.html)。
对于中文乱码问题。网上搜索得到的解决方案比较多,主要还是设置mySql的配置文件。这些都比较麻烦,但是设置成功的话,的确能够一劳永逸。但我尝试了很多次网上的方法,都不能很好的解决这个问题。乱码依然存在。想想,要做网站的话,用mySql数据库存放数据,中文都不能很好支持的话,做这东西是没有用的!
最终,我按照:将中文字字符串,按照无损编码的方式,对其进行编码,然后直接存于数据库中。当要取出数据时,再将中文字符串解码。这样可以达到存储中文字符串,又不会产生乱码的目标。
我在网上找到了一些无损编码的方式,详见:http://www.cnblogs.com/qiren5761/articles/523790.html
我采用了里面的:“String-GBK〉ByteArray-ISO-8859-1〉String-ISO-8859-1〉ByteArray-GBK〉String
”的编码/解码方式。
主要的java处理 ......
java(jsp)使用MySql数据库,中文乱码的完整解决方案
mysql是一个小型的开源的数据库,用来自学一些技术是十分方便的。但使用mysql存储数据,也会遇到一些非常恶心的问题,如:中文乱码问题、java驱动程序无法使用的问题(已经解决,详见:http://hi.baidu.com/lauo1988/blog/item/ff0da655bd3e2eceb745ae0b.html)。
对于中文乱码问题。网上搜索得到的解决方案比较多,主要还是设置mySql的配置文件。这些都比较麻烦,但是设置成功的话,的确能够一劳永逸。但我尝试了很多次网上的方法,都不能很好的解决这个问题。乱码依然存在。想想,要做网站的话,用mySql数据库存放数据,中文都不能很好支持的话,做这东西是没有用的!
最终,我按照:将中文字字符串,按照无损编码的方式,对其进行编码,然后直接存于数据库中。当要取出数据时,再将中文字符串解码。这样可以达到存储中文字符串,又不会产生乱码的目标。
我在网上找到了一些无损编码的方式,详见:http://www.cnblogs.com/qiren5761/articles/523790.html
我采用了里面的:“String-GBK〉ByteArray-ISO-8859-1〉String-ISO-8859-1〉ByteArray-GBK〉String
”的编码/解码方式。
主要的java处理 ......
<?php
/**
* 操作mysql
的基础类,其它与mysql有关的类都继承于此基类
*
* 此class中的$table都是已经包含表前缀的完整表名
*
* ver 20090717
* 使用范例
* $db = new DB('localhost','root','password','database','utf8');
* $db->debug = true;
* $db->primaryKeys = array (
* 'table_1' => 'id',
* 'table_2' => 'id2'
* );
* $db->find('table_1', 1);
* $db->findAll('table_2', '*', 'catid=1', 'id desc');
* ……
*/
class DBBase extends Base {
public $debug; //调试
public $primaryKeys = array(); //设定各表的主键,在创建类实例后必须设定表主键 $db->primaryKeys(array('表1'=>'主键字段
1','表2'=>'主键字段2'))
public $queryCount = 0;
public $haltOnError = true;
public $displayError=true;
public $queryID;
public $connected = false;
public $tableFields = array();
public $dbhost;
public $dbuser;
public $dbpwd;
public $dbname;
public $dbcharset;
public $pconnect = false;
public function __construct($host, $user, $pwd, $database = n ......