发表于: 2018-03-07 21:02:43

3 537


今天完成的事情:

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




返回列表 返回列表
评论

    分享到