mybaties简单入门以及配置文件的简单优化

一:什么是mybatis?

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。MyBatis 使用简单的 XML 或注解来配置和映射基本体,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 --------------------- 作者:于亮 来源:CSDN 原文:https://blog.csdn.net/jiuqiyuliang/article/details/45286191?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

 

 MyBatis参考资料官网:https://mybatis.github.io/mybatis-3/zh/index.html

 

优化一:

       数据库配置信息采用properties文件方式存储,便于后期更改

二:mybatis的简单运用:

  1. 创建一个简单的java项目,添加mybatis需要用到的饿jar包(两个jar包):

Mybatis包:mybatis-3.2.7.jar

mysql驱动包:mysql-connector-java-5.0.4-bin.jar

如下图所示:

Jar下载地址:https://download.csdn.net/download/qq_34377273/10712447

      

  1. 在mysql数据库中创建用到的测试数据库,创建一个user表:

 

  1. 添加mybatis的配置文件

在项目的src目录下创建一个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>

    <environments default="development">

        <environment id="development">

            <transactionManager type="JDBC" />

            <!-- 配置数据库连接信息 -->

            <dataSource type="POOLED">

                <property name="driver" value="com.mysql.jdbc.Driver" />

                <property name="url" value="jdbc:mysql://localhost:3306/test" />

                <property name="username" value="root" />

                <property name="password" value="root" />

            </dataSource>

        </environment>

    </environments>

   

    <!-- 注册映射文件 -->

    <mappers>

              <mapper resource="com/mybatis/mapper/userMapper.xml"/>

    </mappers>

   

</configuration>
  1. 在entity目录下创建user类,类名跟数据库字段保持一致

User类代码如下:

package com.mybatis.entity;



public class User {



     private int id;

     private String name;

     private int age;



     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 int getAge() {

          return age;

     }

     public void setAge(int age) {

          this.age = age;

     }

    



     public User() {

          super();

     }

     public User(int id, String name, int age) {

          super();

          this.id = id;

          this.name = name;

          this.age = age;

     }

     @Override

     public String toString() {

          return "User [id=" + id + ", name=" + name + ", age=" + age + "]";

     }

    

}

 

定义操作users表的sql映射文件userMapper.xml

  1. 在com.mybatis.mapper包下定义操作user表的sql映射文件userMapper.xml文件:

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">

