1. MyBatis 是一款一流的支持自定义SQL、存储过程和高级映射的持久化框架。
MyBatis几乎消除了所有的 JDBC 代码,也基本不需要手工去设置参数和获取检索结果。
MyBatis几乎能够使用所有简单的 XML 格式 或注解来进行配置,能够映射基本数据元素、Map 接口和 POJOs(普通java对象)到数据库中的记录。
2. MyBatis是一款半自动化的orm框架。
3. MyBatis 也叫 ibatis。
4.下面演示一个mybatis的简单案例
目录结构如下:
(1). 新建 java 项目 :mybatis_helloworld
(2). 在目录结构的lib下导入mybatis需要的jar包, 并且 build 操作
mybatis-3.2.7.jar
mysql-connector-java-5.1.20-bin.jar
(3). 在 src 下编写 mybatis 的核心配置文件
mybatis.cfg.xml
<?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">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/vincent/vo/UserMapper.xml"/>
</mappers>
</configuration>
(4). 编写 vo 类
User.java
1 package cn.vincent.vo;
2
3 import java.io.Serializable;
4
5 public class User implements Serializable{
6
7 private int id;
8 private String name;
9 private int age;
10 public int getId() {
11 return id;
12 }
13 public void setId(int id) {
14 this.id = id;
15 }
16 public String getName() {
17 return name;
18 }
19 public void setName(String name) {
20 this.name = name;
21 }
22 public int getAge() {
23 return age;
24 }
25 public void setAge(int age) {
26 this.age = age;
27 }
28 @Override
29 public String toString() {
30 return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
31 }
32
33
34 }
(5) . 编写映射文件
UserMapper.xml
<?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="cn.vincent.vo.UserMapper">
<select id="selectUser" parameterType="int" resultType="cn.vincent.vo.User">
select * from t_user where id = #{id}
</select>
</mapper>
(6). 测试
Demo.java(位置可参考目录结构)
package cn.vincent.mybatis;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import cn.vincent.vo.User;
public class Demo {
public static void main(String[] args) throws IOException{
Reader reader=Resources.getResourceAsReader("mybatis.cfg.xml");
SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader);
SqlSession session=sqlMapper.openSession();
User user=session.selectOne("cn.vincent.vo.UserMapper.selectUser",1);
System.out.println(user);
}
}