一、MyBatis的定义:
MyBatis是一个开源、轻量级的数据持久化框架,是JDBC和Hibernate的替代方案。MyBatis内部封装了JDBC,简化了加载驱动、创建连接、创建statement等繁杂的过程,开发者只需要关注SQL语句本身。
二、MyBatis三个基本要素:- 核心接口和类MyBatis核心配置文件(mybatis-config.xml)SQL映射文件(mapper.xml)
0、准备工作:在本地数据库里新建一张表,建表代码如下所示:
CREATE TABLE `website` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) COLLATE utf8_unicode_ci NOT NULL, `url` varchar(30) COLLATE utf8_unicode_ci DEFAULT '', `age` tinyint(3) unsigned NOT NULL, `country` char(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `createtime` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1、项目目录结构:
2、在pom.xml中添加项目所需依赖:
junit junit4.11 test org.mybatis mybatis3.5.5 mysql mysql-connector-java8.0.19 org.apache.logging.log4j log4j-core2.17.2 log4j log4j1.2.17
3、MyBatis 默认使用 log4j 输出日志信息。在resources下创建log4j.properties,输入如下内容:
# Global logging configuration log4j.rootLogger=ERROR,stdout # MyBatis logging configuration... log4j.logger.net.biancheng=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
4、配置MyBatis核心配置文件mybatis-config.xml:
5、创建映射文件WebsiteMapper.xml,这里面可以写入CRUD等操作:
insert into website (name,url,age,country) values (#{name},#{url},#{age},#{country}) select * from website
6、在po文件夹下新建持久化类Website.java:
package org.caoze.po;
import java.util.Date;
//持久化类
public class Website {
private int id;
private String name;
private String url;
private int age;
private String country;
private Date createtime;
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 getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
@Override
public String toString() {
return "Website{" +
"id=" + id +
", name='" + name + ''' +
", url='" + url + ''' +
", age=" + age +
", country='" + country + ''' +
", createtime=" + createtime +
'}';
}
}
7、新建测试文件Test.java:
package org.caoze.Test;
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 org.caoze.po.Website;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class Test {
public static void main(String[] args) throws IOException {
//读取配置文件mybatis-config.xml
InputStream config = Resources.getResourceAsStream("mybatis-config.xml");
//根据配置文件构建SqlSessionFactory
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config);
//通过SqlSessionFactory创建SqlSession
SqlSession ss = ssf.openSession();
//Sqlsession执行文件中定义的SQl,并返回映射结果
//添加网站
Website website = new Website();
website.setName("张三");
website.setUrl("www.baidu.com");
website.setAge(18);
website.setCountry("CN");
ss.insert("mapper.WebsiteMapper.addWebsite", website);
//查询所有网站
List listweb = ss.selectList("mapper.WebsiteMapper.selectAllWebiste");
for (Website site: listweb){
System.out.println(site);
}
//提交事务
ss.commit();
//关闭SqlSession
ss.close();
}
}
8、点击运行,运行结果如下所示:
四、总结由上述过程可以看出一个基本的Mybatis运行需要以下步骤:
1、创建配置文件。在配置文件中配置mybatis的运行环境,其中最基本的有数据库驱动,连接数据库所需的账号密码,映射文件所在位置等信息。
2、创建映射文件。这是最重要最复杂的地方,映射文件中有CRUD等相关操作。(日后学习再来补充)。
3、创建持久化类。持久化,是将程序数据在持久状态和瞬时状态间转化的机制,即将瞬时数据(如内存中的数据)持久化为持久数据(持久化进数据库中,能够长久保存)。



