1.前提準(zhǔn)備(新建一個(gè)maven項(xiàng)目)
依賴(lài)
mybatis包
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
jdbc驅(qū)動(dòng)包
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
junit測(cè)試包
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
數(shù)據(jù)源配置
mysql中新建表
CREATE DATABASE test;
CREATE TABLE `userinfo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8
配置文件mysql.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=12345678
2.使用mybatis
mybatis進(jìn)行數(shù)據(jù)庫(kù)操作流程
1)加載mybatis配置文件構(gòu)建sqlSessionFactory
2)通過(guò)sql.openSessionFactory()獲取session
3)加載映射關(guān)系session.getMapper()返回給mapper接口實(shí)例
4)mapper接口實(shí)例調(diào)用方法操作數(shù)據(jù)庫(kù)
分層結(jié)構(gòu)
example
這個(gè)包名其實(shí)不太正確,改為pojo或者domain都比較合適。這個(gè)包下的類(lèi)的屬性對(duì)應(yīng)數(shù)據(jù)表中的屬性,加上構(gòu)造函數(shù)getter,setter,用于創(chuàng)建返回的數(shù)據(jù)庫(kù)查詢(xún)對(duì)象
mapper
這個(gè)包下的是映射配置。UserMaper是一個(gè)接口,里面聲明你需要對(duì)某個(gè)數(shù)據(jù)庫(kù)表的增刪查改方法。UserMapper.xml則是配置接口中方法的實(shí)現(xiàn)。
深入了解:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html
service
服務(wù)包,這里用于測(cè)試mybatis
tools
用于加載mybatis配置文件,構(gòu)建sqlSession工廠,返回能使用映射的session
mybatis.cfg.xml
mybatis的配置文件,重要的參數(shù)有properties(引入文件),typeAliases(給實(shí)體類(lèi)別名,支持自動(dòng)掃描),environments(事務(wù)管理,數(shù)據(jù)源),mappers(映射關(guān)系文件)
深入了解:http://www.mybatis.org/mybatis-3/zh/configuration.html
3.注意事項(xiàng)
java編譯時(shí)默認(rèn)忽略掉java文件夾的非java文件,因此,mapper下映射配置表xml文件會(huì)出現(xiàn)無(wú)法找到的情況,因此在pom.xml中包含一下:
<build>
<resources>
<!--編譯java下的xml文件使mybatis配置文件能找到-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
4.運(yùn)行
在UserService下寫(xiě)好方法,方法上注解@Test,在運(yùn)行該方法,查看數(shù)據(jù)庫(kù)變化即可。
public class UserService {
//新增用戶(hù)
@Test
public void insertUser(){
SqlSession session = DBTools.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
UserBean user = new UserBean("hegoudai", "12346789");
try{
mapper.insertUser(user);
System.out.println(user.toString());
session.commit();
}catch(Exception e){
e.printStackTrace();
session.rollback();
}
}
}
源碼:https://github.com/hegoudai/Learning-Spring/tree/master/mybatis