①首先创建一个maven项目
②Maven项目在pom.xml中导入如下jar包
<?xml version="1.0" encoding="UTF-8"?>
<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.lsq</groupId>
<artifactId>lsq</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!--junit测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--pojo 偷懒-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<!--数据库连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
</dependencies>
</project>
③创建对应目录:pojo(放置实体类)、dao(编写mapper)
④创建一个数据库和一个表(user表【id、name】)
⑤编写数据库连接配置文件(jdbc.properties)
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test_demo1?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=lsq666
⑥编写mybatis配置文件(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>
<!--引入数据源-->
<properties resource="jdbc.properties" />
<!--重命名-->
<typeAliases>
<package name="com.lsq.pojo"/>
</typeAliases>
<!--数据源-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper class="com.lsq.dao.UserMapper"></mapper>
</mappers>
</configuration>
⑦编写实体类(User)
package com.lsq.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String name;
}
⑧编写mapper和对应的xml文件(两个文件名必须一致即UserMapper和UserMapper.xml)
package com.lsq.dao;
import com.lsq.pojo.User;
//UserMapper 文件内容
public interface UserMapper {
User FindById(Integer id);
}
上面是mapper文件,下面是对应的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.lsq.dao.UserMapper">
<select id="FindById" parameterType="int" resultType="com.lsq.pojo.User">
SELECT id,name from user WHERE id=#{id}
</select>
</mapper>
⑨Junit测试(在test文件夹下创建测试类)
以下为测试内容:
import com.lsq.dao.UserMapper;
import com.lsq.pojo.User;
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.junit.Test;
import java.io.IOException;
import java.io.InputStream;
public class test1 {
@Test
public void test_demo(){
try {
//读取mybatis的核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
//获得工厂对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//通过工厂创建一个会话对象
SqlSession sqlSession = factory.openSession();
//获得接口实现类 【动态代理模式】
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//通过mapper调用自定义的方法
User user = userMapper.FindById(1);
System.out.println(user);
/**
* 此处进行增删改 ...
*
* 然后提交事务 ...
*/
sqlSession.commit();
//释放资源
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上完整案例免费下载:点我下载
比上述案例较为复杂的例子:
①加入log4j:现在pom.xml文件中导入log4j的依赖,然后还需要一个log4j的配置文件。
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.appender.A = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A.File = D:/log.txt
log4j.appender.A.Append = true
log4j.appender.A.Threshold = DEBUG
log4j.appender.A.layout = org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.appender.A.encoding=UTF-8
log4j.rootLogger=DEBUG,Console,A
②封装连接数据库获取sqlSession的步骤
package com.lsq.utils;
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;
import java.io.InputStream;
/**
* mybatis的工具类
*/
public class MybatisUtils {
private static SqlSessionFactory factory;
//静态代码块 -- 类加载时就被执行,只执行一次
static {
try {
//以流的形式加载配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
//构建者模式构建工厂
factory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 返回一个sqlSession对象
* @return
*/
public static SqlSession getSession(){
//工厂模式创建一个
SqlSession sqlSession = factory.openSession();
return sqlSession;
}
}
③动态SQL、多条件查询,更多的接口方法用于测试
该案例的完整代码:点我零积分免费下载
此篇文章适合mybatis入门,想要学习更多,点我进入mybatis中文官方文档