<mapper namespace="com.mybatis.mapper.userMapper">

      <select id="queryOne" parameterType="int" resultType="com.mybatis.entity.User">

                  select * from user where id=#{uid}

      </select>

      <select id="queryAll" resultType="com.mybatis.entity.User">

                  select * from user

      </select>

     

      <insert id="addUser" parameterType="com.mybatis.entity.User">

                  insert into user(name,age) values(#{userName},#{age})

      </insert>

     

      <update id="update" parameterType="com.mybatis.entity.User">

                  update user set name=#{userName} where id=#{uid}

      </update>

     

      <delete id="del" parameterType="int">

                  delete from user where id=#{id}

      </delete>

     

</mapper>
  1. 在mybatis-config.xml文件中注册userMapper.xml文件:

 

<!-- 注册映射文件 -->

    <mappers>

      <!-- userMapper.xml位于com.mybatis.mapper这个包下,所以resource写成                com.mybatis.mapper.userMapper.xml-->

        <mapper resource="com/mybatis/mapper/userMapper.xml"/>

    </mappers>
  1. 在com.mybatis.dao包中创建UserDao类,实现数据的增删查改功能:

代码如下:

创建UserDao类,添加增删查改方法:

    /**

      * 根据id查询数据

      */

     public void queryById(){

          // 加载核心配置文件

          InputStream is = UserDao.class.getResourceAsStream("/mybatis-config.xml");

          // 创建SqlSessionFactory对象

          SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

          // 创建SqlSession对象

          SqlSession session = sessionFactory.openSession();

          User user = session.selectOne("queryById", 1);

          System.out.println(user);
    
    }

结果运行截图:

 

    /**

      * 查询全部数据

      */

     public void queryAll(){

          // 加载核心配置文件

          InputStream is = UserDao.class.getResourceAsStream("/mybatis-config.xml");

          // 创建SqlSessionFactory对象

          SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

          // 创建SqlSession对象

          SqlSession session = sessionFactory.openSession();

          List<User> userList = session.selectList("queryAll");

          System.out.println(userList);

    }

结果运行截图:

    /**

      * 添加数据信息

      */

     public void addUser(){

          // 加载核心配置文件

          InputStream is = UserDao.class.getResourceAsStream("/mybatis-config.xml");

          // 创建SqlSessionFactory对象

          SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

          // 创建SqlSession对象

          SqlSession session = sessionFactory.openSession();

          User user = new User();

          user.setName("赵六");

          user.setAge(58);

          int rel = session.insert("addUser",user);        

          System.out.println(rel);

          session.commit();

     }

     运行结果截图:

     

/**

      * 更改数据信息

      */

     public void update(){

          // 加载核心配置文件

          InputStream is = UserDao.class.getResourceAsStream("/mybatis-config.xml");

          // 创建SqlSessionFactory对象

          SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

          // 创建SqlSession对象

          SqlSession session = sessionFactory.openSession();

          User user = new User();

          user.setName("赵赵");

          user.setAge(11);

          user.setId(17);

          int rel = session.update("update", user);

          System.out.println(rel);

          session.commit();

     }

运行结果截图:

 

   /**

      * 删除数据信息

      */

     public void delete() {

          // 加载核心配置文件

          InputStream is = UserDao.class.getResourceAsStream("/mybatis-config.xml");

          // 创建SqlSessionFactory对象

          SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

          // 创建SqlSession对象

          SqlSession session = sessionFactory.openSession();

          int rel = session.delete("del",17);

          System.out.println(rel);

          session.commit();

}

运行结果截图:

 

优化:

1,Mybatis的配置文件标签是有顺序要求的,如果顺序不正确话可能会造成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><!-- 配置 -->   

            <properties /> <!-- 属性 -->   

            <settings /> <!-- 设置 -->   

            <typeAliases /> <!-- 类型命名 -->   

            <typeHandlers /> <!-- 类型处理器 -->   

            <objectFactory /> <!-- 对象工厂 -->   

            <plugins /> <!-- 插件 -->   

           

            <environments> <!-- 配置环境 -->       

                       <environment> <!-- 环境变量 -->           

                                   <transactionManager /> <!-- 事务管理器 -->           

                                   <dataSource /> <!-- 数据源 -->      

                       </environment>   

            </environments>   

            <databaseIdProvider /> <!-- 数据库厂商标识 -->   

            <mappers /> <!-- 映射器 -->

</configuration>

 

2,使用properies文件方式存储数据库的连接信息,后期便于更改:

文件内容如下:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/test

username=root

pwd=123456

 

使用properties文件后,我们的mybaties-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>

     <!-- 设置配置文件 -->

     <properties resource="db.properties"></properties>

    



    <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="${pwd}" />

            </dataSource>

        </environment>

    </environments>

  

    <!-- 注册映射文件 -->

    <mappers>

      <!-- userMapper.xml位于com.mybatis.mapper这个包下,所以resource写成com.mybatis.mapper.userMapper.xml-->

        <mapper resource="com/mybatis/mapper/userMapper.xml"/>

    </mappers>

   

</configuration>

 

 

3,为实体类定义别名,这样我们在引用时候就省去了书写类全路径的繁琐,直接写我们定义的别名即可:(注意定义别名在xml文件中的顺序问题,参考优化1

定义别名有两种方式:

一种是一个个定义别名,我们需要多次定义

    <typeAliases>

        <typeAlias type="com.mybatis.entity.User" alias="User"/>

    </typeAliases>    

还有一种可以批量定义别名,批量定义后,定义的别名默认为就是该类的类名:

    <typeAliases>

        <!-- 批量设置别名 -->

        <package name="com.mybatis.entity"/>

    </typeAliases>

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是王小贱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值