搜档网
当前位置:搜档网 › Javaweb Apache的DBUtils框架学习

Javaweb Apache的DBUtils框架学习

Javaweb Apache的DBUtils框架学习
Javaweb Apache的DBUtils框架学习

Javaweb Apache的DBUtils框架学习

一、commons-dbutils简介

commons-dbutils 是Apache 组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。

commons-dbutilsAPI介绍:

https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.QueryRunner

https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.ResultSetHandler

工具类

https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.DbUtils

二、QueryRunner类使用讲解

该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。

QueryRunner类提供了两个构造方法:

默认的构造方法

需要一个javax.sql.DataSource 来作参数的构造方法。

2.1、QueryRunner类的主要方法

public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理PreparedStatement 和ResultSet 的创建和关闭。

public Object query(String sql, Object[] params, ResultSetHandler rsh) throws SQLException:几乎与第一种方法一样;唯一的不同在于它不将数据库连接提供给方法,并且它是从提供给构造方法的数据源(DataSource) 或使用的setDataSource 方法中重新获得Connection。

public Object query(Connection conn, String sql, ResultSetHandler rsh) throws SQLException : 执行一个不需要置换参数的查询操作。

public int update(Connection conn, String sql, Object[] params) throws SQLException:用来执行一个更新(插入、更新或删除)操作。

public int update(Connection conn, String sql) throws SQLException:用来执行一个不需要置换参数的更新操作。

2.2、使用QueryRunner类实现CRUD

复制代码

1 package me.gacl.test;

2

3 import java.util.Date;

4 import java.util.List;

5 import java.io.File;

6 import java.io.FileReader;

7 import java.io.IOException;

8 import java.sql.SQLException;

9 import javax.sql.rowset.serial.SerialClob;

10 import https://www.sodocs.net/doc/ec1187436.html,er;

11 import me.gacl.util.JdbcUtils;

12 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.QueryRunner;

13 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.BeanHandler;

14 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.BeanListHandler;

15 import org.junit.Test;

16

17 /**

18 * @ClassName: DBUtilsCRUDTest

19 * @Description:使用dbutils框架的QueryRunner类完成CRUD,以及批处理

20 * @author: 孤傲苍狼

21 * @date: 2014-10-5 下午4:56:44

22 *

23 */

24 public class QueryRunnerCRUDTest {

25

26 /*

27 *测试表

28 create table users(

29 id int primary key auto_increment,

30 name varchar(40),

31 password varchar(40),

32 email varchar(60),

33 birthday date

34 );

35 */

36

37 @Test

38 public void add() throws SQLException {

39 //将数据源传递给QueryRunner,QueryRunner内部通过数据源获取数据库连接

40 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

41 String sql = "insert into users(name,password,email,birthday) values(?,?,?,?)";

42 Object params[] = {"孤傲苍狼","123", "gacl@https://www.sodocs.net/doc/ec1187436.html,", new Date()};

43 //Object params[] = {"白虎神皇","123", "gacl@https://www.sodocs.net/doc/ec1187436.html,", "1988-05-07"};

44 qr.update(sql, params);

45 }

46

47 @Test

48 public void delete() throws SQLException {

49

50 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

51 String sql = "delete from users where id=?";

52 qr.update(sql, 1);

53

54 }

55

56 @Test

57 public void update() throws SQLException {

58 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

59 String sql = "update users set name=? where id=?";

60 Object params[] = { "ddd", 5};

61 qr.update(sql, params);

62 }

63

64 @Test

65 public void find() throws SQLException {

66 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

67 String sql = "select * from users where id=?";

68 Object params[] = {2};

69 User user = (User) qr.query(sql, params, new BeanHandler(User.class));

70 System.out.println(user.getBirthday());

71 }

72

73 @Test

74 public void getAll() throws SQLException {

75 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

76 String sql = "select * from users";

77 List list = (List) qr.query(sql, new BeanListHandler(User.class));

78 System.out.println(list.size());

79 }

80

81 /**

82 * @Method: testBatch

83 * @Description:批处理

84 * @Anthor:孤傲苍狼

85 *

86 * @throws SQLException

87 */

88 @Test

89 public void testBatch() throws SQLException {

90 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

91 String sql = "insert into users(name,password,email,birthday) values(?,?,?,?)";

92 Object params[][] = new Object[10][];

93 for (int i = 0; i < 10; i++) {

94 params[i] = new Object[] { "aa" + i, "123", "aa@https://www.sodocs.net/doc/ec1187436.html,",

95 new Date() };

96 }

97 qr.batch(sql, params);

98 }

99

100 //用dbutils完成大数据(不建议用)

101

/*************************************************************************** 102 create table testclob

103 (

104 id int primary key auto_increment,

105 resume text

106 );

107

**************************************************************************/

108 @Test

109 public void testclob() throws SQLException, IOException{

110 QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());

111 String sql = "insert into testclob(resume) values(?)"; //clob

112 //这种方式获取的路径,其中的空格会被使用“%20”代替

113 String path = QueryRunnerCRUDTest.class.getClassLoader().getResource("data.txt").getPath();

114 //将“%20”替换回空格

115 path = path.replaceAll("%20", " ");

116 FileReader in = new FileReader(path);

117 char[] buffer = new char[(int) new File(path).length()];

118 in.read(buffer);

119 SerialClob clob = new SerialClob(buffer);

120 Object params[] = {clob};

121 runner.update(sql, params);

122 }

123 }

复制代码

三、ResultSetHandler接口使用讲解

该接口用于处理java.sql.ResultSet,将数据按要求转换为另一种形式。

ResultSetHandler接口提供了一个单独的方法:Object handle (java.sql.ResultSet .rs)

3.1、ResultSetHandler接口的实现类

ArrayHandler:把结果集中的第一行数据转成对象数组。

ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List 里。

ColumnListHandler:将结果集中某一列的数据存放到List中。

KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。

MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。

MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List

3.2、测试dbutils各种类型的处理器

复制代码

1 package me.gacl.test;

2

3 import java.sql.SQLException;

4 import java.util.Arrays;

5 import java.util.List;

6 import java.util.Map;

7 import me.gacl.util.JdbcUtils;

8 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.QueryRunner;

9 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.ArrayHandler;

10 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.ArrayListHandler;

11 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.ColumnListHandler;

12 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.KeyedHandler;

13 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.MapHandler;

14 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.MapListHandler;

15 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.ScalarHandler;

16 import org.junit.Test;

17

18 /**

19 * @ClassName: ResultSetHandlerTest

20 * @Description:测试dbutils各种类型的处理器

21 * @author: 孤傲苍狼

22 * @date: 2014-10-6 上午8:39:14

23 *

24 */

25 public class ResultSetHandlerTest {

26

27 @Test

28 public void testArrayHandler() throws SQLException{

29 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

30 String sql = "select * from users";

31 Object result[] = (Object[]) qr.query(sql, new ArrayHandler());

32 System.out.println(Arrays.asList(result)); //list toString()

33 }

34

35 @Test

36 public void testArrayListHandler() throws SQLException{

37

38 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

39 String sql = "select * from users";

40 List list = (List) qr.query(sql, new ArrayListHandler());

41 for(Object[] o : list){

42 System.out.println(Arrays.asList(o));

43 }

44 }

45

46 @Test

47 public void testColumnListHandler() throws SQLException{

48 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

49 String sql = "select * from users";

50 List list = (List) qr.query(sql, new ColumnListHandler("id"));

51 System.out.println(list);

52 }

53

54 @Test

55 public void testKeyedHandler() throws Exception{

56 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

57 String sql = "select * from users";

58

59 Map map = (Map) qr.query(sql, new KeyedHandler("id"));

60 for(Map.Entry me : map.entrySet()){

61 int id = https://www.sodocs.net/doc/ec1187436.html, getKey();

62 Map innermap = me.getValue();

63 for(Map.Entry innerme : innermap.entrySet()){

64 String columnName = innerme.getKey();

65 Object value = innerme.getValue();

66 System.out.println(columnName + "=" + value);

67 }

68 System.out.println("----------------");

69 }

70 }

71

72 @Test

73 public void testMapHandler() throws SQLException{

74

75 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

76 String sql = "select * from users";

77

78 Map map = (Map) qr.query(sql, new MapHandler());

79 for(Map.Entry me : map.entrySet())

80 {

81 System.out.println(me.getKey() + "=" + me.getValue());

82 }

83 }

84

85

86 @Test

87 public void testMapListHandler() throws SQLException{

88 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

89 String sql = "select * from users";

90 List list = (List) qr.query(sql, new MapListHandler());

91 for(Map map :list){

92 for(Map.Entry me : map.entrySet())

93 {

94 System.out.println(me.getKey() + "=" + me.getValue());

95 }

96 }

97 }

98

99 @Test

100 public void testScalarHandler() throws SQLException{

101 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

102 String sql = "select count(*) from users"; //[13] list[13]

103 int count = ((Long)qr.query(sql, new ScalarHandler(1))).intValue();

104 System.out.println(count);

105 }

106 }

复制代码

三、DbUtils类使用讲解

DbUtils :提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态的。主要方法如下:

public static void close(…) throws java.sql.SQLException:DbUtils类提供了三个重载的关闭方法。这些方法检查所提供的参数是不是NULL,如果不是的话,它们就关闭Connection、Statement和ResultSet。

public static void closeQuietly(…): 这一类方法不仅能在Connection、Statement和ResultSet为NULL情况下避免关闭,还能隐藏一些在程序中抛出的SQLEeception。

