发表于: 2018-03-07 21:02:43
3 535
今天完成的事情:
1.学习了log4j日志。初步了解日志类配置文件
一篇很详细的关于日志配置文件的博客:http://blog.csdn.net/u011781521/article/details/55002553
(后面看到师兄的代码,发现我对日志的理解太浅薄,代码写的也垃圾。)常看,常查,常反思
2.折腾了半天,整好了CentOs系统,安装了MySql数据库。
初识Linux:
How to Install MySQL on CentOS 7?
从 CentOS 7 系统开始,MariaDB 成为 yum 源中默认的数据库安装包。在 CentOS 7 及以上的系统中使用 yum 安装 MySQL 包将无法使用 MySQL。
您可以选择使用完全兼容的 MariaDB,或点击https://www.linode.com/docs/databases/mysql/how-to-install-mysql-on-centos-7/进行较低版本的 MySQL 的安装。
安装成功mysql5.6.39 MariaDB是mysql之父在sun公司收购mysql之后,重新写的数据库,完全继承并拓展mysql。觉得麻烦的话,其实可以直接通过装yun源安装MariaDB数据库
3.学习了配置druid数据库
分别用普通mybatis和开启了druid链接池的mybatis向数据库里面插入1000条数据
4.测试一下连接DB中断后TryCatch是否能正常处理。
这句话我不明白要做什么。断开连接后,是不能执行sql语句的。
这里后来想起来我是可以手动在try里面关闭链接的,同样也可以取到statement对象,执行sql语句。
mybatis在关闭链接之后,再次执行sql语句,会出现上图所示的异常。
5.下载安装git,在idea中集成git
git入门user.name和user.email的配置
$ git config --list 可以查看配置的一些东西。可以看到user.name 和user.email 分别是什么
如果你没有初始化过。那么直接:
$ git config --global user.name "输入你的用户名"
$ git config --global user.email "输入你的邮箱"
如果你已经初始化过了,但是不小心把邮箱和用户名输错了,那么就要修改了。
$ git config --global --replace-all user.email "输入你的邮箱"
$ git config --global --replace-all user.name "输入你的用户名"
再说说git bash和git cmd的区别。简单一句话,git cmd是git bash的子集,所以直接用git bash就行了。 然后git gui是图形界面。
以下内容来自网络:
shell是linux、unix系统的外壳,也可以理解为命令行,就是你输入并执行命令的地方,git通过命令行和图形界面两种方式使用shell。
bash是shell的一种,最常用的shell之一。
git Bash方便你在windows下使用git命令的模拟终端(windows自带的cmd功能太弱)linux、unix可以直接使用git。
git shell它是安装了git的shell,bash是一种shell。
遇到的问题:
1. org.apache.ibatis.exceptions.PersistenceException:
### Error building SqlSession.
### Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.
Cause: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 6; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。
原因:因为在mybatis-config.xml配置文件最前面加了注释。
解决方法:规范的XML格式!<?xml version="1.0" encoding="UTF-8"?> 必须是XML文件的第一个元素且前面不能空格。
2.Cause: java.lang.IllegalArgumentException: add is ambiguous in Mapped Statements collection
因为循环插入1000次是在user表进行的,userDao和StudentDao都有add方法,方法冲突。在调用方法时,前面附加包名.类名.方法名
(Student属性过多,测试类写起来很繁琐,就新建了一个只有三个属性的user类,来进行1000次插入测试)
3. 建表时最好给主键设置默认值,这样插入的时候就可以省略主键列(自增)
主键自增,在1000次插入的时候,设置默认值之后,1000次插入语句就可以忽略主键列
收获:
1.
一条SQL语句后连接数据库的Connection必须要关闭吗?
建议执行完一次数据库操作,就关闭数据库资源。频繁的话,可以考虑数据库连接池
由连接池初始化一定数量的连接,每次程序跟连接池打交道,不直接跟数据库打交道,这样节省资源
可以不关闭接着访问一条SQL吗?
可以,但是先关闭掉上次访问数据库的资源(诸如resultset和statement之类的)
获取一个connection后,每次产生一个Statement,都相当于产生一个游标,每次操作完,便要关闭该statement
否则,如果一直只向数据库索取连接,但不关闭的话,那么数据库的statement连接耗尽时,便会抛出,游标超出最大数量的异常 ORA-01000: maximum open cursors exceeded
2.如何手写一个最简单的数据库连接池?
最简单的线程池:
1.一次性创建10条数据库链接(connnction)存入一个LinkedList集合
2.要使用链接时,就调用removeFirst(),取出第一个链接使用
3.实现Connection接口,自己的链接池。重写close(),使用完不是关闭链接,而是将链接添加到集合
明日计划:
22.买一台服务器,阿里云或者是金山云都可以。部署数据库到远程DB,从本地直接连远程。
23.将部署自己服务到服务器上,包括Maven,Mysql客户端等。直接用Maven命令跑单元测试。
24.直接执行Main方法,去在服务器上跑通流程。
然后回头写main(),CURD
评论