小白从头学习框架,这一章主要介绍如何基于Maven建立Mybatis和Mysql的连接
使用工具:IDEA、Maven、Mysql、Mybatis
如果文章有错误的话,欢迎指正,谢谢啦
文章目录
第一步 新建Maven项目
为了后续学习,我直接新建的web项目
2选择你安装的jdk
3勾选意味着依据模板创建
4选择webApp模板,注意不要选错
第二步 Mysql数据库建表
这一步需要在数据库中新建一个你想查询的表格,如果已经有表可以使用就不需要新建,我建立的表格如下所示
第三步 项目结构
项目的主要结构如下所示,可以依据下图创建对应的目录
第四步 创建实体类
依据Mysql创建的表格,创建一个对应的实体类,类的路径为src/main/java/com/wanru/entity/User.java
package com.wanru.entity;
/**
* @Author:WWR
* @Date: 2021/5/8- 05- 08- 9:57
* @Description:com.wanru.entity
* @Version:1.0
*/
public class User {
private Integer id;
private String name;
private Integer age;
//注意一定要创建无参构造否则会报错!!!
public User() {
}
public User(Integer id, String name, Integer age) {
this.id = id;
this.name = name;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
第五步 Maven导包,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.wanru</groupId>
<artifactId>TestMybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>TestMybatis Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<!--1 修改pom.xml中jdk版本,将其改为与你jdk对应的版本-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<!-- 2找到项目中的pom.xml文件,并加入以下依赖-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<!--mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.6</version>
</dependency>
<!-- mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
</dependencies>
<build>
<finalName>TestMybatis</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
<!-- 3 为了防止后续运行过程中出现找不到xml文件或者properties文件的情况,在pom.xml的build标签中,加入resource路径配置 -->
<resources>
<resource>
<directory>src/main/java/com/wanru</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>
第五步 添加Mysql链接的参数配置文件
在resources包下,新建mysql.properties文件,添加mysql需要用到的参数设置,后续就可以重复使用,不需要每次写一堆
driver=com.mysql.jdbc.Driver
<!-- 其中,3306代表数据库设置的端口号,wanru代表数据库名称 -->
url=jdbc:mysql://localhost:3306/wanru
<!-- root是你数据库的用户名,passwor是对应的密码 -->
username=root
password=123456
第六步 配置log4j.properties文件
这一步不是必须的,lo4j是作为日志工具方便查阅,不是必须的
如果想要使用log4j日志工具,除了导入对应的依赖还需要配置文件,否则会报错,该文件放在resources包下
log4j.rootLogger=debug, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=5
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
第七步 新建Dao层文件
在目录中的dao包下新建UserDao接口文件
package com.wanru.dao;
import com.wanru.entity.User;
import java.util.List;
/**
* @Author:WWR
* @Date: 2021/5/8- 05- 08- 9:56
* @Description:com.wanru.dao
* @Version:1.0
*/
public interface UserDao {
public List<User> selectAll();
}
第八步 新建Mapper映射文件
在目录的Mapping包下,新建UserMapper.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">
<!-- 这里的namespace需要改成UserDao的路径 -->
<mapper namespace="com.wanru.dao.UserDao">
<!-- id中的selectAll必须与UserDao接口文件中定义的函数同名
因为select返回的是表中的user信息,所以返回类型指的是第四步中创建的实体类的路径-->
<select id="selectAll" resultType="com.wanru.entity.User">
select * from user;
</select>
</mapper>
第九步 配置mybatis
需要在resources新建configuration.xml文件用来添加mybatis的相关设置
<?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配置文件, 这里面配置的是数据库相关
这里添加第五步中新建的文件 -->
<properties resource="mysql.properties"></properties>
<!-- 指定Mybatis使用log4j日志工具 -->
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 上面指定了数据库配置文件, 配置文件里面也是对应的这四个属性 -->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 映射文件 ,这里指的是第八步中所创建的映射文件,记得修改为对应的路径-->
<mappers>
<mapper resource="mapping/UserMapper.xml"/>
</mappers>
</configuration>
第十步 测试mybatis环境
新建Test类,可以在src目录下新建一个Test目录
package com.wanru;
import com.wanru.dao.UserDao;
import com.wanru.entity.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 java.io.IOException;
import java.util.List;
/**
* @Author:WWR
* @Date: 2021/5/8- 05- 08- 10:12
* @Description:com.wanru
* @Version:1.0
*/
public class Test {
public static void main(String[] args) throws IOException {
//与数据库连接
SqlSession sqlSession=getSessionFactory().openSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);
//调用dao层中的查询方法,得到数据库表user中的用户列表
List<User> list=userDao.selectAll();
for (User user : list) {
System.out.println(user);
}
}
//该函数的作用是通过mybatis提供session工厂
private static SqlSessionFactory getSessionFactory() throws IOException {
SqlSessionFactory sessionFactory=null;
String resource="configuration.xml";//这里的resource文件指的是第九步所配置的mybatis文件
sessionFactory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource));
return sessionFactory;
}
}
引用
文中代码参考了以下的文章https://www.cnblogs.com/dongying/p/4031382.html,这个博主写了很多相关的知识,值得一读