public static void commitAndCloseQuietly(Connection conn):用来提交连接,然后关闭连

接,并且在关闭连接时不抛出SQL异常。

public static boolean loadDriver(https://www.sodocs.net/doc/ec1187436.html,ng.String driverClassName):这一方装载并注册JDBC 驱动程序,如果成功就返回true。使用该方法,你不需要捕捉这个异常ClassNotFoundException。

四、JDBC开发中的事务处理

在开发中,对数据库的多个表或者对一个表中的多条数据执行更新操作时要保证对多个更新操作要么同时成功,要么都不成功,这就涉及到对多个更新操作的事务管理问题了。比如银行业务中的转账问题,A用户向B用户转账100元,假设A用户和B用户的钱都存储在Account表,那么A用户向B用户转账时就涉及到同时更新Account表中的A用户的钱和B 用户的钱,用SQL来表示就是:

1 update account set money=money-100 where name='A'

2 update account set money=money+100 where name='B'

4.1、在数据访问层(Dao)中处理事务

对于这样的同时更新一个表中的多条数据的操作,那么必须保证要么同时成功,要么都不成功,所以需要保证这两个update操作在同一个事务中进行。在开发中,我们可能会在AccountDao写一个转账处理方法,如下:

复制代码

1 /**

2 * @Method: transfer

3 * @Description:这个方法是用来处理两个用户之间的转账业务

4 * 在开发中,DAO层的职责应该只涉及到CRUD,

5 * 而这个transfer方法是处理两个用户之间的转账业务的,已经涉及到具体的业务操作,应该在业务层中做,不应该出现在DAO层的

6 * 所以在开发中DAO层出现这样的业务处理方法是完全错误的

7 * @Anthor:孤傲苍狼

8 *

9 * @param sourceName

10 * @param targetName

11 * @param money

12 * @throws SQLException

13 */

14 public void transfer(String sourceName,String targetName,float money) throws SQLException{

15 Connection conn = null;

16 try{

17 conn = JdbcUtils.getConnection();

18 //开启事务

19 conn.setAutoCommit(false);

20 /**

21 * 在创建QueryRunner对象时,不传递数据源给它,是为了保证这两条SQL在同一个事务中进行,

22 * 我们手动获取数据库连接,然后让这两条SQL使用同一个数据库连接执行

23 */

24 QueryRunner runner = new QueryRunner();

25 String sql1 = "update account set money=money-100 where name=?";

26 String sql2 = "update account set money=money+100 where name=?";

27 Object[] paramArr1 = {sourceName};

28 Object[] paramArr2 = {targetName};

29 runner.update(conn,sql1,paramArr1);

30 //模拟程序出现异常让事务回滚

31 int x = 1/0;

32 runner.update(conn,sql2,paramArr2);

33 //sql正常执行之后就提交事务

34 https://www.sodocs.net/doc/ec1187436.html,mit();

35 }catch (Exception e) {

36 e.printStackTrace();

37 if(conn!=null){

38 //出现异常之后就回滚事务

39 conn.rollback();

40 }

41 }finally{

42 //关闭数据库连接

43 conn.close();

44 }

45 }

复制代码

然后我们在AccountService中再写一个同名方法,在方法内部调用AccountDao的transfer 方法处理转账业务,如下:

1 public void transfer(String sourceName,String targetName,float money) throws SQLException{

2 AccountDao dao = new AccountDao();

3 dao.transfer(sourceName, targetName, money);

4 }

上面AccountDao的这个transfer方法可以处理转账业务,并且保证了在同一个事务中进行,但是AccountDao的这个transfer方法是处理两个用户之间的转账业务的,已经涉及到具体的业务操作,应该在业务层中做,不应该出现在DAO层的,在开发中,DAO层的职责应该只涉及到基本的CRUD,不涉及具体的业务操作,所以在开发中DAO层出现这样的业务处理方法是一种不好的设计。

4.2、在业务层(BusinessService)处理事务

由于上述AccountDao存在具体的业务处理方法,导致AccountDao的职责不够单一,下

面我们对AccountDao进行改造,让AccountDao的职责只是做CRUD操作,将事务的处理挪到业务层(BusinessService),改造后的AccountDao如下:

复制代码

1 package me.gacl.dao;

2

3 import java.sql.Connection;

4 import java.sql.SQLException;

5 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.QueryRunner;

6 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.BeanHandler;

7 import me.gacl.domain.Account;

8 import me.gacl.util.JdbcUtils;

9

10 /*account测试表

11 create table account(

12 id int primary key auto_increment,

13 name varchar(40),

14 money float

15 )character set utf8 collate utf8_general_ci;

16

17 insert into account(name,money) values('A',1000);

18 insert into account(name,money) values('B',1000);

19 insert into account(name,money) values('C',1000);

20

21 */

22

23 /**

24 * @ClassName: AccountDao

25 * @Description: 针对Account对象的CRUD

26 * @author: 孤傲苍狼

27 * @date: 2014-10-6 下午4:00:42

28 *

29 */

30 public class AccountDao {

31

32 //接收service层传递过来的Connection对象

33 private Connection conn = null;

34

35 public AccountDao(Connection conn){

36 this.conn = conn;

37 }

38

39 public AccountDao(){

40

41 }

42

43 /**

44 * @Method: update

45 * @Description:更新

46 * @Anthor:孤傲苍狼

47 *

48 * @param account

49 * @throws SQLException

50 */

51 public void update(Account account) throws SQLException{

52

53 QueryRunner qr = new QueryRunner();

54 String sql = "update account set name=?,money=? where id=?";

55 Object params[] = {account.getName(),account.getMoney(),account.getId()};

56 //使用service层传递过来的Connection对象操作数据库

57 qr.update(conn,sql, params);

58

59 }

60

61 /**

62 * @Method: find

63 * @Description:查找

64 * @Anthor:孤傲苍狼

65 *

66 * @param id

67 * @return

68 * @throws SQLException

69 */

70 public Account find(int id) throws SQLException{

71 QueryRunner qr = new QueryRunner();

72 String sql = "select * from account where id=?";

73 //使用service层传递过来的Connection对象操作数据库

74 return (Account) qr.query(conn,sql, id, new BeanHandler(Account.class));

75 }

76 }

复制代码

接着对AccountService(业务层)中的transfer方法的改造,在业务层(BusinessService)中处理事务

复制代码

1 package me.gacl.service;

2

3 import java.sql.Connection;

4 import java.sql.SQLException;

5 import me.gacl.dao.AccountDao;

6 import me.gacl.domain.Account;

7 import me.gacl.util.JdbcUtils;

8

9 /**

10 * @ClassName: AccountService

11 * @Description: 业务逻辑处理层

12 * @author: 孤傲苍狼

13 * @date: 2014-10-6 下午5:30:15

14 *

15 */

16 public class AccountService {

17

18 /**

19 * @Method: transfer

20 * @Description:这个方法是用来处理两个用户之间的转账业务

21 * @Anthor:孤傲苍狼

22 *

23 * @param sourceid

24 * @param tartgetid

25 * @param money

26 * @throws SQLException

27 */

28 public void transfer(int sourceid,int tartgetid,float money) throws SQLException{

29 Connection conn = null;

30 try{

31 //获取数据库连接

32 conn = JdbcUtils.getConnection();

33 //开启事务

34 conn.setAutoCommit(false);

35 //将获取到的Connection传递给AccountDao,保证dao层使用的是同一个Connection对象操作数据库

36 AccountDao dao = new AccountDao(conn);

37 Account source = dao.find(sourceid);

38 Account target = dao.find(tartgetid);

39

40 source.setMoney(source.getMoney()-money);

41 target.setMoney(target.getMoney()+money);

42

43 dao.update(source);

44 //模拟程序出现异常让事务回滚

45 int x = 1/0;

46 dao.update(target);

47 //提交事务

48 https://www.sodocs.net/doc/ec1187436.html,mit();

49 }catch (Exception e) {

50 e.printStackTrace();

51 //出现异常之后就回滚事务

52 conn.rollback();

53 }finally{

54 conn.close();

55 }

56 }

57 }

复制代码

程序经过这样改造之后就比刚才好多了,AccountDao只负责CRUD,里面没有具体的业务处理方法了,职责就单一了,而AccountService则负责具体的业务逻辑和事务的处理,需要操作数据库时,就调用AccountDao层提供的CRUD方法操作数据库。

4.3、使用ThreadLocal进行更加优雅的事务处理

上面的在businessService层这种处理事务的方式依然不够优雅,为了能够让事务处理更加优雅,我们使用ThreadLocal类进行改造,ThreadLocal一个容器,向这个容器存储的对象,在当前线程范围内都可以取得出来,向ThreadLocal里面存东西就是向它里面的Map存东西的,然后ThreadLocal把这个Map挂到当前的线程底下,这样Map就只属于这个线程了

ThreadLocal类的使用范例如下:

复制代码

1 package me.gacl.test;

2

3 public class ThreadLocalTest {

4

5 public static void main(String[] args) {

6 //得到程序运行时的当前线程

7 Thread currentThread = Thread.currentThread();

8 System.out.println(currentThread);

9 //ThreadLocal一个容器,向这个容器存储的对象,在当前线程范围内都可以取得出来

10 ThreadLocal t = new ThreadLocal();

11 //把某个对象绑定到当前线程上对象以键值对的形式存储到一个Map集合中,对象的的key是当前的线程,如:map(currentThread,"aaa")

12 t.set("aaa");

13 //获取绑定到当前线程中的对象

14 String value = t.get();

15 //输出value的值是aaa

16 System.out.println(value);

18 }

复制代码

使用使用ThreadLocal类进行改造数据库连接工具类JdbcUtils,改造后的代码如下:

复制代码

1 package me.gacl.util;

2

3 import java.sql.Connection;

4 import java.sql.SQLException;

5 import javax.sql.DataSource;

6 import https://www.sodocs.net/doc/ec1187436.html,boPooledDataSource;

7

8 /**

9 * @ClassName: JdbcUtils2

10 * @Description: 数据库连接工具类

11 * @author: 孤傲苍狼

12 * @date: 2014-10-4 下午6:04:36

13 *

14 */

15 public class JdbcUtils2 {

16

17 private static ComboPooledDataSource ds = null;

18 //使用ThreadLocal存储当前线程中的Connection对象

19 private static ThreadLocal threadLocal = new ThreadLocal();

20

21 //在静态代码块中创建数据库连接池

22 static{

23 try{

24 //通过代码创建C3P0数据库连接池

25 /*ds = new ComboPooledDataSource();

26 ds.setDriverClass("com.mysql.jdbc.Driver");

27 ds.setJdbcUrl("jdbc:mysql://localhost:3306/jdbcstudy");

28 ds.setUser("root");

29 ds.setPassword("XDP");

30 ds.setInitialPoolSize(10);

31 ds.setMinPoolSize(5);

32 ds.setMaxPoolSize(20);*/

33

34 //通过读取C3P0的xml配置文件创建数据源,C3P0的xml配置文件c3p0-config.xml必须放在src目录下

35 //ds = new ComboPooledDataSource();//使用C3P0的默认配置来创建数据源

36 ds = new ComboPooledDataSource("MySQL");//使用C3P0的命名配置来创

37

38 }catch (Exception e) {

39 throw new ExceptionInInitializerError(e);

40 }

41 }

42

43 /**

44 * @Method: getConnection

45 * @Description: 从数据源中获取数据库连接

46 * @Anthor:孤傲苍狼

47 * @return Connection

48 * @throws SQLException

49 */

50 public static Connection getConnection() throws SQLException{

51 //从当前线程中获取Connection

52 Connection conn = threadLocal.get();

53 if(conn==null){

54 //从数据源中获取数据库连接

55 conn = getDataSource().getConnection();

56 //将conn绑定到当前线程

57 threadLocal.set(conn);

58 }

59 return conn;

60 }

61

62 /**

63 * @Method: startTransaction

64 * @Description: 开启事务

65 * @Anthor:孤傲苍狼

66 *

67 */

68 public static void startTransaction(){

69 try{

70 Connection conn = threadLocal.get();

71 if(conn==null){

72 conn = getConnection();

73 //把conn绑定到当前线程上

74 threadLocal.set(conn);

75 }

76 //开启事务

77 conn.setAutoCommit(false);

78 }catch (Exception e) {

79 throw new RuntimeException(e);

80 }

81 }

82

83 /**

84 * @Method: rollback

85 * @Description:回滚事务

86 * @Anthor:孤傲苍狼

87 *

88 */

89 public static void rollback(){

90 try{

91 //从当前线程中获取Connection

92 Connection conn = threadLocal.get();

93 if(conn!=null){

94 //回滚事务

95 conn.rollback();

96 }

97 }catch (Exception e) {

98 throw new RuntimeException(e);

99 }

100 }

101

102 /**

103 * @Method: commit

104 * @Description:提交事务

105 * @Anthor:孤傲苍狼

106 *

107 */

108 public static void commit(){

109 try{

110 //从当前线程中获取Connection

111 Connection conn = threadLocal.get();

112 if(conn!=null){

113 //提交事务

114 https://www.sodocs.net/doc/ec1187436.html,mit();

115 }

116 }catch (Exception e) {

117 throw new RuntimeException(e);

118 }

119 }

120

121 /**

122 * @Method: close

123 * @Description:关闭数据库连接(注意,并不是真的关闭,而是把连接还给数据库连

124 * @Anthor:孤傲苍狼

125 *

126 */

127 public static void close(){

128 try{

129 //从当前线程中获取Connection

130 Connection conn = threadLocal.get();

131 if(conn!=null){

132 conn.close();

133 //解除当前线程上绑定conn

134 threadLocal.remove();

135 }

136 }catch (Exception e) {

137 throw new RuntimeException(e);

138 }

139 }

140

141 /**

142 * @Method: getDataSource

143 * @Description: 获取数据源

144 * @Anthor:孤傲苍狼

145 * @return DataSource

146 */

147 public static DataSource getDataSource(){

148 //从数据源中获取数据库连接

149 return ds;

150 }

151 }

复制代码

对AccountDao进行改造,数据库连接对象不再需要service层传递过来,而是直接从JdbcUtils2提供的getConnection方法去获取,改造后的AccountDao如下:

复制代码

1 package me.gacl.dao;

2

3 import java.sql.Connection;

4 import java.sql.SQLException;

5 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.QueryRunner;

6 import https://www.sodocs.net/doc/ec1187436.html,mons.dbutils.handlers.BeanHandler;

7 import me.gacl.domain.Account;

8 import me.gacl.util.JdbcUtils;

9 import me.gacl.util.JdbcUtils2;

10

12 create table account(

13 id int primary key auto_increment,

14 name varchar(40),

15 money float

16 )character set utf8 collate utf8_general_ci;

17

18 insert into account(name,money) values('A',1000);

19 insert into account(name,money) values('B',1000);

20 insert into account(name,money) values('C',1000);

21

22 */

23

24 /**

25 * @ClassName: AccountDao

26 * @Description: 针对Account对象的CRUD

27 * @author: 孤傲苍狼

28 * @date: 2014-10-6 下午4:00:42

29 *

30 */

31 public class AccountDao2 {

32

33 public void update(Account account) throws SQLException{

34

35 QueryRunner qr = new QueryRunner();

36 String sql = "update account set name=?,money=? where id=?";

37 Object params[] = {account.getName(),account.getMoney(),account.getId()};

38 //JdbcUtils2.getConnection()获取当前线程中的Connection对象

39 qr.update(JdbcUtils2.getConnection(),sql, params);

40

41 }

42

43 public Account find(int id) throws SQLException{

44 QueryRunner qr = new QueryRunner();

45 String sql = "select * from account where id=?";

46 //JdbcUtils2.getConnection()获取当前线程中的Connection对象

47 return (Account) qr.query(JdbcUtils2.getConnection(),sql, id, new BeanHandler(Account.class));

48 }

49 }

复制代码

对AccountService进行改造,service层不再需要传递数据库连接Connection给Dao层,改造后的AccountService如下:

复制代码

1 package me.gacl.service;

2

3 import java.sql.SQLException;

4 import me.gacl.dao.AccountDao2;

5 import me.gacl.domain.Account;

6 import me.gacl.util.JdbcUtils2;

7

8 public class AccountService2 {

9

10 /**

11 * @Method: transfer

12 * @Description:在业务层处理两个账户之间的转账问题

13 * @Anthor:孤傲苍狼

14 *

15 * @param sourceid

16 * @param tartgetid

17 * @param money

18 * @throws SQLException

19 */

20 public void transfer(int sourceid,int tartgetid,float money) throws SQLException{

21 try{

22 //开启事务,在业务层处理事务,保证dao层的多个操作在同一个事务中进行

23 JdbcUtils2.startTransaction();

24 AccountDao2 dao = new AccountDao2();

25

26 Account source = dao.find(sourceid);

27 Account target = dao.find(tartgetid);

28 source.setMoney(source.getMoney()-money);

29 target.setMoney(target.getMoney()+money);

30

31 dao.update(source);

32 //模拟程序出现异常让事务回滚

33 int x = 1/0;

34 dao.update(target);

35

36 //SQL正常执行之后提交事务

37 https://www.sodocs.net/doc/ec1187436.html,mit();

38 }catch (Exception e) {

39 e.printStackTrace();

40 //出现异常之后就回滚事务

41 JdbcUtils2.rollback();

42 }finally{

43 //关闭数据库连接

44 JdbcUtils2.close();

45 }

46 }

47 }

复制代码

这样在service层对事务的处理看起来就更加优雅了。ThreadLocal类在开发中使用得是比较多的,程序运行中产生的数据要想在一个线程范围内共享,只需要把数据使用ThreadLocal进行存储即可。

4.4、ThreadLocal + Filter 处理事务

上面介绍了JDBC开发中事务处理的3种方式,下面再介绍的一种使用ThreadLocal + Filter进行统一的事务处理,这种方式主要是使用过滤器进行统一的事务处理,如下图所示:

1、编写一个事务过滤器TransactionFilter

代码如下:

复制代码

1 package me.gac.web.filter;

2

3 import java.io.IOException;

4 import java.sql.Connection;

5 import java.sql.SQLException;

6 import javax.servlet.Filter;

7 import javax.servlet.FilterChain;

8 import javax.servlet.FilterConfig;

9 import javax.servlet.ServletException;

10 import javax.servlet.ServletRequest;

11 import javax.servlet.ServletResponse;

12 import javax.servlet.http.HttpServletRequest;

13 import javax.servlet.http.HttpServletResponse;

14 import me.gacl.util.JdbcUtils;

15

16 /**

17 * @ClassName: TransactionFilter

18 * @Description:ThreadLocal + Filter 统一处理数据库事务

19 * @author: 孤傲苍狼

20 * @date: 2014-10-6 下午11:36:58

21 *

22 */

马春文发展经济学重点总结

发展经济学(马春文第三版)重点总结 课任老师:马文斌总结:袁凯 题型有单选题、简答、论述、案例分析,主观题较多,客观背诵题目较少 马文斌的考法肯定会问一些具体应用的题,比如城乡二元结构问题如何解决?比较考验知识量和对问题的理解能力,换句话说考你的硬功夫! 第一章:发展中国家与经济发展 我国目前存在的问题:农村空心化、产业空心化、投资虚拟化、资源垄断化、经济沙漠化发展经济学是一门以发展中国家经济增长和经济发展为研究对象的学科,是研究发展中国家从不发达到发达状态转型的原理和政策的经济学分支学科。 现代经济增长的特征(库兹涅茨):(1)发达国家的人均产值和人口增长迅速增加; (2)生产率快速增长; (3)经济结构迅速转变; (4)社会结构与意识形态发生变化; (5)发达国家瓜分世界完毕; (6)现代经济的增长扩散围有限。 中国还是不是发展中国家? 1、从GDP看,中低收入国家。 2、从经济发展布局看,结构性问题突出。 3、从教育、医 疗和社会保障体系看,中国公共福利事业仍有待发展和完善.4、从贸易结构看,中国仍处于全球产业链的低端. 经济增长与经济发展的关系(应该不会考) 观点一:增长与发展既有联系又有区别。经济增长指更多的产出,而经济发展不仅包括由于增加投资而增加的产量,还包括更高的生产效率,即单位投入所产生的产品的增加,此外经济发展还意味着产出结构的变化,以及各部门间投入分布的改变。观点二:经济增长与经济发展不加区别。库兹涅茨对经济增长的定义指出,现代经济增长不仅包括总量方面的特征,也包括经济结构、国际关系与制度、意识形态等方面的特征,也就是说,他将经济增长的概念扩大了,这与二十世纪80年代的“新经济增长”理论相一致。卢卡斯、罗默、巴罗等经济学家也都用经济增长泛指经济发展。 第二章:发展经济学与中国经济学的发展 熊彼特创新五种情况:(1)采用一种新产品——也就是消费者还不熟悉的产品,或一种产品的一种新的特性;(2)采用一种新的生产方法;(3)开辟一个新市场;(4)控制或获取新的原材料供应来源;(5)实现任何一种工业的新的组织,比如造成一种垄断地位或打破一种垄断地位。(上课有问过) 早期发展经济学的基本论点有三个:1、强调物质资本积累的重要性和必要性:(三个生产要素:资本劳动土地)资本匮乏才是束缚发展中国家经济增长的首要因素。2、强调工业化的重要性和必要性。要发展必须实现工业化,工业化能吸收劳动力。3、强调计划化的重要性和必要性,马歇尔计划。 什么是城乡二元经济结构?我国城乡二元经济结构主要表现为:

最新发展经济学第二版的知识点总结精华

发展经济学第二版的知识点总结精华

一发展经济学演变阶段及特点(了解一下) 第一阶段,大致从20世纪40年代到20世纪60年代中期。这一时期发展经济学发展的特点可以用惟资本化、惟计划化和惟工业化来概括。 第二阶段,从20世纪60年代中期到20世纪70年代末。由于在第一阶段极力推行工业化政策,农业和农村地区的发展没有得到应有的重视,所以发展中国家虽然在工业化方面取得了一些进展,但也付出了很大代价,即许多发展中国家的农业和农村地区的发展处于停滞状态,发展中国家的城市也人满为患。 第三阶段,从20世纪70年代中期到20世纪80年代中期。在这一阶段,出现新古典主义的、鼓吹自由市场经济力量的经济理论和政策。在理论方面,出现了供给经济学。在政策方面,出现了鼓吹在发达国家实行国有企业私有化,在发展中国家实行私有化、非计划化和减少政府干预的潮流。 第四阶段,从20世纪80年代中期到90年代。随着高新技术的发展,国际贸易和国际分工获得了空前的发展,世界经济日益国际化、全球化。在世界范围内,出现了以电子计算机和互联网络为代表的高新技术竞争体系。在这种高新技术竞争体系下,世界生产力获得了前所未有的提高。但是在高新技术领域中,发展中国家却没有获得相应的发展,发展中国家与发达国家在高新技术领域上的差距扩大了。 第五阶段,从20世纪90年代末到21世纪初。那些按照新自由主义经济思潮进行经济改革和经济发展的国家却遭受严重的失败,从而使新自由主义经济思潮在人们的心目中大打折扣。 线性阶段理论(有哪些阶段及每个阶段的特点) 1.传统社会阶段。 特点是:(1)经济处于原始状态。

(2)没有现代科学技术,赖以生存的产业以农业为主。 (3)社会结构僵化,阻碍经济变革。 (4)整个社会生产力低下,人均收入仅能够维持生存。 2 .为起飞创造条件阶段。 特点是:(1)新的科学技术正在应用于农业和工业。 (2)金融机构开始出现。 (3)交通运输状况得到很大改进。 (4)商业范围扩大。 (5)新的生产方法开始出现。 3.起飞阶段——最关键的阶段 特点是:(1)农业劳动生产率提高。 (2)农业中的劳动力从农业部门向工业部门转移。 (3)人均产值大幅度提高 4 .向成熟推进阶段 特点是:(1)新投资维持在相当高的水平。 (2)经济在世界贸易中的地位和作用得到加强。 (3)人均国民生产总值持续增长。 5. 高额群众消费阶段。 特点是:(1)主导部门已经转移到耐用消费品的生产部门和服务业。 (2)技术工人在劳动力中的百分比和城市居民在总人口中的百分比呈上升趋势。 (3)社会福利和保障事业得到深入发展 6 .追求生活质量阶段。

(发展战略)发展经济学 期末考试总结

第一章导论 一、发展经济学研究对象 发展经济学是主要研究贫困落后的农业国家或发展中国家如何实现工业化、摆脱贫困、走向富裕的经济学。 发展经济学是专门以发展中国家即后进国家的经济发展问题作为研究对象的。 所谓经济发展问题很多,概括起来包括两个方面:一是发展中国家经济相对于发达国家为什么落后或不发达?二是发展中国家如何加快经济发展步伐来追赶当今发达国家? 二、发展经济学起源 三、发展经济学代表人物 张培刚中国《农业与工业化》 四、经济增长与经济发展 ㈠度量 经济增长的度量: GNP 和人均GNP 经济发展的度量:①按购买力平价测算的人均GNP ②洛仑兹曲线和基尼系数 ③生活质量指标④贫困⑤工业化和职业分布 ㈡发展指标与增长指标的差别 1.增长的度量指标是一个价值指标,用货币来表示;而发展的度量指标是一个物质指标,用加权的办法进行加总,而给予的权数带有很强的主观性和随意性。 2.增长的度量指标通常公认为是一个指标,即GNP 或GDP 的增长率;而发展的度量指标则是多种指标综合在一起的指标体系,而且没有公认的权威标准。五、罗斯托起飞模型(Rostovian take-off model) 在罗斯托的经济成长阶段论中,第三阶段即起飞阶段与生产方式的急剧变革联系在一起,意味着工业化和经济发展的开始,在所有阶段中是最关键的阶段,是经济摆脱不发达状态的分水岭,罗斯托对这一阶段的分析也最透彻,因此罗斯托的理论也被人们叫做起飞理论。 用经济史的标准来划分人类社会历史的发展阶段。 1.传统社会 2.经济“起飞”准备阶段 3.“起飞”阶段 4.走向成熟阶段 5.大规模高消费阶段 6.追求生活质量阶段。 六、发展中国家定义 所谓发展中国家是指相对于发达国家或较发达国家来说的不发达国家或欠发达国家。通常是指那些经济社会发展和人民生活水平相对较低,尚处于从传统农业社会向现代工业社会转变过程中的国家。 其主要经济特征1.收入水平低下2.生产效率低下3.人口的高速增长和沉重的赡养负担4.就业率低5.对农业的严重依赖6.在国际关系中处于劣势地位7.不发达的市场经济

发展经济学复习重点.docx

发展经济学复习重点 请同学们根据以下11个问题提示进行认真复习。 K 简述亚当?斯密与大卫、李嘉图经济发展思想的区别。 斯密的经济发展思想强调的是人口、分工、资本三个方面,主要包括四个方面,■ 一、强调分工对经济增长和发展的促进作用; ■二、强调资本积累对促进经济增长和发展的作用; ■三、强调对贸易促进经济增长和发展的作用; ■四、强调必须为促进财富的增长和发展,创造经济自由的社会条件; “自由放任”是斯密所主张的经济政策的基本原则。他认为,要增加一国的财富, 最好的经济政策,就是给人们的经济活动以完全的,充分的自由。总体来说,斯密的思想是乐观的。 李嘉图继承并发展了斯密的自由主义经济理论.他认为限制国家的活动范围、减轻税收负担是增长经济的最好办法。但李嘉图更进一步的指出了国民财富的增加可以通过两种方式:一种是用更多的收入来维持生产性劳动,另一种是不增加任何劳动数量,而使其劳动的牛产效率增大。他认为资木积累的扩大是使国民财富增长的根本原因。在对外面贸易上,李嘉图也提出了比较成本优势,发展了大卫的绝对成本优势。但是李嘉图认为随着经济的增长和资本积累的扩大,利润率有下降的趋势。他根据报酬渐减规律视为约束经济增长的自然法则,从而得出利润率必然下降,经济增长必然停滞,社会静止状态必然出现的结论。 李嘉图的经济发展理论观点是悲观的。 2、简述李斯特的经济发展阶段论与保护关税学说思想,对当今发 展中国家发展民族工业有何启示? 李斯特提出:各国的经济发展,都要经历原始未开化时期、畜牧时期、农业吋期、农工业吋期、农工商业时期五个阶段。他认为国际贸易的自由与限制, 对于国家的富强有时有利,有时有害,是随着时期的不同而变化的。关税保护是后进国家与先进国家贸易过程中必须采取的政策。而关税保护的企业必须是具有自力前途优势的产业;保护关税的目的是使保护的对象提高竞争能力;保护关税的时期不能是无限度,只要保护到能与別国同行业产品竞争时, 即可取消保护关税政策。李斯特反对盲目的保护主义,正如反对盲目的自由贸易一样。 3、简析熊彼特经济发展思想的核心内容。 熊彼特在经济史上的主要成就在于他提出了独具特色的创新理论。他把经济发展看成是对现存经济关系的格局(即所谓的静态的循环流转)的一种突破。这种突破力量來自企业家的“创新”。企业家职能就是要实现创新,引进新组合,资本主义的经济发展就是这种不断创新的结果;周期性的经济波动止是起因于创新过程的非连续性和非均衡性,不同的创新对经济发展产生不同的影响,由此形成时间各一的经济周期。 按照熊彼特的定义,“创新”就是把生产要素和生产条件上的新组合引入生

发展经济学讲义

D e v e l o p m e n t e c o n o m i c s 《发展经济学》讲义 参考书目:《发展经济学》——增长与发展经济学译丛 [美]Debraj ray着陶然等译北京大学出版社 2002年10月第1版 黄景贵院长教授博士 孙建军副教授博士 目录 第一讲导论 第二讲经济发展:概览 第三讲经济增长 第四讲新增长理论 第五讲历史、预期和发展 第六讲经济不平等 第七讲不平等和经济发展:相互的联系 第八讲贫困与营养不良 第九讲人口增长与经济发展 第十讲农村和城市 第十一讲农业中的市场:一个初步的介绍 第十二讲土地 第十三讲劳动 第十四讲信贷 第十五讲保险 第十六讲国际贸易 第十七讲贸易政策 第十八讲贸易政策的多边方法 序言 发展经济学是研究发展中国家经济转变的学科,本讲义提供了发展经济学的一个介绍。 本讲义主要面向高年级的本科生,帮助他们学习初级或中级经济理论、运用现代主流经济学的统一分析框架对各种发展问题作深入浅出的分析。尤其在方法论上,本讲义结合近年来经济理论在不完全信息、契约理论、博弈论和新增长理论等方面的最新进展,分析发展中国家的经济发展问题。 本讲义将对学生数学的要求降到了最低。具体而言,不使用微积分,而尝试主要通过语言、图表来说明问题,有时也使用基础代数来讲解有关理论。 第一讲导论 一、两个定义 发展经济学:研究发展中国家经济转变的学科(debraj ray,2002)。 发展中国家(developing country):人均年收入低于9000美元的国家,而高于9000美元的国家称为发达国家(developed country)。——世界发展报告(world bank,1996) 二、本讲义的思维框架——贯穿两条主线: 1、或多或少地远离一个传统观点:即发展中国家问题只有在其所处的国际环境中才能得到最好的理解; 2、关于方法论的,尽可能用统一的分析方式来研究经济发展的问题,并在市场失灵与政府干预的可能性方面取一

发展经济学课程总结

华南农业大学期末考查论文 2015-2016学年第1学期考查科目:发展经济学 考查类型:论文考查时间:2015.11.22 学院专业数字与信息与软件学院软件工程姓名李日成学号201430340216 总分 评阅人王广深 论文题目:学习《发展经济学》课程回顾与体会 论文内容: 发展经济学,是研究经济发展规律、经济发展与社会发展相互关系规律、以经济发展为基础的社会发展规律的经济学。严格意义上,经济学就是发展经济学。发展经济学要求用主客体的对称分析代替纯客体的线性分析,用五维空间分析代替平面二维分析,用复杂系统论分析代替还原论分析,用规范分析代替实证分析,用规模分析代替边际分析,用“边际效益分析”提升“边际效率分析”,用价值经济学代替价格经济学,用价值机制取代价格机制成为市场的核心机制,用国民福利体系代替GDP增长体系,用社会主义市场经济代替资本主义市场经济,用科学发展代替增长。秉持线性思维方式不可能建构真正的发展经济学。 而我为什么会选择这门课程当做选修,是因为,是如今经济与社会紧密相关的时代下,掌握了正确的经济的发展动向,便可以是自己在以后的工作或者生活中先得游刃有余而不是一无所知。如今快速发展的经济,庞大的复杂的经济结构体,都值得我们去学习,去参透这里面其中所蕴含的丰富知识。并且,运用这些知识,来是自己对经济有着更为深刻的理解,在以后的投资理财方面也可以有着更好的发展。 当然,见证着人类的经济发展也是一件颇为有趣的事,在课上,我们不但回顾了西方国家工业革命的庞大构体,也认识到了经济是由多个方面所影响的并且是很多方面综合到一起的共同产物。市场作用、资本配置、经济体结构的变化、投资的变化,都是发展经济学中不可缺少的一部分。 收货和体会:发展经济学让我从其分析发展中国家的发展经验和教训,从这些历史追溯而来,让我体会到了发展经济的过程的艰辛,与在其中种种的解决问题的创意迸发。目前,中国仍处于发展中国家的地位,通过发展经济学,我也可以了解与研究一些当初那些国家的发展过程中可以学习的地方,对一些问题有着具体的分析,例如人口、工业、农业、贸易、财政、金融、以及教育等,可以让我在以后对于投资一类行情有着更加清楚明确的认识。 在老师给我们讲解到了二元一体经济的时候,我也了解到了中国部分地区的经济不发达的问题严重性与发展的失衡性,让我认识到了中国成为一个真正经济崛起的大国仍是一条艰辛的路程。如今房地长市场的泡沫化,各行各业的人都摩拳擦掌、跃跃欲试的想要加入股票大军这个行列,如果不能够有合理的方法进行

发展经济学复习重点

这是我自己整理的,题型不一定准确,可以参考,老师说答案整理的马马虎虎。 名词解释 1.原始工业化:发生在农村地区、以农民家庭为经济单位、产品是为区域外甚至是国际市场生产的手工业大发展,是工业化之前的工业化。 2.交易成本(250页):在信息不完全的的条件下,借助物品和劳务的让渡实现权利让渡过程中所产生的费用,其中包括谈判、签订、监督执行和维护交易契约的费用。 3.滴落效应:认为,虽然经济增长不可避免地会出现贫富分化和不平等,但是,富有阶层的积累是克服贫穷的物质基础,富有阶层的财富可借助于政府的调节实现重新分配。这样,经济增长的果实就可以滴落给穷人。所以,它们的口号是“先增长,后分配”。 填空 1.科斯定理:科斯定理是关于产权安排、交易费用和资源配置效率三者之间关系的定理。 如果交易成本为零,不管权利如何进行初始配置,当事人之间的谈判都会导致这些财富最大化的安排。 2.霍夫曼系数 根据霍夫曼系数的数值范围,工业化过程可以分成几个阶段: 第一阶段,霍夫曼系数为5(±1),表明消费品工业占优势; 第二阶段,霍夫曼系数为2.5(±1),说明资本品工业继续迅速发展,消费品工业优势地位渐趋下降; 第三阶段,霍夫曼系数为1(±0.5),消费品工业与资本平工业达到平衡; 当霍夫曼系数下降到1以下时,工业化就进入了第四阶段,资本品工业占主要地位。 3.外延型增长:主要增长因素数量增加产生的增长。 外延型经济增长的途径主要依靠增加资源(人财物)投入、扩大生产场地、生产规模、增加产品产量; 4.罗斯托经济增长阶段,条件 阶段:(1)传统社会 (2)作为起飞前提的阶段 (3)起飞 (4)成熟 (5)大众高消费阶段 (6)追求生活质量阶段 条件:起飞要具备的三个条件 (1)生产性投资占国民收入的比例从5%或5%以下上升到10%以上; (2)有一个或多个重要的制造业部门高速增长; (3)存在或迅速出现一个政治、社会和制度结构,这种结构利用现代部门扩张的冲力和起飞的潜在外部效应,使增长具有持续性。 5.交易费用

发展经济学最新整理重点

经济发展的含义:(包括自由与发展) 第一:经济增长与经济发展 经济增长指社会财富即社会总产品量的增加,一般用实际的国民生产总值(GNP )或国内生产总值(GDP )的增长率来表示;经济发展除了包括经济增长之外,还包括经济结构的变化。其结构变化主要包括1;投入结构的变化。2;产出结构的变化。3;产品构成的变化与质量的改进。4;居民生活品质的提高。5;分配状况的改善和贫困的下降。 第二;经济增长与人类发展 人类发展主要体现在人的各种能力的扩大,这些能力包括延长寿命的能力,获取更多知识的能力等等,这些能力的提高需要经济增长作为基础,只有经济增长,才有可能不断满足人们的需要。 经济增长不一定导致经济发展,即使带来了经济发展,也不一定大致发展和人类发展(自己论述)。实际上来讲,发展是指人的全面发展,而经济发展知识经济结构的变化和物质文化水平的提高。 经济增长与人类增长也是一个相互促进的关系,不仅增长能够促进人类发展,而且人类发展也能促进增长。(如;人力资本投资能够拉动经济增长) 第三;自由与发展 自由是发展的首要目标,自由也是促进发展不可或缺的重要手段。作为发展手段的自由,按照森的分类有五种;1,政治自由。2;经济机会。3;社会机会。4;透明性保证。5;保护性障碍。(自己论述五种分类方法) 将自由作为发展的手段提出来意味着自由不仅仅理解为最终实现的目标,而且要求在发展过程中实现五个方面的自由,从自由中产生发展的能力。经济发展过程应该被看做是人们权利发展的过程。 赠送补充:千年发展目标,联合国确定了8项发展目标,这8项目标的实现情况却是喜忧参半,它与收入水平和经济增长密切相关。低收入国家全面实现这些目标存在很大的困难,中等收入国家和经济增长较快的国家实现起来相对容易。这说明要实现人类的发展,首先还是要有经济基础,没有经济基础,其他目标也是难以达到。 索洛模型与哈德罗—罗马增长模型 实在不好整理,具体请见武大出版社郭熙保的书P38-P41 3.哈罗德多马模型的基本公式及含义 ? I (t ) = S (t ) ? K (t+1)=(1-δ)K(t) +I(t) ? S (t ) = s Y (t ) ? K (t)= θ Y(t) ? θ Y (t+1)=(1-δ) θ Y (t) + s Y (t ) ? g=国民收入增长率=储蓄倾向除以资本-产出比,再减去资本存量折旧率。 ? 4.新古典增长模型的基本方程式及含义 ? Y=F (K,L )= K α L 1-α 其中0<α<1 ? 方程两边同除以L ,即得到一个人均生产函数 y=k α ? 公式中,y=Y/L, k=K/L 。因为假定α<1,即资本边际报酬递减。 产出是资本的增函 数,但以递减的比率增加。 ? K sY dK ?=-;/n L L =?;()k sy n d k ?=-+ (1)()()Y t Y t s g Y t δθ+-==-

区域经济学知识点总结

区域经济学 第一二章 1.基本概念:区域、区域经济、区域经济学 区域:区域经济学的研究对象 区域是区域经济学研究的起点。它是一个多维度、多层次的概念,对其进行界定或定义,需要从地理学、政治学、经济学等多学科的角度出发。 地理学的区域概念:地理学时最早提出区域概念的学科。为了便于考查,地理学把地球空间按照其相互关系进行分类,或者是区分,并用一定的事先设定的法则,将其划分为各种区域,诸如海洋区、陆地区、高原区,平原区、丘陵区等等。由于每一类区域不同的特征以及温度、降雨和生物物种分布等的巨大差异,使每一个区域的内容更加丰富和更多样化。 地理学对区域研究的贡献,是把区域定义为地球表面的一个地域单元。 政治学的区域概念:政治学是从行政管理的角度去观察和分析各种不同的地点,根据人口居民点和社会经济活动的位置及分布状况,划分系统的地方单元。政治学中的区域不但表示地理区域的概念,而且还包含地方公民间的文化联结、惯例认同、心理归属、民族历史、社会经济关系等意义。 政治学对区域研究的贡献,是把区域定义为行政管理的一个地方单元。 社会、文化区域:根据人类社会活动的特征,在人口、民族、宗教、语言、

政治等因素交互影响下而产生的附加在自然景观上的“人类活动形态”——文化景观特定性质的相似性和差异性而划分出来的地域单元,如华人文化圈、东方文化圈、穆斯林文化圈等; 经济学的区域概念:经济学的区域概念就是区域经济学的区域概念。经济学的区域是在地理学和政治学关于区域概念的基础上,考虑某个地域空间的人口、经济、资源、环境、公共设施和行政管理的特点,是居民高度认同、地域完整、功能明确、内聚力强大的地域单元。 它一般以两种形式存在:同质区域和极化区域。 区域的特征:内在整体性、空间界线的客观性与模糊性 区域经济:区域的经济活动和经济关系的总和。 如果我们把全国的国民经济看做是一个整体,那么区域经济就是整体的一部分,是国民经济整体不断分解的结果。 区域经济的特点包括: 区域性——区域经济最根本的特点 非均衡性 阶段性和连续性 开放性

发展经济学考试重点

1.比较经济增长和经济发展之间的区别和联系? 经济增长:是一个国家生产的产品和劳务总量的增加,它可以是投入的生产要素增加所致,也可以是投入要素的效率提高。经济发展:除了人均收入增长以外,还要包括经济结构,社会制度结构,文化法律结构的根本变化。 经济发展离不开经济增长,经济发展是经济增长的结果,经济增长是促进经济发展的手段,经济增长决定着经济发展的基本动力,是经济发展的首要物质条件,经济发展必须建立在持续、健康、和谐的经济增长的基础上,经济增长构成了经济发展的必要条件,但不是充分条件,经济发展包涵经济增长,但经济增长不一定包涵经济发展,单纯追求经济增长,相伴随的是不断涌现的一些社会问题,导致“无发展的增长”出现,经济发展要比经济增长有着更广的外延。 2.什么是发展经济学?发展经济学研究的主要内容和研究方法是什么?发展经济学的基本任务和特点如何? 含义:发展经济学是研究发展中国家经济发展问题的学科,或者说是研究发展中国家从经济不发达状态向经济发达状态演化的条件和规律的学科,是发展中国家制定发展战略的基本科学依据。 主要内容:发展中国家实现工业化和现代化过程;发展中国家经济增长和经济发展的条件、路径;发展中国家经济社会结构的转换过程、结构变化内在规律和发展因素各种内在关系;发展中国家经济发展趋势、发展战略等。 研究方法:(1)发展经济学主要考察系统不均衡的形态、形成原因及变化趋势和原理,是动态角度(2)侧重结构分析(3)侧重于制度分析方法(4)较多的应用经验、比较和模型分析方法(5)重视发展战略和政策研究。 任务:研究分析经济发展的一般条件和特殊国情,揭示经济发展的一般规律和趋势,指导制定科学的发展思路、发展战略和有关的发展政策,进行科学的投资决策;在长期发展过程中成本最小、时间最短、最节约稀缺资源地完成从经济不发达到经济发达的过渡,即实现整个社会经济结构的转型。 特点:(1)更注重长期的动态的经济发展过程(2)更注重国际经济的比较研究(3)更注重发展中国家经济的一般规律和具体国家的特殊性。 3发展中国家有那些基本特征?为什么说中国仍然是发展中国家? (1)生活水平低下(2)生产率水平低下(3)人口增长率高和赡养负担沉重(4)失业率高(5)对农业生产的严重依赖(6)城乡、地区发展不平衡突出(7)不发达市场经济是发展中国家的本质特征(8)对国际经济的依赖、受支配和脆弱的地位 中国的人口多、底子薄,人均GDP在世界上的名次较低;城乡和区域发展不平衡,农村人口占总人口的比重较高,城市化水平仍然偏低;产业结构不尽合理,仍处于全球产业链的低端。同时,社会领域的发展也比较滞后,教育、文化、卫生等领域与发达国家还存在很大的差距。 4.根据我国目前经济发展状况,你认为我们应该从哪几方面推进改革、转变经济发展方式? 十八大报告明确提出了全面建成小康社会和全面深化改革开放的目标,提出了加快完善社会主义市场经济体制和加快转变经济发展方式的任务。这“两个全面”、“两个加快”,体现了发展、改革、转变的有机结合,是我国现代化建设进入新阶段的新要求。首先,发展必须转变。我国经济总量已居世界前列,但经济发展付出的代价较大,粗放的增长方式已经到了非转不可的时候。转方式是发展的必由之路。其次,转变必须改革。体制机制不合理是制约转方式的最大障碍,转方式必须深化改革开放。改革开放30多年来我国发展取得巨大成就,靠的是改革开放;现在转方式、促发展,还要靠改革开放。第三,改革未有穷期。我们已进入转方式的关键期、发展的转型期和改革的深水区。在这个阶段上,改革的诉求与期待增多,改革的难度和复杂性加大,但改革的空间和潜力依然很大。具体来说可以从以下六

发展经济学第二版的知识点总结精华共20页

一发展经济学演变阶段及特点(了解一下) 第一阶段,大致从20世纪40年代到20世纪60年代中期。这一时期发展经济学发展的特点可以用惟资本化、惟计划化和惟工业化来概括。 第二阶段,从20世纪60年代中期到20世纪70年代末。由于在第一阶段极力推行工业化政策,农业和农村地区的发展没有得到应有的重视,所以发展中国家虽然在工业化方面取得了一些进展,但也付出了很大代价,即许多发展中国家的农业和农村地区的发展处于停滞状态,发展中国家的城市也人满为患。 第三阶段,从20世纪70年代中期到20世纪80年代中期。在这一阶段,出现新古典主义的、鼓吹自由市场经济力量的经济理论和政策。在理论方面,出现了供给经济学。在政策方面,出现了鼓吹在发达国家实行国有企业私有化,在发展中国家实行私有化、非计划化和减少政府干预的潮流。 第四阶段,从20世纪80年代中期到90年代。随着高新技术的发展,国际贸易和国际分工获得了空前的发展,世界经济日益国际化、全球化。在世界范围内,出现了以电子计算机和互联网络为代表的高新技术竞争体系。在这种高新技术竞争体系下,世界生产力获得了前所未有的提高。但是在高新技术领域中,发展中国家却没有获得相应的发展,发展中国家与发达国家在高新技术领域上的差距扩大了。 第五阶段,从20世纪90年代末到21世纪初。那些按照新自由主义经济思潮进行经济改革和经济发展的国家却遭受严重的失败,从而使新自由主义经济思潮在人们的心目中大打折扣。 线性阶段理论(有哪些阶段及每个阶段的特点) 1.传统社会阶段。 特点是:(1)经济处于原始状态。

(2)没有现代科学技术,赖以生存的产业以农业为主。 (3)社会结构僵化,阻碍经济变革。 (4)整个社会生产力低下,人均收入仅能够维持生存。 2 .为起飞创造条件阶段。 特点是:(1)新的科学技术正在应用于农业和工业。 (2)金融机构开始出现。 (3)交通运输状况得到很大改进。 (4)商业范围扩大。 (5)新的生产方法开始出现。 3.起飞阶段——最关键的阶段 特点是:(1)农业劳动生产率提高。 (2)农业中的劳动力从农业部门向工业部门转移。 (3)人均产值大幅度提高 4 .向成熟推进阶段 特点是:(1)新投资维持在相当高的水平。 (2)经济在世界贸易中的地位和作用得到加强。 (3)人均国民生产总值持续增长。 5. 高额群众消费阶段。 特点是:(1)主导部门已经转移到耐用消费品的生产部门和服务业。 (2)技术工人在劳动力中的百分比和城市居民在总人口中的百分比呈上升趋势。 (3)社会福利和保障事业得到深入发展

(完整word版)发展经济学复习材料

名词解释4分x5题=20,简答5分x4题=20,计算与说明5分x6题=30,论述15分x2题=30 一.名词解释 短缺点 全要素生产率 发展极 线性发展阶段论 刘易斯拐点 新型工业化 金融深化 货币化率 黄金律稳态 二元经济 循环积累因果机制 刘易斯拐点 初始利益棘轮效应 二.简答题 不发达经济体的共性 新古典增长模型关于资本积累、人口增长和技术进步的主要观点。 世界反贫困战略有哪几种。 贫困的恶性循环机制 库兹涅茨对经济增长与收入分配间的倒U理论假说及其成因 大推进理论的主要内容 简述哈罗德-多马模型的内容及其优缺点 简述罗斯托经济发展阶段论的主体内容。 工业化与城市化互动发展的主要理论学说及其机制 简述拉尼斯-费景汉模型的内容框架 希克斯中性技术进步的主要内容 简述我国目前金融市场发育的现状和推进金融市场深化的主要步骤 简述经济全球化对宏观发展的推动作用 贫困的恶性循环机制 戈德史密斯金融结构的评价指标 托达罗模型的经济思想与主要内容 计算和说明 1.存在某一经济,其产出总量为Y,且服从储蓄等于投资的凯恩斯宏观均衡。假定技术不变、储蓄率s、资本/产出比率θ、折旧率δ、人口增长率n。1),根据哈罗德-多马模型,推导该经济的增长率g与上述经济参数的关系。

答:Y dY g =,Y S s =,I S = dY dK Y K ==θ,k nk I dk δ--= 解得,n s g --=δθ 2)假定该经济体进入人口老龄化期间,人口增长率为-0.1%,折旧率为0.5%,为保证增长率维持在3-5%的平稳区间,则储蓄率s 与资本/产出比率θ的比值应保持在什么水平。 答:3.4-5.4% 2. 考虑一个二元经济(如下图),OL 表示总人口,A MP 和I MP 分别是传统产业和现代产业的边际生产率。其中,现代产业的制度工资是LN ,传统产业的制度工资是OC 。根据二元结构转化的有关模型回答下列问题: 1) 现代产业的就业规模如何确定,并用图中记号标明 答:在制度保障下,执行工资LN ,就业规模为HL 。 2) 传统产业的就业规模如何确定,并用图中记号标明 答:FH 处人口被迫在传统产业中就业,工资率降到很低,就业人口为OG 。 3) 此时是否存在剩余劳动力,如果存在,请予标明;如不存在,请说明原因。 答:增加人口数,传统产业边际收益为0,存在剩余劳动力GH 。 4) 理论上现代部门可用于扩大再生产的投资为多少。 答:KNP S 论述题【大部分都是上网查新闻凑出来的,不要见怪】 1. 工业化、城市化与新型城镇化战略对我国经济当前及未来发展的作用机制。 答:(1)当前:①工业化是科学技术转化为生产力的重要过程。②工业化使一切非工业生产方式转化为工业生产方式。③工业化不仅包括工业本身的机械化和现代化,也包括农业的机械化与现代化。④工业化的实质是高效率的工业部门比

