一、系统环境
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&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&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的博客-CSDN博客_安装maven
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。