在IDEA上建立MyBatis工程,并联动远程服务器的MySQL

本文介绍了搭建MyBatis项目以读取服务器中MySQL数据库表数据的详细过程。包括本地端安装和配置Maven,使用IDEA建立项目,在项目中添加各类文件及代码,在MySQL中添加表与数据,最终运行项目实现数据库与Java类和对象的映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、系统环境

 

1.本地端环境:Win10 1903;IDEA 2020.1.3;JDK 1.8

2.服务器环境:Ubuntu 20;MySQL 8.0.22

二、详细过程

1.本地端安装Maven

前往Maven – Download Apache Maven下载最新版的Maven程序

在本地解压放到合适的位置,然后添加系统变量(路径根据自己的情况作适当修改):

MAVEN_HOME      D:\Apps\apache-maven-3.6.3

然后添加Path新内容:

;%MAVEN_HOME%\bin;

2.本地端配置Maven

首先配置Maven用指定的repository文件夹来存放内容,打开conf/settings.xml

按照下图蓝框的样式,写红框中的内容,用来指定Maven资源路径

然后配置Maven用国内阿里云加载资源,加快加载速度,继续在settings.xml中修改下图内容,同样参考蓝框的样式,写出红框中的内容(图中阿里云Maven资源的网址:http://maven.aliyun.com/nexus/content/groups/public/)。

保存后退出。在命令行界面执行如下指令:

mvn help:system

此时maven会从阿里云源下载一些数据包,等待其下载完成即可,Maven配置完成。

3.IDEA建立项目

下面将建立一个MyBatis的演示项目,演示简单的读取服务器中MySQL数据库中的表的数据,其中实现了数据库与java类+对象的映射效果。新建Maven项目,首页配置按照下图所示

然后点击下一步,对其命名,再点击下一步,蓝色框中选择我们刚才部署的Maven路径;红色框与紫色框中的内容应该会自动生成,不生成可以自己按照图中格式定制路径,其中紫色框就是上面刚配置的maven的repository路径。

4.在建立的maven项目中添加内容

4.1首先按如下图样式建立文件与文件夹,注意名字带.的文件夹都是包名,不是一个文件夹,建立的时候要注意。

4.2然后开始写里面的内容,首先是API01_user.java,它是一个接口:

package len.mybatis;

import java.util.List;

/**
 * 【用户持久层接口】
 */
public interface API01_user {
    /*
    查询所有操作
     */
    List<mybatis01_user_mysql> findAll1();
}

4.3然后是mabatis01_user_mysql.java

package len.test;

import len.mybatis.API01_user;
import len.mybatis.mybatis01_user_mysql;
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;
import java.util.List;

/**
 * 【MyBatis入门案例】     视频课源:SSM框架 8
 */

public class MyBatisTest01 {
    public static void main(String[] args) throws IOException {
        // 1.读取配置文件
        InputStream inputStream1 = Resources.getResourceAsStream("SqlMapConfig.xml");
        // 2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory1 = sqlSessionFactoryBuilder.build(inputStream1);
        // 3.使用工厂生产SqlSession对象
        SqlSession sqlSession1 = sqlSessionFactory1.openSession();
        // 4.使用SqlSession创建api01_user.java接口的代理对象
        API01_user api01_user1 = sqlSession1.getMapper(API01_user.class);
        // 5.使用代理对象执行方法
        List<mybatis01_user_mysql> user1 = api01_user1.findAll1();
        for(mybatis01_user_mysql user:user1){
            System.out.println("打印User结果:" + user);
        }
        // 6.释放资源
        sqlSession1.close();
        inputStream1.close();
    }
}

4.4然后是Mapper01.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 对应教程中:IUserDao.xml -->
<!-- 作用:创建映射文件;对应java文件:API01_user.java -->
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="len.mybatis.API01_user">
    <!-- id写的就是api01_user厘米的findAll1方法 -->
    <select id="findAll1" resultType="len.mybatis.mybatis01_user_mysql">
        select * from user;
    </select>
</mapper>
<!--
 【注意事项】
 1.mybatis的映射配置文件位置必须和API01_user.java接口的包结构相同
 2.映射配置文件的mapper标签namespace属性的取值必须是API01_user.java接口的全限定类名
 3.映射配置文件的操作配置(select),id属性的取值必须是API01_user.java接口的方法名,如上面写的findAll1
 -->

4.5然后是log4j.properties:

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

上面的代码复制后,IDEA会提示错误,不用理会就可以。

4.6然后是SqlMapConfig.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 导入MyBatis配置文件Config的约束 -->
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<!-- MyBatis的主配置 -->
<configuration>
    <environments default="mysql">
        <!-- 配置MySQL的环境 -->
        <environment id="mysql">
            <!-- 配置事务的类型 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源(也叫连接池) -->
            <dataSource type="POOLED">
                <!-- 配置连接数据库的4个基本信息 -->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>  <!-- 旧版写法:<property name="driver" value="com.mysql.jdbc.Driver"/> -->
                <property name="url" value="jdbc:mysql://192.168.3.22:3306/eesy_mybatis?useUnicode=true&amp;characterEncoding=utf-8"/>
                <property name="username" value="boyLenPC"/>
                <property name="password" value="0001"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
    <mappers>
        <mapper resource="len/mybatis/Mapper01.xml"/>
    </mappers>
</configuration>
        <!--  -->

上面代码中,value="jdbc:mysql://192.168.3.22:3306/eesy_mybatis?useUnicode=true&amp;characterEncoding=utf-8"代码就是远程服务器MySQL的信息;192.168.3.22是服务器Host,3306是服务器上MySQL的默认端口;eesy_mybatis是要查询的数据表名字。这三个都可根据自己的配置情况做修改,其余代码不要动。

4.7最后是MyBatisTest01.java:

package len.test;

import len.mybatis.API01_user;
import len.mybatis.mybatis01_user_mysql;
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;
import java.util.List;

/**
 * 【MyBatis入门案例】     视频课源:SSM框架 8
 */

public class MyBatisTest01 {
    public static void main(String[] args) throws IOException {
        // 1.读取配置文件
        InputStream inputStream1 = Resources.getResourceAsStream("SqlMapConfig.xml");
        // 2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory1 = sqlSessionFactoryBuilder.build(inputStream1);
        // 3.使用工厂生产SqlSession对象
        SqlSession sqlSession1 = sqlSessionFactory1.openSession();
        // 4.使用SqlSession创建api01_user.java接口的代理对象
        API01_user api01_user1 = sqlSession1.getMapper(API01_user.class);
        // 5.使用代理对象执行方法
        List<mybatis01_user_mysql> user1 = api01_user1.findAll1();
        for(mybatis01_user_mysql user:user1){
            System.out.println("打印User结果:" + user);
        }
        // 6.释放资源
        sqlSession1.close();
        inputStream1.close();
    }
}

代码写完了,以上的一些路径的代码,如果想修改的话,可以根据情况修改即可,但要注意要与工程内文件夹的结构一致。

5.在MySQL中添加表与数据

在xshell的mysql模式下输入以下指令,添加表与表头:

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(32) NOT NULL COMMENT '用户名称',
  `birthday` datetime default NULL COMMENT '生日',
  `sex` char(1) default NULL COMMENT '性别',
  `address` varchar(256) default NULL COMMENT '地址',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

此时表已经建好了,然后在表中添加两个示例数据,用于上面MyBatis工程的功能演示,这里我用的是Navicat添加的数据,如图所示:

完成后运行MyBatis工程中的MyBatisTest01.java,出现下图所示结果,说明运行成功

三、参考网址

Maven安装与配置_leoxiaoge的博客-优快云博客_安装maven

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值