<?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>
<typeAliases>
<typeAlias type="org.example.DruidDataSourceFactory" alias="DRUID"></typeAlias>
<typeAlias type="org.entry.Events" alias="event"></typeAlias>
</typeAliases>
<environments default="zjy">
<environment id="zjy">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="DRUID">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.181.132:3306/ms\_dm\_intes"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
<environment id="zjy1">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="DRUID">
<property name="driver" value="org.apache.hive.jdbc.HiveDriver"/>
<property name="url" value="jdbc:hive2://192.168.181.132:10000/dwd\_intes"/>
<property name="username" value=""/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/mysql-events.xml"></mapper>
<mapper resource="mapper/hive-events.xml"></mapper>
</mappers>
</configuration>
hive-events.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="org.dao.HiveEventDAO">
<select id="findAll" resultType="java.util.Map" parameterType="int">
select eventid,userid,starttime,city,states,zip,country,lat,lng,features from dwd_intes.tmp where flag=#{flag}
</select>
</mapper>
mysql-events.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="org.dao.MySQLEventDAO">
<insert id="batchInsert" parameterType="java.util.List">
insert into dm_events_bak1 values
<foreach collection="list" item="eve" separator=",">
(
#{eve.eventid},#{eve.userid},#{eve.starttime},#{eve.city},
#{eve.states},#{eve.zip},#{eve.country},#{eve.lat},#{eve.lng},#{eve.features}
)
</foreach>
</insert>
</mapper>
3.JAVA代码
dao层:
HiveEventDAO
package org.dao;
import org.entry.Events;
import java.util.List;
import java.util.Map;
public interface HiveEventDAO {
public List<Events>findAll(int page);
}
MySQLEventDAO:
package org.dao;
import org.entry.Events;
import java.util.List;
public interface MySQLEventDAO {
public List<Events> findAll();
public void batchInsert(List<Events>evs);
}
实体类entry层:
Events:
package org.entry;
public class Events {
private String eventid;
private String userid;
private String starttime;
private String city;
private String states;
private String zip;
private String country;
private String lat;
private String lng;
private String features;
public String getEventid() {
return eventid;
}
public void setEventid(String eventid) {
this.eventid = eventid;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getStarttime() {
return starttime;
}
public void setStarttime(String starttime) {
this.starttime = starttime;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getStates() {
return states;
}
public void setStates(String states) {
this.states = states;
}
public String getZip() {
return zip;
}
public void setZip(String zip) {
this.zip = zip;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getLat() {
return lat;
}
public void setLat(String lat) {
this.lat = lat;
}
public String getLng() {
return lng;
}
public void setLng(String lng) {
this.lng = lng;
}
public String getFeatures() {
return features;
}
public void setFeatures(String features) {
this.features = features;
}
}
数据源util层:
DruidDataSourceFactory:
package org.example;
import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.datasource.DataSourceFactory;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Properties;
public class DruidDataSourceFactory implements DataSourceFactory
{
private Properties prop;
@Override
public void setProperties(Properties properties) {
this.prop=properties;
}
@Override
public DataSource getDataSource() {
DruidDataSource druid = new DruidDataSource();
druid.setDriverClassName(this.prop.getProperty("driver"));
druid.setUrl(this.prop.getProperty("url"));
druid.setUsername(this.prop.getProperty("username"));
druid.setPassword(this.prop.getProperty("password"));
// druid.setMaxActive(Integer.parseInt(this.prop.getProperty("maxactive")));
// druid.setInitialSize(Integer.parseInt(this.prop.getProperty("initialsize")));
try {
druid.init();
} catch (SQLException e) {
e.printStackTrace();
}
return druid;
}
}
DatabaseUtils:
package org.example;
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;
public class DatabaseUtils {
## 最后:学习总结——MyBtis知识脑图(纯手绘xmind文档)
学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)

除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!
加入社区:https://bbs.youkuaiyun.com/forums/4304bb5a486d4c3ab8389e65ecb71ac0
MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)
[外链图片转存中...(img-WsixtShu-1725668337887)]
除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!
加入社区:https://bbs.youkuaiyun.com/forums/4304bb5a486d4c3ab8389e65ecb71ac0