x 左连接 、右连接 、内连接
左连接 就是以join左边的表的字段为主 ,右边的表字段不够补null或者0
select tcourse.* ,sstudent.* from tcourse left JOIN sstudent
on (tcourse.sid=sstudent.id)
右连接 就是以join右边的表的字段为主 ,左边的表字段不够补null或者0 ,右边表的所有字段都会显示出来
select tcourse.* ,sstudent.* from tcourse right JOIN sstudent
on (tcourse.sid=sstudent.id)
内连接 以On的条件为准 ,满足On的条件的这左右表的数据才会显示 默认inner可以省略 写也没事
select tcourse.* ,sstudent.* from tcourse inner JOIN sstudent
on (tcourse.sid=sstudent.id)
select tcourse.* ,sstudent.* from tcourse inner JOIN sstudent
on (tcourse.sid=sstudent.id)
谈控制事务语句及事务的边界
简单的说 就是一个订单业务操作 设计两个数据层的访问
就是订单业务操作设计订单总表 ,订单明细表 ,
如果把事务的边界放在订单总表,如果订单总表没问题 正常提交事务
但是订单明细表有异常,需要回滚事务,但是订单总表却没回滚,不符合一致性
因此边界放的位置错了 ,放订单明细表也一样
因为我们的边界是放在业务层,但是放在业务层我们就需要手段是保证这个connect对象是统一的就行了
就是访问多个数据库层访问的对象都是同一个connect对象就行了
谈谈Servlet的生命周期,Servlet作为SpringMVC的底层实现,必须要掌握
客户端发出请求--tomcat(针对这个请求进行解析,例如解析出要调用UserServlet类)
-->在去创建这个类-->然后在实例化这个类-->然后在调用servlet的办法(dopost/doget)
-->将响应的信息返回给客户端-->下次同样的请求-->同样访问这个UserServlet类
-->UserServlet类不需要再次创建和实例(Servlet类是单例模式,只创建和实例一次)
-->然后在调用servlet的办法(dopost/doget)
-->将响应的信息返回给客户端
--->以此类推,什么时候销毁呢
--->当Servlet重新加载|容器重新启动 才会调用destory()办法销毁
Servlet类是单例模式,只创建和实例一次
版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!