python重点回顾(1)

python教程重点回顾-1-python基础 ##python基础 # 输出 print 'hello','world' # `,`相当于一个空格 # 获取键盘输入的字符串 string = raw_input("please input: ") # 循环 names = ['Michael', 'Bob', 'Tracy'] for name in names: print name sum = 0 for x in range(101): sum = sum + x print sum # set >>> s = set([1, 1, 2, 2, 3, 3]) >>> s set([1, 2, 3]) ##函数 # 函数定义 # `*`为元组类型,`**`为字典类型 def func(a, b, c=0, *args, **kw): print 'a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw >>> args = (1, 2, 3, 4) >>> kw = {'x': 99} >>> func(*args, **kw)...…

MyBatis Generator使用

使用MyBatis Generator生成基础代码。 ##添加配置 ###maven配置 在pom.xml的plugins中添加 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> <dependency> <groupId>com.github.abel533</groupId> <artifactId>mapper</artifactId> <version>3.0.0</version> </dependency> </dependencies> </plugin> 此处使用了网友开源的组件生成定制的Mapper,并且为实体类添加了中文注释 ###MyBatis Generator配置 generatorConfig.xml配置如下 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 如果pom的plugin中没有配置使用的驱动,这里要使用绝对路径指定驱动 --> <!--<classPathEntry location="mysql-connector-java-5.1.34.jar"/>--> <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat"> <property name="beginningDelimiter" value="`"/> <property name="endingDelimiter" value="`"/> <property name="javaFileEncoding" value="UTF-8"/> <plugin type="com.github.abel533.generator.MapperPlugin"> <property name="mappers" value="com.github.abel533.mapper.Mapper"/> </plugin> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/db?useUnicode=true&amp;characterEncoding=UTF-8" userId="" password=""> </jdbcConnection> <javaModelGenerator targetPackage="com.aa.bb.cc.model" targetProject="/src/main/java/"/> <sqlMapGenerator targetPackage="xml" targetProject="/mybatis"/> <javaClientGenerator type="XMLMAPPER" targetPackage="com.aa.bb.cc.dao" targetProject="/src/main/java/"/> <!--匹配所有表--> <!--<table tableName="%">--> <!--<generatedKey column="id" sqlStatement="Mysql"/>--> <!--</table>--> <!-- 表对应实体类重命名 --> <table tableName="t_bill_info" domainObjectName="BillInfo"/> </context> </generatorConfiguration> 如果数据库主键已设置了自增长属性,可以不使用<generatedKey...…

Java项目中缓存的使用

在Spring项目中集成Ehcache,缓存数据、缓存页面 ##配置修改 ###工程配置 For Maven project : <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.9.0</version> </dependency> <!-- Optional, to log stuff --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.0.13</version> </dependency> <!-- Spring caching framework inside this --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!-- Support for Ehcache and others --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.1.4.RELEASE</version> </dependency> For Gradle project : apply plugin: 'java' apply plugin: 'eclipse-wtp' version = '1.0' // Uses JDK 7 sourceCompatibility = 1.7 targetCompatibility = 1.7 // Get dependencies from Maven central repository repositories { mavenCentral() } //Project dependencies dependencies { compile 'org.springframework:spring-context:4.1.4.RELEASE' compile 'org.springframework:spring-context-support:4.1.4.RELEASE' compile 'net.sf.ehcache:ehcache:2.9.0' compile 'ch.qos.logback:logback-classic:1.0.13' } ###Spring配置 在spring的主配置中添加 <!-- 缓存配置 --> <!--...…

Swift教程第二章(6)

Swift教程第二章(6)–Swift基础 扩展、协议 ##扩展 注意:如果定义一个扩展,此扩展对该类型的所有已有实例都是可用的 使用关键字extension ###扩展属性 extension Double{ var km:Double{return self*1000} } ###扩展构造器 extension Rect{ init(...){ } } ###扩展方法 extension Int{ func repetitions(task:()->()){ for i in 0..self{ task() } } } ###修改实例方法 使用关键字mutating extension Int{ mutating func square(){ self=self*self } } var someint=3 someint.square() //someint is 9 now ###下标(使用内部脚本实现) 向Int添加一个下标,返回十进制数字从又想做的第n个数字 extension Int{ subscriot(digitIndex:Int)->Int{ var decimalBase=1 for _ in 1...digitIndex{ decimalBase*=10 } return (self/decimalBase)%10 } } //123456789[0]=9 //123456789[1]=8 ##协议 使用关键字protocol用于统一方法和属性的名称,而不是现任和功能。协议能够被类、枚举、结构体实现,满足协议要求的类、枚举、结构体被称为协议的遵循着 很像其他语言的接口:) 语法: protocol SomeProtocol{ //协议内容 } ###属性要求 //协议定义 protocol SomeProtocol{ //只读属性 var name:String{get} var age:Int{get set} } 用类实现协议时,使用class关键字来表示属性为类成员,用结构体或枚举实现协议时则使用static关键字来表示 protocol AnotherProtocol{ class var someTypeProperty:Int{get set} } ###方法要求 protocol SomeProtocol{ class func someTypeMethod()...…

Swift教程第二章(5)

Swift教程第二章(5)–Swift基础 构造过程、析构函数、自动引用计数、类型转换、类型嵌套 ##构造过程 ###构造器 class SomeClass{ var count:Double init(){ count=0 } } ###默认属性 class SomeClass{ var count:Double=0 init(){ } } ###有参的构造函数 class SomeClass{ var count:Double init(count:Double){ self.count=count } } ###构造函数重载 定义多个init方法,包含的函数签名不同 ###构造器链 Swift采用以下规则来限制构造器件的代理调用: 指定构造器必须总是向上代理 便利构造器总是横向代理 class Food{ var name:String init(name:String){ self.name=name } convenience init(){ self.init(name:"[Unnamed]") } } ##析构函数 使用deinit标示析构函数 ##自动引用计数 使用ARC实现,引用计数只应用在类的实例,结构和美剧类型是值类型,并非引用类型,不是引用的方式来存储和传递的 ##类型转换 ###类型检查 使用is进行类型检查 if _cla is SomeClass{ //to do something } ###向下转型 使用as尝试向下转到他的子类型 if let _cla as? SomeClass{ //use _cla to do something } 注:转换并没有改变实例或值,只是把它当成某种类型使用 ###AnyObject类型 AnyObject可以代理任何class类型的实例 使用API的时候会使用到接受AnyObject[]类型的数组,它接受任意类型对象组成的数组 ###Any类型 Any可以表示出了方法类型以外的任何类型 使用Any类型来混合不同的类型,包括非class类型 var tings=Any[]() things.append(0) things.append(0.0) things.append("123") things.append((1,2)) things.append(SomeClass()) ##类型嵌套 ###定义 ###类型嵌套的引用 …