Mybatis第一天课堂笔记
Mybatis课程安排:
第一天:
Jdbc编程中的问题?
Mybatis的框架原理(重点) Mybatis的第一个程序: 实现用户信息的增、删、改、查。 Mybatis如何解决jdbc编程的问题。 与hibernate不同。
mybatis开发dao两种方法:(重点)
原始的dao开发方法(接口和接口实现) Mapper动态代码方法
Mybatis的配置文件: SqlMapConfig.xml(全局配置文件) XXXXXMapper.xml(映射文件,重点)
Mybatis动态Sql(重点)
resultType(重点掌握)和resultMap区别。
第二天:
Mybatis关联查询: 一对一查询 一对多 多对多
Mybatis的缓存 一级缓存 二级缓存 延迟加载
Mybatis和springmvc整合(重点)
原始的dao开发方法(接口和接口实现) Mapper动态代码方法
Mybatis逆向工程(由数据库表生成类文件和映射文件)
1 Jdbc编程中的问题
1.1 写一个程序
目标:
1、 通过jdbc程序找出当中的问题
2、 重视jdbc编程,企业在技术选型时对于小型的项目或性能要求较高的项目,优先选用jdbc开发。
准备开发环境: Jdk1.7.72
Eclipse indigo(3.7) Mysql5.1
运行环境:
Mysql5.1数据库驱动
创建mysql数据库:
代码如下:
publicclassJdbcTest {
//定义sql语句,根据名称查询用户表的记录
privatestatic String sql = \;
publicstaticvoid main(String[] args) throwsSQLException {
//数据库连接
Connection connection = null; //预编译statement
//好处:防止sql注入,提高数据的性能
PreparedStatementpreparedStatement = null; //结果集
ResultSetresultSet = null;
try {
//加载数据库驱动
Class.forName(\);
//连接数据库 connection =
DriverManager.getConnection(\, \, \);
//构造preparedStatement
preparedStatement = connection.prepareStatement(sql); //向preparedStatement中占位符的位置设置参数 preparedStatement.setString(1, \张三\);
//发起数据库查询请求,得到结果集
resultSet = preparedStatement.executeQuery(); //遍历查询结果
while(resultSet.next()){
int id = resultSet.getInt(\);
String username = resultSet.getString(\); Date birthday = resultSet.getDate(\); System.out.println(id+\+username+\\+birthday); }
} catch (Exception e) { e.printStackTrace(); }finally{ //释放资源
if(resultSet!=null){ resultSet.close(); }
if(preparedStatement!=null){ preparedStatement.close(); }
if(connection!=null){ connection.close(); } } } }
1.2 总结问题
1、 将sql语句硬编码到java代码中,如果修改sql语句,需要修改java代码,重新编译。系统可维护性不高。
设想如何解决?
能否将sql单独配置在配置文件中。
2、 数据库连接频繁开启和释放,对数据库的资源是一种浪费。
设想如何解决?
使用数据库连接池管理数据库连接。
3、 向preparedStatement中占位符的位置设置参数时,存在硬编码(占位符的位置,设置的变量值)
设想如何解决?
能否也通过配置的方式,配置设置的参数,自动进行设置参数。
4、 解析结果集时存在硬编码(表的字段名、字段的类型)
设想如何解决?
能否将查询结果集映射成java对象。
2 Mybatis框架
2.1 Mybatis是什么?
MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis通过xml或注解的方式将要执行的statement配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
2.2 Mybatis框架图
相关推荐: