前言
MyBatis是一种并不完全的ORM(Object/Relation Mapping)框架,即对象-关系数据库映射,
由于Java等面向对象的编程语言的主流使用,而目前主流数据库依旧停留在关系型数据库上的原因,催生了ORM框架。
ORM工具的唯一作用是把持久化对象的操作转化为对数据库的操作,由此程序员可以以面向对象的方式操作持久化对象,ORM负责将这种操作转化为对关系数据库的操作。
工具:Java EE、mysql
文档如下:
mysql-connector-java-5.1.36.jar
mybatis-3.4.1.jar
1.首先建立一个简单的关系数据库
create table db_mybatis(
mybatis_id int not null primary key,
mybatis_name varchar(20) not null,
mybatis_code varchar(20) not null)
2.接下来建立一个动态的web工程,在src文件夹下创建一个三级文件夹。
(具体文件夹命名规范请参照URL:http://www.cnblogs.com/xwdreamer/archive/2012/02/15/2352434.html)
package com.huang.domain;
public class test {
private int id;
private String name;
private String code;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public test() {
super();
// TODO Auto-generated constructor stub
}
public test(int id, String name, String code) {
super();
this.id = id;
this.name = name;
this.code = code;
}
}
3.同样在另一个三级文件夹下,创建一个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="com.huang.mapper.testmapper">
<insert id="save" parameterType="com.huang.domain.test"
useGeneratedKeys="true">
INSERT INTO db_mybatis(mybatis_id,mybatis_name,mybatis_code) VALUES(#{id},#{name},#{code})<!-- SQL语句 -->
</insert>
</mapper>
其中:
<1>namespace为这个mapper指定唯一一个namespace,namespace上的值习惯上设为包名+映射文件名,为保证namespace是唯一的。
<2>insert标签中编写了插入的SQL语句,并设置insert的id为“save” 这个id是唯一的,不可重复出现。
<3>parameterType属性指明插入时使用的参数类型。
<4>useGeneratedKeys=”true”表示数据库的自动增长策略
4.在src文件夹下建立一个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">
<!-- XML配置文件包含对MyBatis系统的核心配置 -->
<configuration>
<!-- 环境变量配置,连接数据库 -->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<!-- 指数据源配置,POOLED是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="oracle203"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 映射源文件的位置 -->
<mapper resource="com/huang/mapper/testmapper.xml"/>
</mappers>
</configuration>
5.新建一个三级文件夹,用来写入测试主函数
package com.huang.test;
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.huang.domain.test;
public class Main {
public static void main(String[] args)throws Exception
{
InputStream in=Resources.getResourceAsStream("config.xml");/*读取config文件,连接数据库*/
SqlSessionFactory sql=new SqlSessionFactoryBuilder().build(in);
SqlSession se=sql.openSession();
/*SqlSessionFactory和SqlSession均为mybatis的常用对象*/
test t=new test(15100,"huang","Hdc09130415");
se.insert("com.huang.mapper.testmapper.save",t);/*调用testmapperXML文件中的insert标签*/
se.commit();/*提交事务*/
se.close();/*关闭Session*/
}
}
6.创建成功后如图所示
7.加入log4j日志框架,只需要加入log4j的相关jar包和.properties文件
其中.properties文件写入
log4j.rootLogger=ERROR,log4j
log4j.logger.com.huang.mapper.testmapper=DEBUG
log4j.appender.log4j=org.apache.log4j.ConsoleAppender
log4j.appender.log4j.layout=org.apache.log4j.PatternLayout
log4j.appender.log4j.layout.ConversionPattern=%5p [%t] - %m%n
以上mybatis环境基本搭建完毕。