初识MyBatis
1、MyBatis的定义
1)、MyBatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射的持久层框架。
2)、MyBatis框架也被称之为ORM(Object/Relation Mapping,即对象关系映射)框架。所谓的ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。
3)、ORM框架的工作原理:
4)、Hibernate与MyBatis的区别:
2、MyBatis的工作原理
3、MyBatis入门程序
1)、查询客户:在实际开发中,查询操作通常都会涉及到单条数据的精确查询,以及多条数据的模糊查询。
a)、根据客户编号查询客户信息。
b)、根据客户名模糊查询客户信息。
2)、根据客户编号查询客户信息:
a)、创建mybatis数据库,并且插入3条数据:
b)、由于MyBatis默认使用log4j输出日志信息,所以如果要查看控制台的输出SQL语句,那么就需要在classpath路径下配置其日志文件。在项目的src目录下创建log4j.properties文件。
# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.itheima=DEBUG
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
c)、src->com.itheima.po
①客户持久化类:Customer.java
1 package com.itheima.po; 2 /** 3 * 客户持久化类 4 */ 5 public class Customer { // 一个POJO(普通java对象) 6 private Integer id; // 主键id 7 private String username; // 客户名称 8 private String jobs; // 职业 9 private String phone; // 电话 10 public Integer getId() { 11 return id; 12 } 13 public void setId(Integer id) { 14 this.id = id; 15 } 16 public String getUsername() { 17 return username; 18 } 19 public void setUsername(String username) { 20 this.username = username; 21 } 22 public String getJobs() { 23 return jobs; 24 } 25 public void setJobs(String jobs) { 26 this.jobs = jobs; 27 } 28 public String getPhone() { 29 return phone; 30 } 31 public void setPhone(String phone) { 32 this.phone = phone; 33 } 34 @Override 35 public String toString() { 36 return "Customer [id=" + id + ", username=" + username + 37 ", jobs=" + jobs + ", phone=" + phone + "]"; 38 } 39 }
d)、src->com.itheima.mapper
①映射文件:CustomerMapper.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 <!-- namespace表示命名空间 --> 5 <mapper namespace="com.itheima.mapper.CustomerMapper"> 6 7 <!--根据客户编号获取客户信息 --> 8 <select id="findCustomerById" parameterType="Integer" 9 resultType="com.itheima.po.Customer"> 10 select * from t_customer where id = #{id} 11 </select> 12 13 <!--根据客户名模糊查询客户信息列表--> 14 <select id="findCustomerByName" parameterType="String" 15 resultType="com.itheima.po.Customer"> 16 <!-- select * from t_customer where username like '%${value}%' --> 17 select * from t_customer where username like concat('%',#{value},'%') 18 </select> 19 20 <!-- 添加客户信息 --> 21 <insert id="addCustomer" parameterType="com.itheima.po.Customer"> 22 insert into t_customer(username,jobs,phone) 23 values(#{username},#{jobs},#{phone}) 24 </insert> 25 26 <!-- 更新客户信息 --> 27 <update id="updateCustomer" parameterType="com.itheima.po.Customer"> 28 update t_customer set 29 username=#{username},jobs=#{jobs},phone=#{phone} 30 where id=#{id} 31 </update> 32 33 <!-- 删除客户信息 --> 34 <delete id="deleteCustomer" parameterType="Integer"> 35 delete from t_customer where id=#{id} 36 </delete> 37 </mapper>
e)、src->mybatis-config.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 4 <configuration> 5 <!--1、配置环境 ,默认的环境id为mysql--> 6 <environments default="mysql"> 7 8 <!--1.2、配置id为mysql的数据库环境 --> 9 <environment id="mysql"> 10 11 <!-- 使用JDBC的事务管理 --> 12 <transactionManager type="JDBC" /> 13 14 <!--数据库连接池 --> 15 <dataSource type="POOLED"> 16 17 <property name="driver" value="com.mysql.jdbc.Driver" /> 18 <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> 19 <property name="username" value="root" /> 20 <property name="password" value="******" /> 21 </dataSource> 22 </environment> 23 </environments> 24 25 <!--2、配置Mapper的位置 --> 26 <mappers> 27 <mapper resource="com/itheima/mapper/CustomerMapper.xml" /> 28 </mappers> 29 </configuration>
f)、src->com.itheima.test