建立一个maven项目实现数据库查询
- 建立一个maven工程
- 添加依赖
- 连接数据库,实现实体类
- 编写代码
- 写测试类
1.建立一个maven工程
建立成功后目录
修改File-setting-Maven中相关文件,改为自己的
2.在pom.xml中添加依赖
1.添加mysql的驱动
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
2.添加mybatis的依赖
<!--mybatis依赖-->
<!--https://mybatis.org/mybatis-3/zh/getting-started.html-->
<!--从上方网址进入mybatis网站找到依赖代码-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
3.添加测试类的依赖
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
依赖添加后若找不到则点击maven刷新按钮进行刷新让系统下载依赖即可。
4.在build中配置resources,来防止我们资源导出失败的问
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
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>edu.hqu</groupId>
<artifactId>mybatis-study</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--mysql的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--mybatis的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
3.创建和连接数据库,实现实体类。
-
通过cmd进入自己的数据库,创建数据库和表,添加信息
-
在XML中构建SqlSessionFactory
-
编写mybatis的核心配置文件
-
创建在resource文件夹下创建mybatis-config.xml文件
-
从mybatis中复制XML 配置文件
-
对文件内容进行更改
<dataSource type="POOLED">
<!--更改drive为自己的驱动-->
<!--对第2行写自己的连接配置文件,本机端口,use为数据库名->
<!--输入自己的用户名和密码-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/user?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
3.从 SqlSessionFactory 中获取 SqlSession
- 编写mybatis核心工具类
- 在java中创建edu.hqu.mybatis.utils.MybatisUtil类
- 从mybatis官网获取这段代码粘贴到类中
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
- 进行添加配置文件和异常处理去除错误
package edu.hqu.mybatis.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;
public class MybatisUtil {
{
try {
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 从 SqlSessionFactory 中获取 SqlSession
- 在mybatis官网中复制这段代码
SqlSession session = sqlSessionFactory.openSession())
- 创建方法类
public class MybatisUtil {
private static SqlSessionFactory sqlSessionFactory;
//获取sqlSession的工厂
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//有了sqlSession,可以从中获取SqlSession实例
// SqlSession提供了数据库执行SQL命令所需要的方法
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
4.创建实体类User
- 在mybatis下创建pojo.User
- 根据自己的表进行定义,写出方法
package edu.hqu.mybatis.pojo;
public class User {
private int id;
private String name;
private String pwd;
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;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public User() {
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
}
4.编写代码
- 创建DAO接口(Mapper)UserMapper
- 创建UserMapper.xml文件,从mybatis复制代码进行更改
<?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">
<!--在这里写sql语句方法-->
<!--查询表的所有信息-->
<!--mapper namespace改为自己的UserMapper接口路径-->
<mapper namespace="edu.hqu.mybatis.dao.UserMapper">
<!--全限定名-->
<!--id改为自己的方法名,类型改为自己的方法类-->
<select id="getAllUsers" resultType="edu.hqu.mybatis.pojo.User">
<!--改为自己的sql语句-->
select * from user;
</select>
</mapper>
写完后要在Mybatis中的Mapper中进行替换
<mappers>
<mapper resource="edu/hqu/mybatis/dao/UserMapper.xml"/>
</mappers>
5.写测试类
- 在test中创建edu.hqu.mybatis.dao.UserMapperTest测试类
package edu.hqu.mybatis.dao;
import edu.hqu.mybatis.pojo.User;
import edu.hqu.mybatis.utils.MybatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserMapperTest {
@Test
public void testGetAllUsers() {
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> allUsers = mapper.getAllUsers();
for (User allUser : allUsers) {
System.out.println(allUser);
}
}
}