mybatis整合(手动添加jar包方式)

操作步骤

创建数据库

建立user表

放入数据

1、创建javaweb工程并添加Jar包

用到的jar包

junit 用于测试

mybatis框架:mybatis-3.5.9.jar

mysql数据库:mysql-connector-java-8.0.28.jar 

2、添加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>
    <!-- 配置内容在这里 -->


</configuration>

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=root

 编写”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>
    <properties resource="database.properties"></properties>
    <typeAliases>
        <package name="entity"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC&amp;useSSL=false"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"></mapper>
    </mappers>
</configuration>

 ”mybatis-config.xml”的配置节点说明

1、configuration:

        配置文件的根元素节点

2、environments:

        表示配置MyBaits的多套运行环境,该元素节点下可以配置多个environment子元素节点

3、environment:

        配置Mybaits的一套运行环境,需指定运行环境ID、事务管理(transactionManager)和数据源(dataSource)配置等相关信息

4、mappers:

        其下可以配置多个mapper节点来具体指定SQL映射文件的路径,resource属性的值表述了类资源路径下的SQL映射文件的路径

3、创建实体类

package entity;

public class User {

    private String username;
    private String password;
    private Integer age;
    private String sex;
    private String birthDate;

    public User() {
    }

    public User(String username, String password, Integer age, String sex, String birthDate) {
        this.username = username;
        this.password = password;
        this.age = age;
        this.sex = sex;
        this.birthDate = birthDate;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(String birthDate) {
        this.birthDate = birthDate;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", birthDate=" + birthDate +
                '}';
    }
}

注: 1、类的名称不一定和表名相同

2、属性名称和数据库字段名称相同,才能自动映射

3、属性类型需要和数据库字段类型对应

4、每一个属性都要生成get/set方法 

4、创建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="/">
        <!-- SQL映射写在这里 -->
</mapper>

 编辑”UserMapper.xml”SQL映射内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="/">
    <select id="findAll" resultType="user">
select * from user
    </select>

    <select id="findAll2" resultType="map">
select * from user
    </select>

    <select id="myCount" resultType="int" parameterType="map">
        select count(*) from smbms_bill join smbms_provider on smbms_bill.providerId=smbms_provider.id where smbms_provider.proName like concat('%',#{proName},'%') and isPayment=#{isPayment}
    </select>
</mapper>

<!--建立映射关系-->

配置节点说明 

select:表示查询语句

id属性:表示该SQL语句的唯一标识符

resultType属性:表示SQL语句返回值类型,此处通过SQL语句查询数据,将数据直接映射到User实体类上 

5、代码测试,输出结果

import 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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class UserMapperTest {
    @Test
    public void Test01() throws IOException {
        System.out.println(" = ");
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory build = sqlSessionFactoryBuilder.build(inputStream);
        SqlSession sqlSession = build.openSession();
        List<User> findAll = sqlSession.selectList("findAll");
        for (User user: findAll) {
            System.out.println("user = " + user);
        }
        sqlSession.close();
    }

    @Test
    public void Test02() throws IOException {

        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory build = sqlSessionFactoryBuilder.build(inputStream);
        SqlSession sqlSession = build.openSession();
        List<Map<String,Object>> findAll = sqlSession.selectList("findAll2");
        for (Map<String, Object> stringObjectMap : findAll) {
            System.out.println("stringObjectMap = " + stringObjectMap);
        }
        sqlSession.close();
    }

  
}

 结果为list集合对象

结果为map集合对象 

6、扩展 

configuration 根节点

        properties    可以配置在Java 属性配置文件中

        settings    修改 MyBatis 在运行时的行为方式

        typeAliases   为 Java 类型命名一个别名(简称)

        typeHandlers   类型处理器

        objectFactory   对象工厂

        plugins   插件

        environments   环境

                environment   环境变量

                        transactionManager  事务管理器

                        dataSource   数据源

        mappers    映射器

注意顺序不然会爆红

typeAliases元素的作用是配置类型别名

二选一推荐第二个

这个可以指定名称

作用是简化代码

默认是类首字母小写的名称

通过package的name属性直接指定包名,Mybatis会自动扫描指定包下的JavaBean,并设置一个别名,默认名称为非限定类名

原本要这样写

 现在

属性文件: 文件后缀为.properties 这种文件以key=value格式存储内容 

指定类资源路径下的属性文件 

使用${}占位符和属性文件中的键名来实现动态配置

 mapper

namespace属性的作用: namespace和子元素的id联合保证全局唯一,区别不同的映射文件 绑定DAO接口,即面向接口编程

  • 27
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值