美文网首页
封装sql1

封装sql1

作者: dittoyy3991 | 来源:发表于2017-07-12 21:07 被阅读23次

    pip install PyMySQL

    # coding:utf-8
    import MySQLdb
    # import os
    # os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
    
    mysql_info = {"host": '127.0.0.1',
                  "port": 3307,
                  "user": 'root',
                  "passwd": 'test',
                  "db": 'test',
                  "charset": 'utf8'}
    
    class MysqlUtil():
        '''
        mysql数据库相关操作
        连接数据库信息:mysql_info
        创建游标:mysql_execute
        查询某个字段对应的字符串:mysql_getstring
        查询一组数据:mysql_getrows
        关闭mysql连接:mysql_close
        '''
        def __init__(self):
            self.db_info = mysql_info
            u'''连接池方式'''
            self.conn = MysqlUtil.__getConnect(self.db_info)
    
        @staticmethod
        def __getConnect(db_info):
            '''静态方法,从连接池中取出连接'''
            try:
                conn = MySQLdb.connect(host=db_info['host'],
                                       port=db_info['port'],
                                       user=db_info['user'],
                                       passwd=db_info['passwd'],
                                       db=db_info['db'],
                                       charset=db_info['charset'])
                return conn
            except Exception as a:
                print("数据库连接异常:%s"%a)
    
        def mysql_execute(self, sql):
            '''执行sql语句'''
            cur = self.conn.cursor()
            try:
                cur.execute(sql)
            except Exception as a:
                self.conn.rollback()         # sql执行异常后回滚
                print("执行SQL语句出现异常:%s"%a)
            else:
                cur.close()
                self.conn.commit()          # sql无异常时提交
    
        def mysql_executemany(self, sql,list):
            '''执行sql语句'''
            cur = self.conn.cursor()
            try:
                cur.executemany(sql,list)
            except Exception as a:
                self.conn.rollback()         # sql执行异常后回滚
                print("执行SQL语句出现异常:%s"%a)
            else:
                cur.close()
                self.conn.commit()          # sql无异常时提交
    
        def mysql_getrows(self, sql):
            ''' 返回查询结果'''
            cur = self.conn.cursor()
            try:
                cur.execute(sql)
            except Exception as a:
                print("执行SQL语句出现异常:%s"%a)
            else:
                rows = cur.fetchall()
                cur.close()
                return rows
    
        def mysql_getstring(self, sql):
            '''查询某个字段的对应值'''
            rows = self.mysql_getrows(sql)
            if rows != None:
                for row in rows:
                    for i in row:
                        return i
    
        def mysql_close(self):
            ''' 关闭 close mysql'''
            try:
                self.conn.close()
            except Exception as a:
                print("数据库关闭时异常:%s"%a)
    
    # MySQLdb.connect()     建立数据库连接
    # cur = conn.cursor()    #通过获取到的数据库连接conn下的cursor()方法来创建游标。
    # cur.execute()    #过游标cur 操作execute()方法可以写入纯sql语句。通过execute()方法中写如sql语句来对数据进行操作。
    # cur.close()     # cur.close() 关闭游标
    # conn.commit()   # conn.commit()方法在提交事物,在向数据库插入(或update)一条数据时必须要有这个方法,否则数据不会被真正的插入。
    # conn.rollback() # 发生错误时候回滚
    # conn.close()     # Conn.close()关闭数据库连接
    
    if __name__ == "__main__":
        A = MysqlUtil()
        # sql = "SELECT  *FROM notify_request t where TEMPLATE_ID LIKE '16091%' ORDER BY t.REQUEST_TIME DESC  limit 0,1"#limitorderby查询
        # sql = "SELECT * FROM help_keyword limit 1,10"#查询
        # sql1='''create table if not exists honey4 (
        #         first_name char(20) primary key not null,
        #         last_name char(10) ,
        #         age int,
        #         sex char(10),
        #         income float)'''#创建数据表
        # sql='''insert into honey3(first_name,last_name,age,sex,income) values ('%s', '%s', '%d', '%c', '%d' ) '''\
        # %('7777c', 'M777an', 20, 'M', 2000)#插入可以多个直接传,也可以传指定的
    
        # sql='''UPDATE honey3 SET age = age + 1
        # WHERE sex = "%c"'''% ('M')#更新
        sqli="insert into honey3(first_name,last_name,age,sex,income) values (%s, %s, %r, %r, %r ) "
        list1=[
            ('737c', 'M477an', 77, 'M', 21),
            ('77447c', '377an', 77, 'M', 21),
            ('7755657c', '1777an', 23, 'M',21),
            ]
        A.mysql_executemany(sqli,list1)
        # A.mysql_execute(sql)
        # print A.mysql_getrows(sql)
    
        # print A.mysql_getstring(sql)
        A.mysql_close()
    
    
    
    

    相关文章

      网友评论

          本文标题:封装sql1

          本文链接:https://www.haomeiwen.com/subject/owgdqxtx.html