发展经济学知识总结(马春文高等教育出版社)

导言 1、发展中国家的定义:也称作开发中国家、欠发达国家,指经济、技术、人民生活水平较 低的国家,与发达国家相对。 2、发展中国家的界定:详见书P4 3、发展中国家的特点: (1)人均收入水平低 (2)生活水平低(贫困,教育,卫生医疗) (3)高出生率和高赡养负担 (4)较严重的劳动力不得其用的现象(15-24岁的劳动力失业率为30%) (5)发展不平衡,对农业生产和初级产品的高度依赖 (6)发展中国家在国际关系中处于受支配、依附和脆弱的地位 4、购买力评价法 购买力平价理论是由瑞典经济学家卡塞尔提出来的,即两国间的货币交换,实际上是两国间货币购买力的一种对比关系。在经济学上,是一种根据各国不同的价格水平计算出来的货币之间的等值系数,以对各国的国内生产总值进行合理比较。 购买力平价法就是通过一系列统计计算,找到两国间货币购买力的实际对比关系,而不是汇率所表示的对比关系。 思考题 1、中国具有的发展中国家的共同特征? ①我国的经济发展不是非常的均衡,在一些地方会有生活水平低、贫困现象严重这一特征 ②在我国的有些经济不甚发达的地区,工业化和城市化的水平仍比较低。 ③在我国仍处于二元经济结构,对农业生产和初级产品高度依赖 ④我国存在着人口问题严重这一特征,劳动力不得其用,高出生率与高赡养负担 ⑤在我国的部分地区存在市场欠发达的特征。 2、结合当前情况,分析作为发展中国家,中国在经济发展中的有利和不利因素? 有利: 国内宏观经济环境继续保持有利条件。 我国有着充足的劳动力,其中不乏优质人才。 我国有着充足的自然资源。 地域广阔,气候带多样,利于发展多样化的农业。 不利: 部分地区市场欠发达。 有些地方比较贫困。 人口基数大,人口素质偏低,教育投资低 人均资源拥有量少,缺乏先进的节能技术,资源储量不容乐观。 二元经济结构 工业化和城市化

2019年自学考试《发展经济学》知识点整理(3)

2019年自学考试《发展经济学》知识点整理(3) 1、发展中国家的税收的种类: (1)直接税; 主要是由个人或公司所得税、财产税、社会保障税等税种所组成的。的特点:直接以纳税人作为对象来实行征收。主要是按照人头来征税。所以原则上不能转嫁税负,比如个人所得税。 (2)间接税; 主要是由营业税、商品销售税和其它税种共同组成的。它主要是对商品或劳务的买卖的流转额作为课征的对象。它的特点是能够实行转嫁。如营业税、商品税 (3)关税; 主要是指在开放经济条件下,在当前地区经济、世界经济一体化条件下,各个国家之间的关系越来越密切,从事了大量的国际贸易活动,由此产生关税。一般是对于进口产品所征收的税种。 关税的征收可从两个方面: (1)它可按照所进口的商品的数量——从量税 (2)可从价值角度——从价税 2、发展中国家税收结构的特点: (1)在发展中国家的税收中,直接税比重比较低; 根据教材中图表看出,随着人均收入水平的提升,所得税在各种税收中的份额逐步上升。在人均收入比较高的国家,所得税的比重也比较大。在发达国家,所得税是政府税收的主要税种。有些发达国家的直接税的比重甚至高达90%,与此相比,发展中国家的直接税的比重只占了30%左右。特别是最不发达的国家中,所得税的比重最低。社会

