(一)mybatis介绍
一、mybatis简介
- MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 ------摘自百度百科
二、mybatis的优势
- 相对于传统的jdbc编程,如下:
    package test.lx.mybatis.jdbc;  
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;  
    /**
     * jdbc的测试程序
     *
     * @author lx
     *
     */
    public class JdbcTest {
        public static void main(String[] args) {
            Connection connection = null;
            //PreparedStatement是预编译的Statement,通过Statement发起数据库的操作
            //PreparedStatement防止sql注入,执行数据库效率高
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;  
            try {
                //加载数据库驱动
                Class.forName("com.mysql.jdbc.Driver");  
                //通过驱动管理类获取数据库链接
                connection =  DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "root");
                //定义sql语句 ?表示占位符
            String sql = "select * from user where username = ?" ;
                //获取预处理statement
                preparedStatement = connection.prepareStatement(sql);
                //设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
                preparedStatement.setString(1, "王五");
                //向数据库发出sql执行查询,查询出结果集
                resultSet =  preparedStatement.executeQuery();
                //遍历查询结果集
                while(resultSet.next()){
                    System.out.println(resultSet.getString("id")+"  "+resultSet.getString("username"));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                //释放资源
                if(resultSet!=null){
                    try {
                        resultSet.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                if(preparedStatement!=null){
                    try {
                        preparedStatement.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                if(connection!=null){
                    try {
                        connection.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }  
            }  
        }
    }  
- 传统jdbc的问题总结1、数据库连接频繁的创建和关闭,缺点浪费数据库的资源,影响操作效率解决方法:使用数据库连接池2、SQL语句是硬编码,如果需求变更需要修改SQL,就需要修改Java代码,需要重新编译,系统不易维护。解决方法:将SQL语句统一配置在xml文件中,修改SQL不需要修改Java代码3、通过PreparedStatement向占位符设置参数,存在硬编码(参数位置,参数)问题。系统不易维护。解决方法:将SQL中的占位符以及对应的参数类型配置在配置文件中,能够自动输入映射4、遍历查询结果集中存在硬编码(列名)解决方法:自动进行SQL查询结果向Java对象的映射(输出映射)
- Mybatis解决jdbc编程中的问题
三、 myabatis架构

(一)mybatis介绍的更多相关文章
- MyBatis - 介绍、简单入门程序
		JDBC编程中的问题 1. 将SQL语句硬编码到Java代码,不利于系统维护. 设想如何解决:将SQL单独抽取出来,在配置文件(xml方式.properties文件)进行配置. ... 
- Mybatis学习笔记(一) —— mybatis介绍
		一.Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ... 
- (转)MyBatis框架的学习(一)——MyBatis介绍
		http://blog.csdn.net/yerenyuan_pku/article/details/71699343 MyBatis介绍 MyBatis本是apache的一个开源项目iBatis,2 ... 
- MyBatis 介绍
		MyBatis 介绍 MyBatis 是一款优秀的 ORM(Object Relational Mapping,对象关系映射)框架,它可以通过对象和数据库之间的映射,将程序中的对象自动存储到数据库中. ... 
- mybatis介绍--基于个人学习JavaWeb的使用
		mybatis介绍 该博文放在javaWeb系列下,目的是记录我们javaWeb阶段所学的知识 @time=2022/3/11/11:52(最近休息玩了两天,今天重新启动生活) 一.mybatis发展 ... 
- mybatis介绍与环境搭建
		一.不用纯jdbc的原因,即缺点. 1.数据库理解,使用时创建,不用时释放,会对数据库进行频繁的链接开启和关闭,造成数据库的资源浪费,影响数据库的性能.设想:使用数据库的连接池.2.将sql语句硬编码 ... 
- 深入浅出MyBatis:JDBC和MyBatis介绍
		JDBC相关概念 Java程序都是通过JDBC连接数据库的,通过SQL对数据库编程,JDBC是由SUN公司提出的一些列规范,只定义了接口规范,具体实现由各个数据库厂商去实现,它是一种典型的桥接模式. ... 
- MyBatis介绍及使用
		一.介绍: 1.MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]! 2.和数据库打交道的技术有: 原生的JDBC技术--->Spring的JdbcTe ... 
- mybatis介绍安装
		MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简单 ... 
- Mybatis介绍(一)
		这里介绍的mybatis比较简单, 我做为一个初学者, 记录下个人在学习中方法, 如果那里出错, 希望读者朋友们见谅. 首先这里介绍一下我们下面用的表结构: author表是保存了作者的个人信息, 因 ... 
随机推荐
- qt mvc1
			mvc是经典的三层结构,将数据,视图和逻辑分离.Qt中的Model/View框架,实现了这个模式.在Qt中这个模式设计到三个类,model类,view类和delegate类.model类保存数据,vi ... 
- arcgis python  ListEnvironments 函数可返回地理处理环境名称列表。
			import arcpy environments = arcpy.ListEnvironments() # Sort the environment names environments.sort( ... 
- Can I prevent the Firefox developer tools network panel from clearing on page reload?
			Can I prevent the Firefox developer tools network panel from clearing on page reload? I couldn't fin ... 
- socket_timeout
			https://github.com/pika/pika/blob/03542ef616a2a849e8bfb0845427f50e741ea0c6/docs/examples/using_urlpa ... 
- android DownloadManager: java.lang.IllegalArgumentException: Not a file URI: content://
			DownloadManager 使用Uri指定下载路径Bug 使用DownloadManager 下载文件 通常写法: DownloadManager dm = (DownloadManager) g ... 
- jeecg使用心得
			接触到jeecg框架是在去年,接触到了jeecg开源框架,此框架为企业级急速开发框架,不了解的可以百度下这类框架的,对于目前状态来说,此框架确实也满足了所需,此刻就开始接触jeecg框架,去年六七月份 ... 
- python中 将数字转化为人民币的形式
			def fn(args): """ 将金额转化为人民币模式,带逗号分隔,保留小数点两位,四舍五入 :param args: :return: ""&q ... 
- Java API操作Hadoop可能会遇到的问题以及解决办法
			https://www.zifangsky.cn/1292.html Could not locate Hadoop executable: xxx\bin\winutils.exe 1 2 3 ... 
- 《CNCF × Alibaba云原生技术公开课》知识点自测(三):Kubernetes核心概念
			(单选)1.Kubernetes的中文含义是___. A. 船 B.舵手 C.容器平台 D.起重机 (单选) 2.Kubectl是_____. A. 一个与Kubernetes集群进行交互.管 ... 
- 汉化Git Gui
			先来一个图: 其实使用自带的图形化操作git还是很方便的,但是英文界面还是让相当一部分小伙伴不太舒服,比如我哈. 汉化包地址:链接: https://pan.baidu.com/s/1qQtBUsf1 ... 
