文档详情

mybatis12月7号课堂笔记.docx

发布:2016-12-17约1.36万字共32页下载文档
文本预览下载声明
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逆向工程(由数据库表生成类文件和映射文件)Jdbc编程中的问题写一个程序目标:通过jdbc程序找出当中的问题重视jdbc编程,企业在技术选型时对于小型的项目或性能要求较高的项目,优先选用jdbc开发。准备开发环境:Jdk1.7.72Eclipse indigo(3.7)Mysql5.1运行环境:Mysql5.1数据库驱动创建mysql数据库:代码如下:public class JdbcTest {//定义sql语句,根据名称查询用户表的记录private static String sql = SELECT * FROM USER WHERE username = ?;public static void main(String[] args) throws SQLException {//数据库连接Connection connection = null;//预编译statement//好处:防止 sql注入,提高数据的性能PreparedStatement preparedStatement = null;//结果集ResultSet resultSet = null;try {//加载数据库驱动Class.forName(com.mysql.jdbc.Driver);//连接数据库connection = DriverManager.getConnection(jdbc:mysql://localhost:3306/mybatis, root, mysql);//构造preparedStatementpreparedStatement = connection.prepareStatement(sql);//向preparedStatement中占位符的位置设置参数preparedStatement.setString(1, 张三);//发起数据库查询请求,得到结果集resultSet = preparedStatement.executeQuery();//遍历查询结果while(resultSet.next()){int id = resultSet.getInt(id);String username = resultSet.getString(username);Date birthday = resultSet.getDate(birthday);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();}}}}总结问题将sql语句硬编码到java代码中,如果修改sql语句,需要修改java代码,重新编译。系统可维护性不高。设想如何解决?能否将sql单独 配置在配置文件中。数据库连接频繁开启和释放,对数据库的资源是一种浪费。设想如何解决?使用数据库连接池管理数据库连接。向preparedStatement中占位符的位置设置参数时,存在硬编码(占位符的位置,设置的变量值)设想如何解决?能否也通过配置的方式,配置设置的参数,自动进行设置参数。解析结果集时存在硬编码(表的字段名、字段的类型)设想如何解决?能否将查询结果集映射成java对象。Mybatis框架Mybatis是什么?MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google cod
显示全部
相似文档