保障税的比重在最不发达国家中更是低的可怜,只占总收入的1、6%. 所以,能够预期,随着发展中国家的经济发展,人均收入水平提升, 直接税的比重可能会随之增长,所以直接税所包括的各种税是发展中 国家需要增强的主要税种。 (2)发展中国家对关税收入的依赖比较明显; 关税收入,包括对进口和出口商品和劳务所征收的关税和规费收 入在发展中国家的税收收入中占有重要的地位。在最不发达国家组中,关税收入占所有收入的41、6%,而在工业化国家组中,关税收入只占3、7%.进口税的比重与一个国家经济的开放水准密切相关。对外贸易 发达、经济开放水准高的国家进口税的比重自然比较高。但是,发展 中国家关税收入高的原因主要是因为,关税收入是一些发展中国家所 能够征收到的主要是税收收入。对一些发展中国家的政府来说,进出 口业务是主要的经济活动,政府的税收收入自然集中在关税收入上。 但是与发达国家关税收入的比重比较,能够想见,随着发展中国家的 经济发展,征税水平逐步提升,国内税收征收和管理逐步走上正轨以后,关税收入的比重会逐步降低,而国内其他税种的比重可望上升。 (3)间接税是发展中国家税收收入的主要来源; 在发展中国家中,通过税收来提升储蓄率的潜力很大,但实际情 况却并非如此。这是因为,一方面,从直接税的角度来说,绝绝大部 分经济主体的收入水平都太低,因而不在课征的范围之内。另一方面,发展中国家的经济尚处在发展的初级阶段,很多发展中国家的工人和 农民所从事的仍然是那种仅能维持生存的传统经济活动。当经济规模 狭小,人口十分分散,绝大部分劳动者仅仅在为糊口而实行生产时, 确定和测量税基、课征和积聚税收收入都是十分不易的。所以,在收 入水平低、管理和征收税收收入水平都很低的情况下,发展中国家要 提升税收水平主要是依靠间接税。 3、发展中国家税收的特点:

