发表于: 2017-10-07 23:20:53

1 693


今天完成的事情:今天没干啥事,就是把这几天写的几个项目拿过来,总结整理了一下思路

其实任务一就jdbc,jdbcTemplate,mybatis,spring+mybatis这四个项目

这四个项目其实就作用于dao层.也符合任务一,任务二各自的任务要求,任务一学习如何从数据库取数据,任务二学习怎么把取到的数据传出去.

dao层的作用无非就是要解决两个问题,一,连接数据库,二,对数据库进行操作.所以,四个项目只是提供了四种解决这两个问题的办法.

那么他们是怎么解决这两个问题的呢.

首先看jdbc:jdbc是最基础的,其他三种只是不同方式对jdbc进行封装优化而已.

1.对于连接数据库,jdbc是写了一个专门来连接数据库的DBUtil工具类,它将driver,url,user,password三个连接数据库最基本的信息写好,然后用Class.forName(driver)的方法加载mysql数据库连接驱动,然后将url,user,password三个充当参数传入DriverManager.getConnection(url,user,password)获取连接conn.//这里解释一下,因为数据库连接听起来太抽象了,所以我们将数据库连接这么一个状态实体化,将他看成一个对象,代码上来看我只要取到这个对象,就代表着我已经连接上了数据库,这也符合java"万物皆对象"的理念吧.//然后对于数据库连接来说,我们连接了数据库,就要有方法去关闭数据库连接,所以我们要在DBUtil写一个关闭数据库连接的方法.closeAll().

2.对于实现对数据库的操作,其实四种方法都一样,看上去是dao类去操作数据库,其实从根上是implatement或者mapper去实现dao类从而操作的数据库,所以我们重点看实现类.为了实现dao层写了一个impl实现类.首先写一句String 类型的sql语句,需要导入参数的地方用问号替代.然后调用DBUtil的个体Connection方法取得数据库的连接.然后使用preparementstatement方法将sql语句预编译,然后向sql语句里传入参数.executeupdate方法去执行sql语句.操作完成,然后调用closeAll()方法关闭数据库.插入数据库数据操作完成.

现在我们来看mybatis

mybatis相对于jdbc,非常简便,精简了jdbc90%的代码量,因为它连接数据库,和对数据库进行操作都是通过配置文件来实现的,一来减少的代码量,二是方便修改

1.mybatis是配置了一个mapper映射jdbc的实现类.实现使用<namespace属性和这个mapper文件映射的dao文件进行绑定,然后假如你的数据库表字段和你实现类的属性名不一样,那么需要使用<resultmap标签将属性和字段进行映射.然后接下来就是写各种映射语句,没什么,都是套路.

2.mybatis连接数据库用到了连接工厂的概念.其实它就是建了一个连接容器,我上面说过,我们将连接数据库这个很抽象的东西实体话,我们将数据库练接这个状态想象成一个小球,名字叫sqlSession,然后我们建立一个名字叫sqlSessionFactory的罐子,我们在项目一开始运行,二话不说,先直接创建很多小球放进罐子里,但我们要对数据库进行操作时,就从罐子里面拿小球,只要我们拿到这个小球就代表这我们和数据库已经连接上了.所以代码就很容易理解了,首先mybatis先将连接数据库的基本信息存入他的config.xml文件中,然后通过getResourceAsReader方法读取配置文件,然后使用sqlSessionFactoryBuilder创建一个sqlSessionFactory容器,当要连接数据库时,使用openSession方法从容器里拿一个sqlSession就代表着数据库连接数据库了,然后使用session.getMapper方法取得dao的代理类的对象,然后就可以调用方法对数据库进行操作了.然后操作结束后使用close()关闭连接,将这个连接重新放回容器中循环利用.

现在我们来看jdbcTemplate,它是spring的一个jdbc模板,也是对jdbc的封装

1.它连接数据库用了spring的依赖注入实现的,实现它将连接数据库的基本信息放在了id为datasource的bean里,然后以dataSource为参数,创建一个jdbcTemplate的bean,然后再以jdbcTemplate为参数创建一个studentDAO的bean.然后以后我们直接通过context.getBean()实例化studentDAO然后就直接连接上数据库了

2.它对数据库操作的是通过jdbc模板来实现的,相对来说还是比较简单的,就是各种固定句式

spring+mybatis是spring和mybatis的结合,使得连接数据库和对数据库操作更简便了,通过mybatis是mapper文件实现对数据库操作的实现和spring依赖注入的方法更方遍的连接数据库.越方便反而没什么好说的,就是上面mybatis和springjdbcTemplate的优点结合吧.

总结:其实四种方法都文变不离其中,都围绕着连接数据库和对数据库进行操作进行各种优化吧.

明天计划完成的事情:明天打算看看任务二,其实任务一还有好多东西没看.

遇到的问题:今天一开始被返回的结果集困了一会,现在就把它当作返回了一张表吧.

收获:对任务一整体了解深了,系统了,不再乱乱的了.


返回列表 返回列表
评论

    分享到