mybatis(1)--对于jdbc的回顾以及其缺点总结
2017-07-16 15:11
190 查看
mybatis是对原生的jdbc的封装,是一个持久层框架
那么为什么要用mybatis,首先我们来看看原生jdbc的操作
jdbc:
首先打开eclipse,创建工程
加入mysql的jar包
创建JdbcTest类
打开SQLyog,创建 数据库mybatis,创建表user
缺点总结:
1.数据库连接,使用时就创建,不使用就立即释放,对数据库频繁开启关闭数据库,造成数据库资源浪费,影响性能
解决:使用数据库连接池
2.sql是写死的(硬编码),但需求是不断变化的,代码复用度不高,不利于维护
解决:使用xml配置文件来写sql,如果sql变化了,不用对Java代码重新编译
3.设置参数ps.setString(1, “小明”);这儿是写死的
解决:把sql语句的参数占位符全部配置在xml中去
4.结果集的遍历rs.getString(“id”)+rs.getString(“username”)这儿是写死的
解决:将结果集映射成Java对象,使用对象获取属性
那么为什么要用mybatis,首先我们来看看原生jdbc的操作
jdbc:
首先打开eclipse,创建工程
加入mysql的jar包
创建JdbcTest类
打开SQLyog,创建 数据库mybatis,创建表user
SHOW CREATE TABLE USER CREATE TABLE `user` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(32) NOT NULL COMMENT '用户名称', `birthday` DATE DEFAULT NULL COMMENT '生日', `sex` CHAR(1) DEFAULT NULL COMMENT '性别', `address` VARCHAR(256) DEFAULT NULL COMMENT '地址', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
package com.ddd.mybatis.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * @author Dan *原生态的jdbc */ public class JdbcTest { public static void main(String[] args) { //数据库连接 Connection conn=null; //预编译(如果下次执行sql相同则不用编译,直接执行)的statement,使用它可以提高sql的执行效率 PreparedStatement ps=null; //结果集 ResultSet rs=null; try { //加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); //获取数据库连接 conn=DriverManager.getConnection ("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root", "1234"); //定义sql语句 String sql="select * from user where username=?"; //获取预处理的statement ps=conn.prepareStatement(sql); //设置参数,(序号,值),其中序号从1开始 ps.setString(1, "小明"); //执行结果 rs=ps.executeQuery(); //遍历结果集打印输出 while(rs.next()){ System.out.println(rs.getString("id")+rs.getString("username")); } } catch (Exception e) { e.printStackTrace(); }finally{//释放资源 if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(ps!=null){ try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
缺点总结:
1.数据库连接,使用时就创建,不使用就立即释放,对数据库频繁开启关闭数据库,造成数据库资源浪费,影响性能
解决:使用数据库连接池
2.sql是写死的(硬编码),但需求是不断变化的,代码复用度不高,不利于维护
解决:使用xml配置文件来写sql,如果sql变化了,不用对Java代码重新编译
3.设置参数ps.setString(1, “小明”);这儿是写死的
解决:把sql语句的参数占位符全部配置在xml中去
4.结果集的遍历rs.getString(“id”)+rs.getString(“username”)这儿是写死的
解决:将结果集映射成Java对象,使用对象获取属性
相关文章推荐
- 总结传统JDBC以及MyBatis和Hibernate的对比
- JDBC、Ibatis、Hibernate对比、以及优点缺点(个人总结)
- mybatis学习日记(一)1-预编译PreparedStatement以及jdbc缺点
- 总结传统JDBC以及MyBatis和Hibernate的对比
- JDBC-Mybatis总结
- 对于Ext.data.Store 介紹 与总结,以及对以前代码的重构与优化
- Java 原生态JDBC问题总结及MyBatis解决方法
- mybatis学习之传统JDBC编程中的问题总结
- Java面试七]Mybatis总结以及在面试中的一些问题
- spring与JDBC以及Mybatis的整合
- mybatis常用jdbcType数据类型以及对应的JavaType
- mybatis常用jdbcType数据类型以及对应的JavaType
- MyBatis的学习总结三——输入映射和输出映射以及多表关联查询
- 入职总结以及大学生活回顾反省
- JDBC、Ibatis、Hibernate对比、以及优点缺点
- 关于一次线上事故总结,以及对于mysql索引的总结(序言一)
- 敏捷开发学习总结(1):传统序列式软件开发方法的缺点,以及迭代开发方法的选择
- Spring MVC +Spring + Mybatis 构建分库分表总结 SSM搭建以及分库分表的实现
- 1.jdbc相较于mybatis,hibernate的一些缺点
- JDBC、Ibatis、Hibernate对比、以及优点缺点