精选-发展经济学期末复习资料

1 发展经济学复习资料 根据老师所划重点制作的精简版仅作为进行教材复习时的参考资料, 祝大家顺利通过考试! 考试题型: 一、名词解释5×6’ 二、简答题4×10’ 三、论述题2×30’ 说明:1、不考模型2、边看书边补充,资料有局限性。 一、第1、2章综合(名词解释) 李约瑟之谜:即中国古代的科学技术已经相对十分发达,为什么工业革命没有发生在中国?该问题的回答可以分为两个方面:1、为何工业革命发生在欧洲?2、为何工业革命没有发生在中国?至今尚无定论。 马尔萨斯陷阱:如果一个国家人口的增长速度超过了这个国家经济增长的速度,那么这个国家仅仅是经济总量的增加,而居民的平均社会福利水平却是在下降,这种经济总量的增加与平均社会福利下降同时出现的现象 人口转型:指人口生育率、死亡率和人口结构的变化。分为三个阶段:第一阶段高出生率、高死亡率、低人口增长率;第二阶段高出生率、低死亡率、高人口增长率;第三阶段低出生率、低死亡率、低人口增长率 人口红利:针对第二阶段后半段,这个阶段劳动人口相对于被抚养的人口更丰裕,从而可能有利于经济增长。 二、第三章、农业与经济发展(大题) (一)农业对经济发展的贡献? 答:1、保障粮食供给2、提供就业3、缓解贫困4、促进劳动力转移和工业化进程。(二)农业在国民经济中下降的原因? 答:两个方面:从供给方面,现代农业的进步率高于制造业和服务业。技术进步的实质是单位产品的成本下降,因此,在其他条件不变的情况下,技术进步较快的产业的相对价格会降低。这样劳动力将转移到技术进步率较低但相对价格较高的产业;从需求方面,农产品主要是食品这样的必需品,而必需品的弹性小于1,故但收入增加时,越来越多的收入份额会用到非食物产品上,从而降低了食品消费占经济总消费的比例,进而导致农业在国民经济总量中的份额不断下降。 (三)对农业的过度汲取及其后果? 答:对农业的过度汲取表现为:实行统购统销和人民公社,形成农产品价格上的剪刀差,用于工业的积累。 后果体现为三个方面:首先农业生产效率的严重下降;其次农民被固着在土地上,农村开始呈现完全等同于农业的态势;最后是城市农产品供应空前紧张。 我们能逃避的只是逃避的本身—卡夫卡; 我们所恐惧的只是恐惧的本身—罗斯福

