参考MyBatis官方文档。
基本开发步骤:
一、导包,mybatis-3.2.7.jar;
二、编写实体类Customer.java(与数据库表对应);
三、编写实体类对应的mapper接口CustomerMapper.java(定义实体类的操作);
四、编写实体类对应的mapper,Customer.xml(接口中的方法名与mapper中的操作的id名要一致);
五、编写mybatis-config.xml;
六、在mybatis-config.xml中注册mapper;
七、从xml获取SqlSessionFactory(或从mybatis提供的configuration class获取,具体参考mybatis-3.2.7手册,此手册位于mybatis的下载包中);
八、获取SqlSession;
九、通过SqlSession获取mapper,执行其中的操作。
以下是一个Demo:
1、Customer.java
1 package com.mybatis.po;
2
3 public class Customer {
4 private int id;
5 private String name;
6 private String gender;
7 private int age;
8 private String address;
9
10 public int getId() {
11 return id;
12 }
13
14 public void setId(int id) {
15 this.id = id;
16 }
17
18 public String getName() {
19 return name;
20 }
21
22 public void setName(String name) {
23 this.name = name;
24 }
25
26 public String getGender() {
27 return gender;
28 }
29
30 public void setGender(String gender) {
31 this.gender = gender;
32 }
33
34 public int getAge() {
35 return age;
36 }
37
38 public void setAge(int age) {
39 this.age = age;
40 }
41
42 public String getAddress() {
43 return address;
44 }
45
46 public void setAddress(String address) {
47 this.address = address;
48 }
49
50 }
2、CustomerMapper.java
1 package com.mybatis.mapper;
2
3 import com.mybatis.po.Customer;
4
5 public interface CustomerMapper {
6 public int insert(Customer cus);
7 public int update(Customer cus);
8 }
3、Customer.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
6 <mapper namespace="com.mybatis.mapper.CustomerMapper">
7 <insert id="insert" parameterType="Customer">
8 insert into customer(name, gender, age, address)
9 values(#{name}, #{gender}, #{age}, #{address})
10 </insert>
11
12 <update id="update" parameterType="Customer">
13 update customer
14 set name = #{name}, gender = #{gender}, age = #{age}, address = #{address}
15 </update>
16 </mapper>
4、mybatis-config.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5
6 <configuration>
7 <properties resource="db-config.properties" />
8
9 <typeAliases>
10 <!-- <typeAlias type="com.mybatis.po.Customer" alias="Customer" /> -->
11 <package name="com.mybatis.po" />
12 </typeAliases>
13
14 <environments default="development">
15 <environment id="development">
16 <transactionManager type="JDBC" />
17 <dataSource type="POOLED">
18 <property name="driver" value="${driver}" />
19 <property name="url" value="${url}" />
20 <property name="username" value="${username}" />
21 <property name="password" value="${password}" />
22 </dataSource>
23 </environment>
24 </environments>
25
26 <mappers>
27 <mapper resource="com/mybatis/po/Customer.xml" />
28 </mappers>
29 </configuration>
5、db-config.properties
1 driver=com.mysql.jdbc.Driver
2 url=jdbc:mysql://127.0.0.1:3306/test
3 username=root
4 password=sa1234
6、获得SqlSessionFactory的工具类SessionFactoryUtil.java
1 package com.mybatis.util;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5
6 import org.apache.ibatis.io.Resources;
7 import org.apache.ibatis.session.SqlSession;
8 import org.apache.ibatis.session.SqlSessionFactory;
9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10
11 public class SessionFactoryUtil {
12 public SqlSessionFactory getFactory() throws Exception {
13 SqlSessionFactory factory = null;
14 try {
15 InputStream is = Resources
16 .getResourceAsStream("mybatis-config.xml");
17 factory = new SqlSessionFactoryBuilder().build(is);
18 } catch (Exception e) {
19 throw e;
20 }
21 return factory;
22 }
23
24 public void close(SqlSession session) {
25 if (session != null) {
26 session.close();
27 }
28 }
29 }
7、测试类TestCustomer.java
package test;import java.io.IOException;
import java.io.InputStream;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 com.mybatis.mapper.CustomerMapper;
import com.mybatis.po.Customer;
import com.mybatis.util.SessionFactoryUtil;public class TestCustomer {
/**
* @param args
*/
public static void main(String[] args) {
SqlSession session = null;
SessionFactoryUtil util = null;
try {
util = new SessionFactoryUtil();
session = util.getFactory().openSession();Customer cus = new Customer();
cus.setName("Tom");
cus.setGender("M");
cus.setAge(20);
cus.setAddress("USA");session.getMapper(CustomerMapper.class).insert(cus);
session.commit();
} catch (Exception e) {
session.rollback();
e.printStackTrace();
} finally {
util.close(session);
}try {
util = new SessionFactoryUtil();
session = util.getFactory().openSession();Customer cus = new Customer();
cus.setName("Tom");
cus.setGender("M");
cus.setAge(22);
cus.setAddress("USA");session.getMapper(CustomerMapper.class).update(cus);
session.commit();
} catch (Exception e) {
session.rollback();
e.printStackTrace();
} finally {
util.close(session);
}
}}
8、结构