zoukankan      html  css  js  c++  java
  • 10 class封装 ORM

    1.版本1:初始化

    # -*- coding:utf-8 -*-
    from MySQLdb import *
    
    class MysqlHelper:
        def __init__(self,host,port,user,passwd,db,charset='utf8'):
            self.host=host
            self.port=port
            self.user=user
            self.passwd=passwd
            self.db=db
            self.charset=charset
    
    mysql1 = MysqlHelper("localhost",3306,"root","mysql","py31""utf8")

    2.版本2:打开关闭方法

    # -*- coding:utf-8 -*-
    from MySQLdb import *
    
    class MysqlHelper:
        """封装"""
        def __init__(self,host,port,user,passwd,db,charset='utf8'):
            """初始化"""
            self.host=host
            self.port=port
            self.user=user
            self.passwd=passwd
            self.db=db
            self.charset=charset
            
        def open(self):
            """连接数据库"""
            self.conn = connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd, db=self.db, charset=self.charset)
            self.cursor1 = self.conn.cursor()
            
        def close(self):
            """关闭连接"""
            self.cursor1.close()
            self.conn.close()
    
    mysql1 = MysqlHelper("localhost",3306,"root","mysql","py31""utf8")

    3.版本3:增加修改删除

    # -*- coding:utf-8 -*-
    from MySQLdb import *
    
    
    class MysqlHelper:
        """封装"""
        def __init__(self,host,port,user,passwd,db,charset='utf8'):
            """初始化"""
            self.host=host
            self.port=port
            self.user=user
            self.passwd=passwd
            self.db=db
            self.charset=charset
    
        def open(self):
            """连接数据库"""
            self.conn = connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd, db=self.db, charset=self.charset)
            self.cursor1 = self.conn.cursor()
    
        def close(self):
            """关闭连接"""
            self.cursor1.close()
            self.conn.close()
    
        def iud(self,sql_content):
            """增删改"""
            self.open()   #调用open方法
    
            self.sql = '%s'[sql_content]
            self.cursor1.execute(self.sql)
            self.conn.commit()
    
            self.close()   #调用close方法
    
    
    mysql1 = MysqlHelper("localhost",3306,"root","mysql","py31""utf8")
    
    sql_content = raw_input('请输入sql语句:')
    mysql1.iud(sql_content)

          

    4.版本4:抛出异常,参数化

    # -*- coding:utf-8 -*-
    from MySQLdb import *
    
    
    class MysqlHelper:
        """封装"""
        def __init__(self,host,port,user,passwd,db,charset='utf8'):
            """初始化"""
            self.host=host
            self.port=port
            self.user=user
            self.passwd=passwd
            self.db=db
            self.charset=charset
    
        def open(self):
            """连接数据库"""
            self.conn = connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd, db=self.db, charset=self.charset)
            self.cursor1 = self.conn.cursor()
    
        def close(self):
            """关闭连接"""
            self.cursor1.close()
            self.conn.close()
    
        def iud(self,sql,params):
            """增删改"""
            try:
                self.open()   #调用open方法
    
                self.cursor1.execute(sql,params)
                self.conn.commit()
    
                self.close()   #调用close方法
                print('ok')
            except Exception as e:
                print(e.message)
    
    
    mysql1 = MysqlHelper("localhost",3306,"root","mysql","py31","utf8")
    
    name = "jack"
    id = 1
    sql = 'update students set name=%s where id=%s'
    params=[name,id]
    mysql1.iud(sql,params)
    /usr/bin/python2.7 /home/python/code/03-class封装.py
    ok
    
    +----+------------+--------+---------------------+----------+
    |  1 | jack       |       | 1999-09-09 00:00:00 |          |

    5.版本5:查询

    # -*- coding:utf-8 -*-
    from MySQLdb import *
    
    
    class MysqlHelper:
        """封装"""
        def __init__(self,host,port,user,passwd,db,charset='utf8'):
            """初始化"""
            self.host=host
            self.port=port
            self.user=user
            self.passwd=passwd
            self.db=db
            self.charset=charset
    
        def open(self):
            """连接数据库"""
            self.conn = connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd, db=self.db, charset=self.charset)
            self.cursor1 = self.conn.cursor()
    
        def close(self):
            """关闭连接"""
            self.cursor1.close()
            self.conn.close()
    
        def iud(self,sql,params):
            """增删改"""
            try:
                self.open()   #调用open方法
    
                self.cursor1.execute(sql,params)
                self.conn.commit()
    
                self.close()   #调用close方法
                print('ok')
            except Exception as e:
                print(e.message)
    
        def all(self,sql,params=()):       #默认参数
            try:
                self.open()
                print "1"
                self.cursor1.execute(sql,params)
                result = self.cursor1.fetchall()    #fetchall()获取多条数据
                print "2"                                     #fetchone()获取1条数据
                print(result)
                self.close()
    
                return result                             #返回result
    
            except Exception as e:
                print(e.message)
    
    mysql1 = MysqlHelper("localhost",3306,"root","mysql","py31","utf8")
    
    sql = 'select * from students where id<5'
    result = mysql1.all(sql)
    print(result)
    1
    2
    ((1L, u'jack', 'x01', datetime.datetime(1999, 9, 9, 0, 0), 'x00'), (2L, u'u817eu65ed', 'x01', datetime.datetime(1990, 2, 2, 0, 0), 'x00'), (3L, u'u7f51u6613', 'x01', None, 'x00'), (4L, u'u5c0fu7c73', 'x01', None, 'x00'))
    ((1L, u'jack', 'x01', datetime.datetime(1999, 9, 9, 0, 0), 'x00'), (2L, u'u817eu65ed', 'x01', datetime.datetime(1990, 2, 2, 0, 0), 'x00'), (3L, u'u7f51u6613', 'x01', None, 'x00'), (4L, u'u5c0fu7c73', 'x01', None, 'x00'))

    6.版本6:获取单条数据

    # -*- coding:utf-8 -*-
    from MySQLdb import *
    
    
    class MysqlHelper:
        """封装"""
        def __init__(self,host,port,user,passwd,db,charset='utf8'):
            """初始化"""
            self.host=host
            self.port=port
            self.user=user
            self.passwd=passwd
            self.db=db
            self.charset=charset
    
        def open(self):
            """连接数据库"""
            self.conn = connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd, db=self.db, charset=self.charset)
            self.cursor1 = self.conn.cursor()
    
        def close(self):
            """关闭连接"""
            self.cursor1.close()
            self.conn.close()
    
    
        def iud(self,sql,params):
            """增删改"""
            try:
                self.open()   #调用open方法
    
                self.cursor1.execute(sql,params)
                self.conn.commit()
    
                self.close()   #调用close方法
                print('ok')
            except Exception as e:
                print(e.message)
    
        def all(self,sql,params=()):
            """获取多条数据"""
            try:
                self.open()
    
                self.cursor1.execute(sql,params)
                result = self.cursor1.fetchall()
                print(result)
                
                self.close()
    
                return result
    
            except Exception as e:
                print(e.message)
                
        def one(self,sql,params=()):
            """获取单挑数据"""
            try:
                self.open()
                
                self.cursor1.execute(sql,params)
                result = self.cursor1.fetchone()
                print(result)
                
                self.close()
    
                return result
    
            except Exception as e:
                print(e.message)

    7.版本7:封装完成

    #encoding=utf8
    import MySQLdb
    
    class MysqlHelper():
        def __init__(self,host,port,db,user,passwd,charset='utf8'):
            self.host=host
            self.port=port
            self.db=db
            self.user=user
            self.passwd=passwd
            self.charset=charset
    
        def connect(self):
            self.conn=MySQLdb.connect(host=self.host,port=self.port,db=self.db,user=self.user,passwd=self.passwd,charset=self.charset)
            self.cursor=self.conn.cursor()
    
        def close(self):
            self.cursor.close()
            self.conn.close()
    
        def get_one(self,sql,params=()):
            result=None
            try:
                self.connect()
                self.cursor.execute(sql, params)
                result = self.cursor.fetchone()
                self.close()
            except Exception, e:
                print e.message
            return result
    
        def get_all(self,sql,params=()):
            list=()
            try:
                self.connect()
                self.cursor.execute(sql,params)
                list=self.cursor.fetchall()
                self.close()
            except Exception,e:
                print e.message
            return list
    
        def insert(self,sql,params=()):
            return self.__edit(sql,params)
    
        def update(self, sql, params=()):
            return self.__edit(sql, params)
    
        def delete(self, sql, params=()):
            return self.__edit(sql, params)
    
        def __edit(self,sql,params):
            count=0
            try:
                self.connect()
                count=self.cursor.execute(sql,params)
                self.conn.commit()
                self.close()
            except Exception,e:
                print e.message
            return count

    8 当做第三方模块导入

        

  • 相关阅读:
    asp.net 2.0-实现数据访问(1)
    跨平台跨服务器跨网站SSO(单点登录)方案的DEMO
    (翻译)Windows Communication Foundation (Workshop)-Part 2:在WCF中操作会话
    ipc的remoting
    忙活了半年的书已经交稿,年后就要出版
    一个ASP.NET2.0的小项目-BLOG
    (论坛答疑点滴)上传控件怎么修改样式?怎么设置readonly?
    【LoveCherry】上海.NET招聘!!!!!!!!!!!!!!!!!!!!!!!!!
    【翻译】Scott Mitchell的ASP.NET2.0数据指南中文版索引
    Scott Mitchell 的ASP.NET 2.0数据教程之二十四:: 分页和排序报表数据
  • 原文地址:https://www.cnblogs.com/venicid/p/8046294.html
Copyright © 2011-2022 走看看