update和上面的Insert代码基本是一样的,只需要修改这里, 测试Update的方法 删除 findById 测试方法 findByName 测试方法 findTotal…
就是自己写实现类的方式来开发 直接finish 把之前写的CRUD的代码复制到过来. 在把之前pom.xml里面的包的依赖也复制过来 复制到当前的pom.xml内 允许自动导入 以上步骤就是复制了一个完整的上一节的CRUD的工程 调整和改造 QueryVo删掉. 映射文件中.resultMap的内容并不需要.也删除掉. 这里也需要把resultMap改成resultType.并且值是完整的包的路径 实际的开发过程中用的都是代理dao的方式.所以这里只作为了解.选学的内容 实体类改成和数据表 内的…
另外一种情况,不写Mybits的dao实现类的情况. 切换工程到CRUD的工程.这里面是不写dao实现类的方式 进入到GetMaper里面.这里是创建代理对象 去找SqlSession的实现类DefaultSqlSession DefaultSqlSession的getMapper方法 进入Configuration的getMapper方法 MapperRegistry的getMapper方法.里面走的是mapperProxyFactory.newInstance的方法 下面的调用上面的方法.…
从测试类入手,断点调试 找到实现类,进入到insert方法里面 这里是SqlSession的接口里面的方法. 我们需要找SqlSession的实现类. DefaultSqlSession 里面有两个insert方法,第一个insert执行的是第二个insert方法,德尔格insert方法又执行的是下面的update方法 delete最终执行的也是update方法 我们的update方法传了两个参数 所以他最终执行的是这里两个参数的 update再往后走就是executor.update方法.也就…
继续运行testFindAll方法.把其他类的断点都删除掉. 只在这里加了断点,所以直接就跳转到这里了.RoutingStatementHandler里面的query方法 继续往下走,断点又回到了这里.delegate变成了一个叫做PrparedStatementHandler 找PrparedStatementHandler PrparedStatementHandler里面找到query方法.然后加断点. preparedStatement就是JDBC里面的对象.ps.execute不仅能执…
delete方法没有并SqlSession的delete方法,而是调用的Upadte方法. 在测试类这里加断点. 实际的方法体内也加断点 运行测试方法,选择debug的方式 走到断点这里.会看到factory是DefaultSqlSessionFactory session是DefaultSqlSession 找借口的实现类 选中SqlSession 选中SqlSession并鼠标右键---show Implementations 显示它的所有实现 然后就显示了两个.通过刚才的断点调试我们知道是…
再完善.saveUser的方法 测试保存的操作 报错了 SqlSession的insert的源码 我们在执行Insert的时候,并没有把user对象传过去 usersex改成sex 再次测试…
之前都是使用我们传统的方式进行引入jar包,现在我们使用maven进行管理依赖,这样,我们的jar就不需要我们进行管理,而且,我们的maven还可以进行项目构建,一个项目从编写源代码到编译,测试,运行,打包,部署的过程,只需要对应的一个命令即可以了,方便了很多 这里,我们直接进入主题,像eclipse中怎么配置maven等这里我们暂时不说,直接从创建项目开始,而且我们采用的是纯配置文件的方式 我们可以看一下我们的目录结构 这咯我们的ssh_parent是父工程,而剩下的都是它的子模块 这里我们的…
controller层负责创建类传递类给service:service层负责逻辑编写调用dao层 将编写后的类传递到dao层,保证事务的正确性:dao层负责数据的持久化…
写在前面:菜鸟拙见,望请纠正 一:为什么需要连接池 普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接..这样的方式将会消耗大量的资源和时间 数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”.预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去. 其实就是以前的时候每一次执行操作都要获得一…