1.创建maven工程并添加依赖:
<!-- Mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
2. 创建mapper接口/实体类/properties文件/工具类/测试类,结构如下:
package com.home.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Select;
import com.home.mode.User;
public interface UserMapper {
@Select("select * from tb_user")
public List<User> queryAlls();
}
package com.home.mode;
import lombok.Data;
@Data
public class User {
private Integer id;
private String username;
private String password;
private String gender;
private String addr;
}
jdbc.properties文件配置:
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
username=root
password=root
工具类,获取SqlSession对象
package com.home.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.ibatis.datasource.DataSourceFactory;
import org.apache.ibatis.datasource.pooled.PooledDataSourceFactory;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory ;
static {
Properties properties=new Properties();
InputStream is=MybatisUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
try {
properties.load(is);
//创建连接池工厂
DataSourceFactory dataSourceFactory=new PooledDataSourceFactory();
dataSourceFactory.setProperties(properties);
DataSource dataSource = dataSourceFactory.getDataSource();
//创建事务工厂
TransactionFactory transactionFactory=new JdbcTransactionFactory();
//创建Environment对象
Environment environment = new Environment("development",transactionFactory, dataSource);
//创建config对象
Configuration configuration = new Configuration(environment);
//构建包别名,作用 mapper.xml中的返回类型可以省略全路径,只写类名,在此处添加类的包名即可
configuration.getTypeAliasRegistry().registerAliases("com.home.mode");
//添加映射类所在的包
configuration.addMappers("com.home.mapper");
//创建sqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
}
测试类
package com.home;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.home.mapper.UserMapper;
import com.home.mode.User;
import com.home.util.MybatisUtils;
public class UserTest {
@Test
public void testQueryAll() {
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
List<User> users=mapper.queryAlls();
System.out.println(users);
}
}