基于Maven的Mybatis开发环境搭建

1.首先我们需要创建一个基于Maven的java项目

2.在数据库中创建一张表及在idea中创建对应实体类

 package com.ffyc.mybatisdemo.model;
 ​
 public class Admin {
 ​
      private int id;
      private String account;
      private String password;
      private String xb;
      private String adminPhone;
 ​
 ​
     public String getXb() {
         return xb;
     }
 ​
     public void setXb(String xb) {
         this.xb = xb;
     }
 ​
     public String getAdminPhone() {
         return adminPhone;
     }
 ​
     public void setAdminPhone(String adminPhone) {
         this.adminPhone = adminPhone;
     }
 ​
     public Admin() {
         System.out.println("Admin无参构造");
     }
 ​
     public Admin(String account, String password, String gender) {
         this.account = account;
         this.password = password;
         this.xb = gender;
     }
 ​
     public int getId() {
         return id;
     }
 ​
     public void setId(int id) {
         System.out.println("SetId");
         this.id = id;
     }
 ​
     public String getAccount() {
         return account;
     }
 ​
     public void setAccount(String account) {
         this.account = account;
     }
 ​
     public String getPassword() {
         return password;
     }
 ​
     public void setPassword(String password) {
         this.password = password;
     }
 ​
 ​
 ​
     @Override
     public String toString() {
         return "Admin{" +
                 "id=" + id +
                 ", account='" + account + '\'' +
                 ", password='" + password + '\'' +
                 ", xb='" + xb + '\'' +
                 ", adminPhone='" + adminPhone + '\'' +
                 '}';
     }
 }
 
 
  • 注:

    • 我们在创建实体类时尽量保证属性名与数据库中的字段名相同

    • 在实体类中一定要给私有属性提供公共的get()和set()方法

    • 保证类中有无参构造方法

3.在pom.xml中导入Mybatis jar包,数据库驱动包

Mybatis在Maven仓库中的项目坐标如下:

<!--mybatis-->
   <dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.4.2</version>
   </dependency>

数据库驱动包在Maven仓库中的项目坐标如下:

 <!--mysql-->
 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
 <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.16</version>
 </dependency>

4.创建外部配置文件保存jdbc连接信息

我们将此文件命名为config.properties

 driverName=com.mysql.cj.jdbc.Driver
 url=jdbc:mysql://127.0.0.1:3306/ssmdb?serverTimezone=Asia/Shanghai
 username=root
 password=111
  • 注:

    • 此处为键值对封装,所以配置属性文件中并没有双引号此处应特别注意

5.创建AdminMapper.xml SQL映射文件

我们创建SQL映射文件后要在全局配置文件中进行注册,之后在此文件中进行SQL映射.

 <?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.ffyc.mybatisdemo.dao.AdminDao">
     <select id="findAdminById" parameterType="int" resultType="Admin">
         select * from admin where id = #{id}
     </select>
 </mapper>
  • 注:

    • 此处开发时我们应该遵循接口开发规范:

      • 1.此处的namespace命名空间与dao所在目录一致

      • id与dao中所需抽象方法名一致

      • 方法名与对应的mapper中的标签id一致

      • 方法参数,返回值类型与mapper中标签定义的参数烈性返回值一致

6.创建全局配置文件

