发表于: 2017-08-13 00:11:58

1 1047


今天完成的事情: 步骤25-29


把之前的项目和spring整合,现在的项目结构(main是批量添加数据用的)

需要导入的库:spring,mybatis(单另下载mybatis-spring-1.3.1.jar放到里面),junit


解决完代码红叉第一下运行测试报错org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource' defined in class path resource,百度解决方法:

在pom.xml中添加

<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>


后面报错java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;,这是mybatis-spring包版本不对,我把之前从网上项目拷来的1.2.2版本删掉重新下载的1.3.1版本导入。


步骤25测试一下不关闭连接池的时候,在Main函数里写1000个循环调用会出现什么情况。

使用前面的main类,for循环插入1000条,代码:

public class MyMainTest

{

public static void main(String[] args) 

 {

// 初始化Spring容器

ApplicationContext applicationContext= new ClassPathXmlApplicationContext("classpath:spring/application-context.xml");

int a = 0;

long startTime = System.currentTimeMillis();    //获取开始时间

for(int i=1;i<=1000;i++)

  { a = i;

        // 获得代理对象

        UserMapper userMapper = applicationContext.getBean(UserMapper.class);

        

User user = new User();

        user.setName("李小"+i);

        user.setQq(00000000+i);

        user.settype("前端工程师");

        user.settime(20170708);

        user.setGraduate_School("北京天天蓝大学天天玩技术学院");

        user.setstudent_number(i);

        user.setDaily_link("http:www.jnshu.com");

        user.sethope("如果我不能在IT特训营拼尽全力,为自己以后的修行路上打好基础,就让我变胖2斤!");

        user.setteacher("任我行");

        user.setknow_from("知乎");

        user.setcreate_at(20170808);

        user.setupdate_at(20170808);

        

        userMapper.insertUser(user);

  }

long endTime = System.currentTimeMillis();    //获取结束时间

System.out.println("插入"+a+"条数据");

System.out.println("程序运行时间:" + (endTime - startTime) + "ms");    //输出程序运行时间

 }

}

结果:



步骤26测试一下连接DB中断后TryCatch是否能正常处理。

连接DB中断,我就把配置文件数据库密码改成了错的,运行测试,5个方法全都通过,控制台刷出一堆报错,能正常处理。


步骤27检查一下自己的代码是否符合规范,如果DB的表格有改动,应该改哪些内容,需要多久。

(1)表格增加一列:修改User.java增加一个添加一组getset方法,修改UserMapper.xml增和改都添加一项,修改UserMapperTest.java增和改都添加一项。

(2)表格减少或加减多列:对应(1)增加减少。

(3)表格列名修改:User.java对应修改,UserMapper.xml,UserMapperTest.java的增和改对应修改,如果改变的是查询方法对应条件,UserMapper.xml,UserMapperTest.java的查询额外对应修改。

(4)表名修改:UserMapper.xml里sql语句对应修改。

就写这些吧。。。


步骤28数据库里插入100万条数据,对比建索引和不建索引的效率查别。再插入3000万条数据,然后是2亿条,别说话,用心去感受数据库的性能。

只做了一次性插入100万条,两次一次28秒一次30秒,3000W就要15分钟了,就没做。

所以现在数据库里有250W+条数据

无索引查询

有索引查询



步骤29,将自己的收获和经验总结,写在日报里,标明是任务小结,写的好的话,可能会被采纳当成任务攻略。

通过任务学会了很多技术,虽然掌握不是很深,但是很实用,比如mysql操作,各种客户端(eclipse,shell,xftp,navicat),配置(mysql,jdk,maven),还有DAO,spring,mybatis。唉,不会写这种总结,就这样吧。

明天计划的事情: 上传链接,任务一收尾,开始任务二
遇到的问题:没啥了。
收获:批量插入数据库。。。。


返回列表 返回列表
评论

    分享到