环境说明:
IDE:IntelliJ IDEA
依赖包管理:maven
1、搭建mybatis开发环境
1)新建一个maven项目
2)导入依赖:完整pom文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jikeh</groupId>
<artifactId>mybatis_demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mybatis_demo</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<resource.path>${basedir}/src/main/resources</resource.path>
<resource.include>*.*</resource.include>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- mybatis依赖包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!-- mysql数据库 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!-- 常用工具类库:一般都会加入该工具 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<!-- json操作库 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.37</version>
</dependency>
</dependencies>
</project>
3)建立srcmain esources文件:存放相关配置
最终的目录结构:
二、使用mybatis
1)按照上面的目录接口,使用mybatis:
db:数据库——jikeh;表——user;
CREATE TABLE `user` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
文件功能说明:
demo:程序入口(main函数)
ITestMapper:接口映射文件(封装数据库操作方法名)
User:bean(对应表的结构)
mybatis-config.xml:连接mysql;引入mapper映射文件
TestMapper.xml:sql语句、结果映射
2)代码展示
User:
package com.jikeh.mybatis_demo;
public class User {
private int id;
private String name;
public User() {
}
public User(String name) {
this.name = name;
}
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;
}
}
ITestMapper:
package com.jikeh.mybatis_demo;
public interface ITestMapper {
User selectByPrimaryKey(Integer id);
int insert(User record);
}
TestMapper.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.jikeh.mybatis_demo.ITestMapper">
<!--定义结果集的格式-->
<resultMap id="BaseResultMap" type="com.jikeh.mybatis_demo.User">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
</resultMap>
<!--定义处理的字段-->
<sql id="Base_Column_List">
id, name
</sql>
<!--定义select操作-->
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from user
where id = #{id,jdbcType=INTEGER}
</select>
<!--定义查询语句-->
<insert id="insert" parameterType="com.jikeh.mybatis_demo.User">
insert into user (name)
values (#{name,jdbcType=VARCHAR})
</insert>
</mapper>
mybatis-config.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.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/jikeh?useUnicode=true&characterEncoding=utf-8&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--引入mapper映射文件:完整增删改查操作-->
<mappers>
<mapper resource="TestMapper.xml"/>
</mappers>
</configuration>
demo:
package com.jikeh.mybatis_demo;
import com.alibaba.fastjson.JSONObject;
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 java.io.IOException;
/**
* Author :极客慧
* Date :2018-01-11 11:10.
*/
public class demo {
public static SqlSession getSqlSession() throws IOException {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
return sqlSessionFactory.openSession();
}
public static User get(SqlSession sqlSession, int id) {
ITestMapper testMapper = sqlSession.getMapper(ITestMapper.class);
return testMapper.selectByPrimaryKey(id);
}
public static int insert(SqlSession sqlSession, User test) {
ITestMapper testMapper = sqlSession.getMapper(ITestMapper.class);
return testMapper.insert(test);
}
public static void main(String[] args) throws IOException {
// 获取操作句柄
SqlSession sqlSession = getSqlSession();
try {
System.out.println(JSONObject.toJSONString(get(sqlSession, 1)));
System.out.println(insert(sqlSession, new User("java慧")));
} finally {
sqlSession.commit();
sqlSession.close();
}
}
}
拓展:
仅介绍了mybatis的简单使用,可以查看官网文档,继续扩展里面的功能……