全局配置文件用于配置数据库的连接信息,此处我们一次将后续经常使用的配置直接进行配置

 
<?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>
 <!--  mybatis全局配置文件-->
     <!--读入属性文件-->
     <properties resource="config.properties"></properties>
     <!--全局配置-->
     <settings>
         <!--日志功能-->
         <setting name="logImpl" value="STDOUT_LOGGING"/>
         <!--从经典的数据库命名转为java的驼峰命名-->
         <setting name="mapUnderscoreToCamelCase" value="true"/>
         <!--开启全局二级缓存-->
         <setting name="cacheEnabled" value="true"></setting>
     </settings>
     <!--配置类型别名-->
     <typeAliases>
         <!--<typeAlias type="com.ffyc.mybatisdemo.model.Admin" alias="Admin"></typeAlias>-->
         <package name="com.ffyc.mybatisdemo.model"/>
     </typeAliases>
     <environments default="development">
         <environment id="development">
             <!--事物管理使用配置文件默认的  事物是一次对数据操作过程的管理,必须是满足原子性特能-->
             <transactionManager type="JDBC"/>
             <!--是否使用数据库连接池功能-->
             <dataSource type="POOLED">
                 <property name="driver" value="${driverName}"/>
                 <property name="url" value="${url}"/>
                 <property name="username" value="${username}"/>
                 <property name="password" value="${password}"/>
             </dataSource>
         </environment>
     </environments>
 ​
     <!--注册SQL映射文件-->
     <mappers>
         <mapper resource="mappers/AdminMapper.xml"/>
     </mappers>
 </configuration>
  • 注:

    • 在此处我们需要在<properties>标签中导入我们的属性文件以用来获取数据库连接

    • 必须在<mappers>标签中注册对应的SQL映射文件,每一个mapper文件都必须在全局配置文件中进行注册

    • 开启日志功能之后Mybatis会自动帮我们打印日志信息

    • 为我们的自定义类配置类型别名之后,我们在编写时就可以不用每次都编写全类名,直接写别名即可

7.编写dao

我们需要将dao创建为一个接口,并在其中编写所需抽象方法

 package com.ffyc.mybatisdemo.dao;
 ​
 import com.ffyc.mybatisdemo.model.Admin;
 import org.apache.ibatis.annotations.Param;
 ​
 public interface AdminDao {
 ​
     Admin findAdminById(int id);
 ​
 }

8.编写测试类

 package com.ffyc.mybatisdemo.test;
 ​
 import com.ffyc.mybatisdemo.dao.AdminDao;
 import com.ffyc.mybatisdemo.model.Admin;
 import com.ffyc.mybatisdemo.util.MybatisUtil;
 import org.apache.ibatis.session.SqlSession;;
 import java.io.IOException;
 ​
 public class Test1 {
 ​
     public static void main(String[] args) throws IOException {
 ​
 ​
         //创建SqlSession
         SqlSession sqlSession = MybatisUtil.getSqlSession();
        // Admin admin = sqlSession.selectOne("com.ffyc.admin.findAdminById", 1);
 ​
         //动态生成一个代理对象(mybatis框架生成),由代理对象去调用mapper文件中的方法
         AdminDao adminDao = sqlSession.getMapper(AdminDao.class);
         Admin admin = adminDao.findAdminById(1);
         System.out.println(admin);
         sqlSession.close();
     }
 }
  • 注:

    • 此处由于SqlSessionFactory创建的开销比较大,且是用于封装数据库的连接信息,所以我们没有必要在每个测试中都创建一次.因此我们直接将创建SQLSessionFactory的部分封装到一个Util类中,这样我们整个项目只有在第一次创建SQLSessionFactory,之后的使用过程中直接调用Util方法创建SQLSession即可.

      package com.ffyc.mybatisdemo.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;
       import java.io.InputStream;
       ​
       public class MybatisUtil {
       ​
           static SqlSessionFactory sqlSessionFactory = null;
           static{
               //读取mybatis全局配置文件
               InputStream inputStream = null;
               try {
                   inputStream = Resources.getResourceAsStream("mybatisConfig.xml");
               } catch (IOException e) {
                   e.printStackTrace();
               }
               //创建SqlSessionFactory.由于SQLSessionFactory创建开销大,用于封装数据库连接信息,所以没有必要每次创建
               sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
           }
       ​
           public static SqlSession getSqlSession(){
               return sqlSessionFactory.openSession();
           }
       }

到此我们的基于Maven的Mybatis框架就搭建完成了!!!

猜你喜欢

转载自blog.csdn.net/weixin_52629592/article/details/125842984