aaahd 发表于 2016-10-20 10:38:38

dbutils安装笔记以及mysql数据库操作问题

  
  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)
页: [1]
查看完整版本: dbutils安装笔记以及mysql数据库操作问题