1. 程式人生 > >groovy中對檔案,集合,測試,資料庫的操作例子

groovy中對檔案,集合,測試,資料庫的操作例子

package com.mygroovy.test;

import java.io.File;
import java.util.List;

import org.junit.Test;

import groovy.sql.Sql;

import static org.junit.Assert.*;

class SQLTest {
	public static Sql getSql(){
		String url  = "jdbc:mysql://localhost:3306/user_dev";
		String username = "root";
		String password = "519241";
		String driverClass = "org.gjt.mm.mysql.Driver";
		//相當於一個connection
		return Sql.newInstance (url, username, password, driverClass);
	} 
	@Test
	public void test(){
		Sql sql = getSql();
		//直接迴圈ResultSet,row是固定寫法,相當於一行的遊標
		sql.eachRow "select * from ut_user", {row->
			println row.name
		}
		//只取出結果的第一條,併合成一個物件返回
		def user = sql.firstRow("select * from ut_user");
		println user
		//把結果集合成物件,並放進一list物件中
		List<User> list = sql.rows("select * from ut_user");
		//迴圈各種集合,it相當於每次的一個結果
		list.each {
			println(it);
		}
		
		//sql.execute("insert");
		
		//sql.execute("create table book(id int primary key,name char(20))");
		//sql.execute("drop table book;");
		//輸出一個檔案的內容,按行輸出
		def file = new File("C:/software/QQLicense.txt");
		file.eachLine{println it} 
		
		def str = "abc";
		str<<"d";
		println str;
		println str<<"d";
		println str+"e";
		println str-"a";
		
		//測試直接整合,用assert即可
		assert 1.class==Integer
		println 1.01.class
		println 1.0f.class
		println 1.0d.class
		
		def arr = [21,51,14,25,84,214,3];
		//放便的自然排序
		println arr.sort();
		//..相當於在1到3中間,包括兩端的數字,
		assert [1..3] == [[1,2,3]]
		assert [*1..3] == [1,2,3] // 使用* 操作符平坦化該列表
	}
}