准备工作(建表):
CREATE TABLE `test` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of test
-- ----------------------------
INSERT INTO `test` VALUES ('1', '11231');
INSERT INTO `test` VALUES ('2', '12312');
INSERT INTO `test` VALUES ('3', '1312');
INSERT INTO `test` VALUES ('4', '564');
1.项目目录结构
2.导入jar包,需要两个:一个数据库连接jar包、一个mybatis相关jar包
2.1 jar包下载地址:https://mvnrepository.com/search?q=mybatis
2.2 jar包下载步骤
同样步骤下载好另外一个jar包。
2.3 将jar包导入项目
(1)先创建一个lib包;
(2)将下载好的jar包放到lib包下
(3)将jar添加到依赖路径中去
3. mybatis配置文件mybatis-config.xml
3.1 配置文件放的位置(两个位置都可以用,本文使用的“位置1”)
(1)放在“位置1”是java的相对路径,用下面的代码可以读取(这些在后面都有用到)
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
(2)放在“位置2”是绝对路径,用下面代码读取
绝对路径获取方法,看下图
Reader reader = Resources.getUrlAsReader("file:///" +"E:\\ideaWorkSpace\\geohash\\config\\mybatis-config1.xml");//读取绝对路径下的配置文件
数据库连接、有户名和密码改成自己的,还有<mapper resource="resources/mapper/TJunctionMapper.xml"/> 中的路径放你自己创建的写sql语句的marpper.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>
<settings>
<!-- changes from the defaults for testing -->
<setting name="cacheEnabled" value="false"/>
<setting name="useGeneratedKeys" value="true"/>
<setting name="defaultExecutorType" value="REUSE"/>
</settings>
<typeAliases>
<typeAlias alias="TJunction" type="com.cetc.entity.TJunction"></typeAlias>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://127.0.0.1:3306/geo_hash_data?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&allowMultiQueries=true"/>
<property name="username" value="root"/>
<property name="password" value="cetc28"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="resources/mapper/TJunctionMapper.xml"/>
</mappers>
</configuration>
4. mapper.xml和对应得接口mapper.class创建
对照目录创建好对应文件。
4.1 TJunctionMapper.class内容如下
import com.cetc.entity.TJunction;
import java.util.List;
import java.util.Map;
public interface TJunctionMapper {
Long count();
}
4.2 TJunctionMapper.xml内容如下(创建方法已经教过了),注意:namespace=" "中放你自己的TJunctionMapper.class相对路径
注意(怕你忘记前面说的):将配置文件中的<mapper resource="resources/mapper/TJunctionMapper.xml"/> 中的路径放你自己创建的写sql语句的marpper.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="com.cetc.mapper.TJunctionMapper">
<select id="count" resultType="long">
select count(1)
from test
</select>
</mapper>
5. 连接数据库
5.1 创建DataManagerUtile类
import com.cetc.mapper.TJunctionMapper;
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.Reader;
import java.util.logging.Logger;
public class DataManagerUtile {
private SqlSession sqlSession;
private TJunctionMapper tJunctionMapper;
private Logger logger = Logger.getLogger("");
public DataManagerUtile() {
initialConnection();
}
public TJunctionMapper gettJunctionMapper() {
return tJunctionMapper;
}
private void initialConnection() {
try {
// Reader reader = Resources.getResourceAsReader("mybatis-config.xml");//读取相对路径下 的配置文件(就是位置1)
Reader reader = Resources.getUrlAsReader("file:///" +"E:\\ideaWorkSpace\\geohash\\config\\mybatis-config1.xml");//读取绝对路径下的配置文件(位置2)
// Reader reader = Resources.getUrlAsReader("file:"+ Class.class.getResource("/").getPath().replace('/', '\\')+"mybatis-config.xml");//读取项目相同目录下的配置文件
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
sqlSession = ssf.openSession(true);
tJunctionMapper = sqlSession.getMapper(TJunctionMapper.class);
logger.info("数据库已连接!");
} catch (Exception e) {
e.printStackTrace();
}
}
public void destroyConnection() {
sqlSession.close();
logger.info("数据库关闭!");
}
}
6. 使用数据库
创建一个service类来使用
import com.cetc.entity.TJunction;
import com.cetc.utils.DataManagerUtile;
import com.cetc.mapper.TJunctionMapper;
import java.util.List;
import java.util.logging.Logger;
public class Service {
private Logger logger = Logger.getLogger("");
private DataManagerUtile dataManagerUtile = new DataManagerUtile();
private TJunctionMapper tJunctionMapper = dataManagerUtile.gettJunctionMapper();
public Long count(){
return tJunctionMapper.count();
}
public List<TJunction> getList(Long id) {
try {
return tJunctionMapper.selectList(id);
} catch (Exception e) {
dataManagerUtile.destroyConnection();
e.printStackTrace();
throw e;
}
}
public void update(List<TJunction> list) {
try {
int result = tJunctionMapper.update(list);
if (result != 0) logger.info("更新[" + list.size() + "]条数据成功!");
else logger.info("更新失败!");
dataManagerUtile.destroyConnection();
} catch (Exception e) {
dataManagerUtile.destroyConnection();
e.printStackTrace();
throw e;
}
}
}
7. 测试
创建main方法来测试
import com.cetc.manager.Service;
public class main {
public static void main(String[] args) {
Service service = new Service();
System.out.println(service.count());
}
}
至此,mybatis的配置已结完成,这点东西,写起来还挺费劲。