dbutils安装笔记;
tar -zxvf DBUtils-1.0.tar.gz
然后python setup.py install
这样dbutils就安装到了python下libs下的site-package下
查询的时候,数据类型必须对应正确
例如:
sql = 'select * from User_Info where UserID=' + user + ' or Mobile=\'' + user + '\'';
查询的时候,对应的数据类型必须正确:
比如UserID是int类型的,那么条件表达式就直接写:UserID=' + user + ' 对应到sql语句即为UserID=10013001
而如果为字符串类型,那么条件表达式就得写成: Mobile=\'' + user + '\'' 对应到sql语句即为Mobile='15810687707'
所以在python中组织查询语句的时候,得注意字段类型,整体原则是,如果为int类型的,那么就如:UserID=' + user + '
如果为字符串类型的,那么就如: Mobile=\'' + user + '\''
其次,查询出来的结果也都是带数据类型的,比如查询UserID字段出来,那么数据库类型UserID为int,查询出来的字段数据在python当中
也是带类型的,如果你需要的是str类型的,那么就需要str(UserID)
class DBConfig(object):
"""数据库配置"""
#使用的连接接口
dbapi=MySQLdb
#主机ip
host='192.168.1.1'
#端口
port=3306
#数据库名
database_name='db_name'
#用户名
username='db_user'
#密码
password='db_password'
#最小连接数
mincached=5
#最大连接数
maxcached=25
#使用unicode
use_unicode=True
#字符编码为utf8
charset="utf8"
class ConnFactorty(object):
"""
数据库连接工厂,负责产生数据库连接 , 此类是不可以被实例化的
获取连接对象:conn = ConnFactorty.getConn()
"""
#连接池对象
__pool = None
def __init__(self):
#如果实例化对象是本身,那么抛出异常
if self.__class__ == ConnFactorty:
raise NotImplementedError("abstract")
@staticmethod
def getConn():
if ConnFactorty.__pool is None :
__pool = PooledDB(creator=DBConfig.dbapi, mincached=DBConfig.mincached , maxcached=DBConfig.maxcached ,
host=DBConfig.host , port=DBConfig.port , user=DBConfig.username , passwd=DBConfig.password ,
db=DBConfig.database_name,use_unicode=DBConfig.use_unicode,charset=DBConfig.charset )
return __pool.connection()
pooldb用法:
DBPARAMS ={
'creator': psycopg2, #MySQLdb
'host': 'localhost',
'user': 'postgres',
'password': 'postgres',
'database': 'bob',
}
pool = PooledDB(maxusage=1000, **DBPARAMS)