发展经济学小论文!!!

《发展经济学——从贫困到富裕》评述 简介:本文是对速水佑次郎和神门善久的《发展经济学—从贫困到富裕》一书的评述。 关键词:发展中国家 脱贫 技术进步 制度机制 一、 主要内容介绍及该书的组织 发展经济学的主要任务是探索发展中国家摆脱贫困的可能性,它着重研究贫困特别严重的低收入发展中国家。当今世界上的低收入经济体如何才能进入经济持续发展的轨道,实现脱贫减困的近期目标和赶上富有的发达经济体的长期目标呢?发展经济学的最终目标就是获得这一问题的答案。这也是发展中经济的视野——脱贫减困,实现经济可持续发展。 当今世界是以国家之间非常大的收入不平等为特征的。通过经济发展摆脱贫困和苦难是低收入国家的共同目标。而本书也旨在阐述发展中国家在新千年面临的新问题,重点探讨低收入国家追赶高收入经济体的发展问题。该书基本围绕着“提出问题——分析问题——解决问题——总结问题”的思路构思,具体组织如下: 第一章 经济发展的理论框架 第一章旨在建立全书的理论框架。按照这个理论框架,社会体制的发展是经济子系统和文化——制度子系统辩证的相互作用的过程。在本书中,考察的是消除当今世界上低收入的发展中国家和高收入的发达国家之间极大的人均收入差距所需的经济发展,如果不考察社会组织和人的价值体系必不可少的重大变化,是无法领悟如此广泛的经济增长的。理解经济变量(诸如资本和劳动力)数量扩张与文化、制度相互作用进而产生出一种有利于人均收入增长的社会制度的过程,应该是发展经济学的最终目标。作为达到该目标的第一步,这章提出了一种分析经济、文化和制度变化之间的复杂关系的理论框架。 文化——制度 子系统 经济子系统 上图即是一个有关社会体制发展的广义的概念性框架。该图是阐述社会体制如何在经济和文化——制度变量之间辩证的相互作用的过程中演进的模型。 之后本章又阐述了经济增长来源于三方面的因素:生产要素的增加、技术进步和效率提高。第三节用这种理论框架观察发展中经济,指出,当今发展中国家的主要问题是资源禀赋(人口爆炸性增长,土地资源稀缺性加剧)和技术变化的速度缓慢,即所谓的“提出问题”。进而提出其核心思想,发展中国家和发达国家在技术和制度上存在巨大的差距,但这些差距同时可能是发展中国家经济文化 (价值系统) 制度 (规则) 资源 (生产要素) 技术 (生产函数)

