1.编写一个接口(IProductDao.java)
package com.xx.dao;
import com.xx.pojo.Products;
import java.util.List;
/**
* Created by yzx on 2020-07-16.
*/
public interface IProductDao {
List<Products> getAllProducts();
}
2.编写映射文件(ProductsMapper.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.xx.dao.IProductDao">
<select id="getAllProducts" resultType="Products">
select * from products
</select>
</mapper>
3.数据库连接(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>
<typeAliases>
<!--<typeAlias type="com.xx.pojo.User" alias="u"/>-->
<package name="com.xx.pojo" />
</typeAliases>
<environments default="MySqlDB">
<environment id="MySqlDB">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="org.apache.ibatis.datasource.pooled.PooledDataSourceFactory">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/mybatisdemo?useSSL=true&serverTimezone=UTC&characterEncoding=UTF-8&verifyServerCertificate=false"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/mapper/ProductsMapper.xml"/>
</mappers>
</configuration>
4.数据库访问(SqlSessionUtil.java)
package com.xx.util;
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;
/**
* Created by yzx on 2020-07-16.
*/
public class SqlSessionUtil {
private static SqlSession mSession = null;
private static SqlSessionFactory mFactory = null;
static {
try {
mFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取SqlSession对象的方法
* @return
*/
public static SqlSession getSqlSession(){
mSession = mFactory.openSession(true);
return mSession;
}
/**
* 关闭SqlSession对象
* @param session
*/
public static void closeSqlSession(SqlSession session){
if(session != null){
session.close();
session = null;
}
}
}
5.编写pom.xml
<?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.xx</groupId>
<artifactId>MyBatisDemo2</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
6.实体(Products.java)
package com.xx.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Created by yzx on 2020-07-15.
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Products {
private String pid;
private String img;
private String pname;
private double price;
private Types t;
}
7.测试类(Test1.java)
package dao;
import com.xx.dao.IOrderDao;
import com.xx.dao.IProductDao;
import com.xx.pojo.Orders;
import com.xx.pojo.Products;
import com.xx.util.SqlSessionUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* Created by yzx on 2020-07-16.
*/
public class Test1 {
private SqlSession session = null;
private IProductDao productDao = null;
private IOrderDao orderDao = null;
@Before
public void getObject() {
session = SqlSessionUtil.getSqlSession();
}
@After
public void close() {
SqlSessionUtil.closeSqlSession(session);
}
@Test
public void testGetALLProducts() {
productDao = session.getMapper(IProductDao.class);
for (Products p : productDao.getAllProducts()) {
System.out.println(p);
}
}
//@Test
public void testGetALLOrders() {
// 使用SqlSession对象的getMapper(接口的类对象)方法得到接口对象
orderDao = session.getMapper(IOrderDao.class);
for (Orders o : orderDao.getAllOrders()) {
System.out.println(o);
}
}
}
8.数据库
9.运行结果