本周学习内容
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatement、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。是一个不完全的orm框架
本周总结
Jdbc和Mybatis的区别
1)从层次上看,JDBC是较底层的持久层操作方式,而MyBatis是在JDBC的基础上进行了封装使其更加方便程序员对持久层的操作。2)从功能上看,JDBC就是简单的建立数据库连接,然后创建statement,将sql语句传给statement去执行,如果是有返回结果的查询语句,会将查询结果放到ResultSet对象中,通过对ResultSet对象的遍历操作来获取数据;MyBatis是将sql语句中的输入参数和输出参数映射为java对象,sql修改和优化比较方便。3)从使用上看,如果进行底层编程,而且对性能要求极高的话,应该采用JDBC的方式;如果要灵活使用sql语句的话建议采用MyBatis框架。
下周预习
如果在预编译时下列信息不能确定,我们就必须使用动态SQL技术:
·SQL语句正文·主变量个数·主变量的数据类型·SQL语句中引用的数据库对象(例如列、索引、基本表、视图等)动态SQL方法允许在程序运行过程中临时“组装”SQL语句,主要有三种形式:(1) 语句可变。可接收完整的SQL语句。即允许用户在程序运行时临时输入完整的SQL语句。(2) 条件可变。对于非查询语句,条件子句有一定的可变性。例如删除学生选课记录,既可以是因某门课临时取消,需要删除有关该课程的所有选课记录,也可以是因为某个学生退学,需要删除该学生的所有选课记录。对于查询语句,SELECT子句是确定的,即语句的输出是确定的,其他子句(如WHERE子句、HAVING短语)有一定的可变性。例如查询学生人数,可以是查某个系的学生总数,查某个性别的学生人数,查某个年龄段的学生人数,查某个系某个年龄段的学生人数等等,这时SELECT子句的目标列表达式是确定的(COUNT(*)),但WHERE子句的条件是 不确定的。(3) 数据库对象、查询条件均可变。对于查询语句,SELECT子句中的列名、FROM子句中的表名或视图名、WHERE子句和HAVING短语中的条件等等均可由用户临时构造,即语句的输入和输出可能都是不确定的。例如我们前面查询学生选课关系SC的例子。对于非查询语句,涉及的数据库对象及条件也是可变的。这几种动态形式几乎可覆盖所有的可变要求。为了实现上述三种可变形式,SQL提供了相应的语句,例如EXECUTE IMMEDIATE、PREPARE、EXECUTE、DESCRIBE等。
第六周
最新推荐文章于 2024-01-23 00:39:36 发布