欢迎来到天天文库
浏览记录
ID:49226256
大小:358.25 KB
页数:75页
时间:2020-03-01
《传智播客mybatis课堂笔记.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Mybatis框架课程讲师:传智.燕青1Mybatis入门1.1单独使用jdbc编程问题总结1.1.1jdbc程序Publicstaticvoidmain(String[]args){Connectionconnection=null;PreparedStatementpreparedStatement=null;ResultSetresultSet=null;try{//加载数据库驱动Class.forName("com.mysql.jdbc.Driver");//通过驱动管理类获取数据库链接connection=D
2、riverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","mysql");//定义sql语句?表示占位符Stringsql="select*fromuserwhereusername=?";//获取预处理statementpreparedStatement=connection.prepareStatement(sql);//设置参数,第一个参数为sql语句中参数的序号(从1开始),第
3、二个参数为设置的参数值preparedStatement.setString(1,"王五");//向数据库发出sql执行查询,查询出结果集resultSet=preparedStatement.executeQuery();//遍历查询结果集while(resultSet.next()){System.out.println(resultSet.getString("id")+""+resultSet.getString("username"));}}catch(Exceptione){e.printStackTrac
4、e();}finally{//释放资源if(resultSet!=null){try{resultSet.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}if(preparedStatement!=null){try{preparedStatement.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace
5、();}}if(connection!=null){try{connection.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}}上边使用jdbc的原始方法(未经封装)实现了查询数据库表记录的操作。1.1.1jdbc编程步骤:1、加载数据库驱动2、创建并获取数据库链接3、创建jdbcstatement对象4、设置sql语句5、设置sql语句中的参数(使用preparedStatement)6、通过st
6、atement执行sql并获取结果7、对sql执行结果进行解析处理8、释放资源(resultSet、preparedstatement、connection)1.1.2jdbc问题总结如下:1、数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。1、Sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。2、使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修
7、改sql还要修改代码,系统不易维护。3、对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便。1.1MyBatis介绍MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL
8、本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和
此文档下载收益归作者所有