Jetson Nano mfc file sharepoint datatable 后台模板下载 bootstrap后台模板 android实战项目 it教学视频 linux查看mysql进程 pcie转sata linux全局搜索文件 kubernetes实战 mysql新建数据库 python输出中文 python位操作 java初级 java循环语句 java写入txt文件 java获取当前年月 java将数据写入文件 java怎么学 java日期转时间戳 数科阅读器 整站系统 音乐剪辑器下载 8元秒电脑 win10有哪些版本 ps反向选择的快捷键 js给标签添加属性 头条视频解析 透视网格工具怎么取消 珊瑚版 固态硬盘有什么用 戴尔键盘灯怎么开 firework软件 fla文件用什么打开 wps表头每页都显示 studio3t 华为悦盒怎么用
当前位置: 首页 > 学习教程  > 编程语言

MyBatis 原生使用

2021/1/28 22:36:47 文章标签:

结合官方文档&#xff0c;试了一下 MyBatis 原生使用。源码已上传到 github https://github.com/ConstXiong/toy/tree/master/demo/mybatis 1、maven 依赖&#xff0c;MySQL驱动 MyBatis 3.5.5 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi&q…

结合官方文档,试了一下 MyBatis 原生使用。源码已上传到 github

https://github.com/ConstXiong/toy/tree/master/demo/mybatis

 

1、maven 依赖,MySQL驱动 + MyBatis 3.5.5

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

    <parent>
        <groupId>constxiong</groupId>
        <artifactId>demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>mybatis</artifactId>

    <dependencies>
        <!-- MySQL 8.0.21 驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.21</version>
        </dependency>

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

    </dependencies>

    <build>

    </build>
</project>

 

2、MyBatis 配置文件 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://172.31.32.184:3306/constxiong?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="constxiong@123"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="constxiong/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

 

3、写 SQL 的 mapper 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="constxiong.mapper.UserMapper">

    <select id="selectUser" resultType="constxiong.po.User" parameterType="constxiong.po.User">
        select * from user where id = #{id}
    </select>

    <insert id="insertUser" parameterType="constxiong.po.User">
        insert into user values(#{id}, #{name})
    </insert>

</mapper>

 

4、Mapper 接口类,结合使用了 @Select

package constxiong.mapper;

import constxiong.po.User;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * UserMapper 接口,映射对数据库的操作
 */
public interface UserMapper {

    public User selectUser(int id);

    public int insertUser(User user);

    @Select("select * from user")
    public List<User>  selectAllUsers();
}

 

5、User PO 模型

package constxiong.po;

/**
 * 用户表模型
 */
public class User {
    private Integer id;

    private String name;

    public User(Integer id, String name) {
        this.id = id;
        this.name = name;
    }

    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;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

 

6、测试 MyBatis xml 与 注解的使用

package constxiong;

import constxiong.mapper.UserMapper;
import constxiong.po.User;
import org.apache.ibatis.datasource.pooled.PooledDataSource;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

/**
 * 测试 Mybatis xml 与 注解的使用
 */
public class Test {

    public static void main(String[] args) throws IOException {
        testXmlConfig();
        testJavaConfig();
    }

    /**
     * 测试 xml 配置方式
     */
    private static void testXmlConfig() throws IOException {
        String resource = "mybatis-config.xml";//xml配置文件路径
        InputStream inputStream = Resources.getResourceAsStream(resource);//读取配置
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//构建 SqlSessionFactory
        SqlSession sqlSession = sqlSessionFactory.openSession(true);//通过 SqlSessionfactory 获取 SqlSession

        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);//通过 SqlSession 获取 Mapper 接口

        //插入 user
        userMapper.insertUser(new User(1, "ConstXiong1"));
        //查询该 user
        User user = userMapper.selectUser(1);
        System.out.println(user);
        //查询所有 user 数据
        List<User> users = userMapper.selectAllUsers();
        System.out.println(users);

        //关闭 SqlSession
        sqlSession.close();
    }

    /**
     * 测试 Java 方式
     */
    private static void testJavaConfig() {
        // 创建数据源
        DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver",
                "jdbc:mysql://172.31.32.184:3306/constxiong?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8",
                "root",
                "constxiong@123");
        //事务
        TransactionFactory transactionFactory = new JdbcTransactionFactory();
        //环境
        Environment environment = new Environment("development", transactionFactory, dataSource);
        //配置
        Configuration configuration = new Configuration(environment);
        //注册
        configuration.addMapper(UserMapper.class);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);

        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //插入 user
        userMapper.insertUser(new User(2, "ConstXiong2"));
        //查询该 user
        User user = userMapper.selectUser(2);
        System.out.println(user);
        //查询所有 user 数据
        List<User> users = userMapper.selectAllUsers();
        System.out.println(users);

        //关闭 SqlSession
        sqlSession.close();
    }
}

 

7、运行结果

User{id=1, name='ConstXiong1'}
[User{id=1, name='ConstXiong1'}]
User{id=2, name='ConstXiong2'}
[User{id=1, name='ConstXiong1'}, User{id=2, name='ConstXiong2'}]

 

 


【Java学习资源】整理推荐

  • Java 8 Stream API Demo
  • Druid 使用
  • 借助 libreoffice,word 转 pdf 体验
  • Java 动态代理
  • openjdk jol 工具打印 Java 对象内存布局
  • Spring整合MyBatis
  • MyBatis 自定义插件
  • MyBatis 延迟加载
  • MyBatis 1对1 1对多 关联查询
  • MyBatis insert 获取自增主键
  • MyBatis 批量插入
  • 分页插件 Mybatis-PageHelper
  • MyBatis 原生使用
  • Sharding-JDBC 实现分库分表
  • JDK1.8 中的日期与时间 API
  • Sharding-JDBC 实现读写分离

 

 


【Java面试题与答案】整理推荐

  • 基础与语法
  • 集合
  • 网络编程
  • 并发编程
  • Web
  • 安全
  • 设计模式
  • 框架
  • 算法与数据结构
  • 异常
  • 文件解析与生成
  • Linux
  • MySQL
  • Oracle
  • Redis
  • Dubbo

 


本文链接: http://www.dtmao.cc/news_show_650031.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?