mybatis01

mybatis是一个java持久层框架,java中操作关系型 数据库用的是jdbc,mybatis是对jdbc的一个封装。
jdk1.7.0_72
eclipse:eclipse-3.7-indigo
mysql:mysql5.1
企业开发中,根据项目大小、特点进行技术选型 ,jdbc操作数据库时效率是很高的,jdbc也是技术选型的参考。
需要数据库的驱动包:mysql-connector-java-5.1.7-bin.jar  ojdbc14-10.2.0.1.0.jar
上边是mysql的驱动,下边是oracle的驱动。

1、数据库连接频繁的创建和关闭,缺点浪费数据库的资源,影响操作效率
设想:使用数据库连接池
2、sql语句是硬编码,如果需求变更需要修改sql,就需要修改java代码,需要重新编译,系统不易维护。
设想:将sql语句 统一配置在文件中,修改sql不需要修改java代码。
3、通过preparedStatement向占位符设置参数,存在硬编码( 参数位置,参数)问题。系统不易维护。
设想:将sql中的占位符及对应的参数类型配置在配置文件中,能够自动输入 映射。
4、遍历查询结果集存在硬编码(列名)。
设想:自动进行sql查询结果向java对象的映射(输出映射)。

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。 目前mybatis在github上托管。git(分布式版本控制,当前比较流程)
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

纯jdbc操作:

package cn.itcast.mybatis.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JdbcTest {

    public static void main(String[] args) {
        Connection connection = null;
        //PreparedStatement是预编译的Statement,通过Statement发起数据库的操作
        //PreparedStatement防止sql注入,
        //写的sql语句是以预编译方式发过去的,sql语句在数据是要进行编译的,编译完成之后会记录到数据库缓存,
        //当第二次在发预编译的sql时发现一样就不再编译了,执行数据库效率高
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            //加载数据库驱动,驱动在jar包里面
            Class.forName("com.mysql.jdbc.Driver");
            //通过驱动管理类获取数据库链接
            //数据库连接频繁的创建和关闭,缺点浪费数据库的资源,影响操作效率,设想:使用数据库连接池
            connection =  DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "mysql");
            //定义sql语句 ?表示占位符
            //sql语句是硬编码,如果需求变更需要修改sql,就需要修改java代码,需要重新编译,系统不易维护。
            //设想:将sql语句 统一配置在文件中,修改sql不需要修改java代码。
        String sql = "select * from user where username = ?" ;
            //获取预处理statement
            preparedStatement = connection.prepareStatement(sql);
            //设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
            //通过preparedStatement向占位符设置参数,存在硬编码( 参数位置,参数)问题。系统不易维护。
            //设想:将sql中的占位符及对应的参数类型配置在配置文件中,能够自动输入 映射。
            preparedStatement.setString(1, "王五");
            //向数据库发出sql执行查询,查询出结果集
            resultSet =  preparedStatement.executeQuery();
            //遍历查询结果集
            //遍历查询结果集存在硬编码(列名)。
            //设想:自动进行sql查询结果向java对象的映射(输出映射)。
            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();
                }
            }

        }

    }

}
时间: 2024-08-03 22:16:38

mybatis01的相关文章

Spring集成MyBatis01

1 导包 1.1 spring-webmvc : spring框架包(当然里面也包含springmvc) 1.2 mybatis : mybatis框架包 1.3 mybatis-spring : spring框架集成mybatis框架需要用到的包 1.4 spring-jdbc : springjdbc包 1.5 mysql:MySQL数据库驱动包 1.6 junit : 单元测试包 1 <project xmlns="http://maven.apache.org/POM/4.0.0&

MyBatis01 MyBatis基础知识

1 MyBatis是什么 mybatis是一个持久层的框架,它对jdbc做了封装:是apache下的顶级项目 mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句 mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象.(输出映射) 2 如何使用MyBatis 2.1 导包 mybatis : mybatis包 mysql : MyS

MyBatis--01.基础

1.Mybatis的基本组成 SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成SqlSessionFactory(工厂接口) SqlSessionFactory:依靠工厂来生成SqlSession(SQLSession会话:相当于JDBC中的Connection对象) SqlSession:即可以发送SQL去执行并返回结果,也可以获取Mapper的接口 SQL Mapper:它是Mybatis新设计的组件,它是由一个Java接口和Xml文件(或注解)构成

Mybatis--01

mybatis 封装jdbc访问代码的一个框架 (hibernate)  ORM对象关系映射 SpringMVC:用来封装servlet的框架 (struts) Spring:体系整合框架,其他框架的粘合剂 框架:整个或者部分系统的可重用设计, 优点:1.灵活可配置:将写死的代码放到配置文件中 2.复用性高:将反复使用的代码抽取封装 3.对底层细节进行封装,提供了方便调用的api 主要内容: 1 mybatis 介绍 2 入门 :使用jdbc操作数据库存在的问题 Mybatis的架构 Mybat

5.mybatis的CURD操作

1.导包(使用maven创建工程,导包只需要配置pom.xml即可,此处导入jackson是为测试查询打印结果) <?xml version="1.0" encoding="UTF-8"?> <!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ --> <project xmlns="http://maven.apache.org/POM/4.0.0" xm

MyBatis 学习总结 01 快速入门 OLD

一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.mybatis提供一种“半自动化”的ORM实现.这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实

java:Mybatis框架1(基本配置,log4j)

1.mybatis01: db.properties: driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username=root password=root log4j.properties: #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4

03.MyBatis的核心配置文件SqlMapConfig.xml

SqlMapConfig.xml中配置的内容和顺序如下: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境集合属性对象) environment(环境子属性对象) transactionManager(事务管理) dataSource(数据源) mappers(映射器) ---------------------

mybatis与spring的整合

mybatis与spring整合 方式1:通过原始dao方法(不使用代理), 方式2:通过代理方式 搭建运行环境 1)导入 mybatis的jar包--->源码中的核心包+依赖包 mybatis提供的与spring整合的包 spring的核心包+事务包+aop面向切面编程包+数据库jdbc包 数据库驱动+c3p0包 2)建立配置文件 包括spring的核心文件bean.xml 以及 mybatis的核心文件sqlMapConfig.xml 2.User public class User { p