MyBatis简介
1: MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架 2: MyBatis 避免了几乎所有 的 JDBC 代码和手动设置参数以及获取结果集 3:MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录 4:Mybatis 是一个 半自动的ORM(Object Relation Mapping)框架
如何下载MyBatis
1:下载网址
https://github.com/mybatis/mybatis-3/
2:github
大家可以考虑下为什么要使用mybatis?
为什么要使用MyBatis? 与现有持久化技术的对比
1: JDBC a:SQL夹在Java代码块中,耦合度高导致硬编码内伤 b:维护不易,且实际开发需求中有SQL变化,频繁修复的情况多见 c:部署不易,如果配置和sql都在java代码中,如果要修改配置或者sql不易 2:Hibernate和JPA ①长难复杂SQL,对于Hibernate而言处理也不容易 ②内部自动生产的SQL,不容易做特殊优化 ③基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难。导致数据库性能下降 3: MyBatis ①对开发人员而言,核心sql还是需要自己优化 ②sql和java编码分开,功能边界清晰,一个专注业务、一个专注数据 ③:如果是实施部署的情况下,我们的配置都在xml中,而不是在java代码中,那么有利于实施人员部署代码
也就是使用mybatis会将sql和java代码分开,那样功能界面更清晰,各司其职
MyBatis HelloWorld
mybatis的搭建过程
mybatis搭建过程: 1、导入jar 2、创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置 3、创建映射文件XxxMapper.xml,并配置 4、创建mapper接口,实现两个绑定: (1)接口全限定名要和映射文件的namespace保持一致 (2)接口中方法名和SQL语句的id保持一致 5、获取mybatis操作数据库的会话对象SqlSession,通过getMapper()获取接口的动态代理实现类 6、测试
1 开发环境的准备(导入所需第三方jar包)
1) 导入MyBatis框架的jar包、Mysql驱动包、log4j的jar包
myBatis-3.4.1.jar mysql-connector-java-5.1.37-bin.jar log4j.jar
2) 导入log4j 的配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <param name="Encoding" value="UTF-8"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) "/> </layout> </appender> <logger name="java.sql"> <level value="debug"/> </logger> <logger name="org.apache.ibatis"> <level value="info"/> </logger> <root> <level value="debug"/> <appender-ref ref="STDOUT"/> </root> </log4j:configuration>
2:创建所需的数据库和表:(如果已经有了表和数据库就忽略)
--创建t_mybatis库 create database test_mybatis; -- 创建user表 CREATE TABLE USER ( id INT ( 11 ) PRIMARY KEY auto_increment, user_name VARCHAR ( 32 ), email VARCHAR ( 32 ), gender CHAR ( 1 ) ) insert into user(id,user_name,email,gender) VALUES(null,"老王","1425252@163.com",1)
3:创建MyBatis的全局配置文件
1: 如果是使用maven建立的项目可以直接添加项目依赖
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version> </dependency>
2: 如果是非maven的项目可以添加mybatis-config.xml
参考MyBatis的官网手册
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <!-- environments 连接数据库的环境 default代表你使用的数据库 与下面的id相对应--> <environment id="development"><!--environment 指设置某个具体的数据库环境 id数据库的唯一标识--> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc://mysql://localhost:3306"/ssm> <property name="username" value="zhao"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration>
4: 创建Mybatis的sql映射文件
参考MyBatis的官方手册
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.mybatis.example.BlogMapper"> <select id="selectBlog" resultType="Blog"> select * from Blog where id = #{id} </select> </mapper>
1: mvn clean 清除编译的target 环境配置
.