发展经济学学习总结

发展经济学学习总结 斗转星移,这学期发展经济学的学习课程结束了,这门课程的学习使我从中受益匪浅,它有助于我们了解这个世界,有助于我们认识经济问题,更有助于其他学科的学习。虽然课程结束了,但是我想这也是我们学习经济、学习中国经济发展的开始。这门课是我们进入了经济学世界钥匙,带领我们进入了知识的海洋。 所谓发展经济学,是二十世纪40年代后期,在西方国家逐步形成的一门综合性经济学分支学科,它以发展中国家的经济发展为主要研究对象。发展经济学的主流是新古典学派,其依据的基本思想是传统庸俗经济学,和以马歇尔为代表的新古典学派的思想。他们认为发展是渐进的、连续的、累积的过程,这种过程是通过边际调节来实现的;发展是和谐的、平稳的过程,是以自动的均衡机制为基础的;继续发展是可能的,其前景是令人乐观的。 生活中随处可见的一些问题都可以用发展经济学的观点进行分析,例如这样一个很热问题:为什么在城市失业率不断上升的情况下,农村到城市的流动人口仍然增加?学完了这门课程,我已经可以运用发展经济学中的一些经济理论解释这一问题了。人口迁移是一种有意识的行为,人们之所以愿意从一个地区迁到另一个地区,其基本原因就在于不同地区生存环境的差异(如不同地区的人口和生活资料在数量上的不平衡),这种地区间生存环境的差异,是多种环境因素作用造成的:自然环境因素、社会经济因素。自然环境因素是人类赖以生存和发展的条件,是影响人口迁移及空间分布的重要因素.影响人口迁移的各种自然环境因素中,气候,土壤,水和矿产资源等是最主要的.经济因素对人口迁移是主要的,是经常起作用的因素,是引起自发性人口迁移的最根本原因。经济越发展,人口在地区之间的迁移就越明显地受经济条件的制约.在多数情况下,人们迁移往往是为了追求更好的就业机会和更高的经济收入,从而能有更高的生活水平.古往今来的人口迁移,均是如此.当前,在广大发展中国家中规模巨大的由农村到城市的人口迁移更是如此.因此从宏观上看,经济布局的改变也会造成大量的人口迁移. 发展中国家农村人口向城市迁移的直接原因,在于农村人口在其生产和生活中面临着许多问题:农村地区和农业的低收入.由于国家重视不足,农民收入水平低下,引起了各项社会 经济发展的不足和生活条件的恶化.这是农民外迁的直接原因;农业的高失业率.由于农业生产对土地等生产资料的依赖性大,农业的就业容量增长潜力有限.在人口急剧膨胀的今天,广大发展中国家普遍面临农业失业率过高的压力,形成农村贫困,农民纷纷外迁,以寻求更多的就业机会,这是外迁的重要原因;土地的分散经营和土地及其他生产资料分配不公平,也是引起农民大量外迁的重要原因之一.经营的分散,不利于提高收益,使原本很低的农业收入更难提高;而生产资料的分配不 公平,在一部分人可以发财的同时,使很多人失去了生存和发展的基本条件,而不 得不外迁.当然上述原因不能截然分开,是相互联系,互为因果,互相强化的. 起初学习这门课让我对发展经济学的体系感觉不是那么深刻,后来经过老师的教导与自学,我对于该学科整体的体系有了一个完整的认识。总体来说,学习这门课程应该理论与实践相结合,学习到了书中的理论更应运用于现实生活中的经济学问题中,并尽量用我们说学到的经济理论解释它、分析它,这样这门课程才能发挥到它的最大意义和价值。 学习这门课的日子像溪水一样匆匆流过了,老师所讲的知识面涉及的很广,而且可以让我们很容易理解,希望这门课以后可以涉及更多的有关中国经济中的问题,让我们可以在学习中了解中国的经济、世界的经济。在教学手段上,传统

相关主题