java mybatis 搭建_mybatis环境搭建(转载)
最近一段时间过的有些迷茫了,好了不能在这样了,楼主决定振作起来开始好好学习一些东西吧。研究mybatis吧!
万里之行起于小步,从搭建环境开始。
一、下载好jar包,既然是基本环境搭建就不用弄的太复杂就加入三个最基本的jar包
1、mybatis-3.1.0-SNAPSHOT.jar
2、mysql-connector-java-5.0.8-bin.jar
3、log4j-1.2.16.jar
二、mybatis是基于log4j日志框架的,恩,把log4j的日志数据配置文件也配置一下,就先把级别设定在debug的级别上
# Rules reminder:
# DEBUG < INFO < WARN < ERROR < FATAL
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# My logging configuration...
log4j.logger.org.mybatis.jpetstore=DEBUG
## Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n# Rules reminder:
# DEBUG < INFO < WARN < ERROR < FATAL
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# My logging configuration...
log4j.logger.org.mybatis.jpetstore=DEBUG
## Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n
三、现在就开始对mybatis进行配置,配置文件为一个xml文件,文件名自己决定,暂且就叫Configuration.xml吧
/p>
"http://mybatis.org/dtd/mybatis-3-config.dtd">
/p>
"http://mybatis.org/dtd/mybatis-3-config.dtd">
上面这个配置文件相当于一个全局的配置,所以在这里面配置也会影响到其他的配置文件
这里先对上面几个标签陌生标签解释一下
就是为为一个完整的类名去一个别名,我猜你不会愿意在每次用到一个类时都把类的完整路劲给带上,所以上面的User就可以代表com.akwolf.domain.User
这样做的确是一件很省力气的事
也就是在不同的环境中选择不同的配置,如果现在是开发环境连接的数据库可能就与测试连接数据库的配置不同,default代表的就是一个默认使用的环境。也就是注册你写了哪些Mapper映射文件。
这个就先简单介绍一下,下一篇文章就把每一个标签的使用和用处罗嗦一遍。
四、建立领域模型User
importjava.io.Serializable;
publicclassUserimplementsSerializable {
privatestaticfinallongserialVersionUID = 1L;
privateintid;
privateString name;
privateintage;
//setter && getter
}import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
private int age;
//setter && getter
}
五、建立对数据库操作的dao接口
packagecom.akwolf.persistence;
importcom.akwolf.domain.User;
publicinterfaceUserMapper {
/**
* 通过id查询用户
*
* @param id
* 用户id
* @return 用户实体
*/
publicUser getUserById(intid);
}package com.akwolf.persistence;
import com.akwolf.domain.User;
public interface UserMapper {
/**
* 通过id查询用户
*
* @param id
* 用户id
* @return 用户实体
*/
public User getUserById(int id);
}
六、编写对dao接口进行实现的Mapper【UserMapper.xml】,就是一些sql语句
/p>
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
select * from tbl_user where id= #{id}
/p>
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
select * from tbl_user where id = #{id}
#{id}表示传入的参数,是一个变量
到此一个基本的mybatis运行环境已经搭建起来,用测试类测试一下
packagecom.akwolf.test;
importjava.io.IOException;
importjava.io.Reader;
importorg.apache.ibatis.io.Resources;
importorg.apache.ibatis.session.SqlSession;
importorg.apache.ibatis.session.SqlSessionFactory;
importorg.apache.ibatis.session.SqlSessionFactoryBuilder;
importorg.junit.AfterClass;
importorg.junit.BeforeClass;
importorg.junit.Test;
importcom.akwolf.domain.User;
importcom.akwolf.persistence.UserMapper;
publicclassUserTest {
privatestaticSqlSession session ;
@BeforeClass
publicstaticvoidinit(){
// 配置文件的路径
String res = "com/akwolf/conf/Configuration.xml";
try{
// 1、加载配置文件
Reader reader = Resources.getResourceAsReader(res);
// 2、创建SqlSessionFactory,用于取得SqlSession
SqlSessionFactory factory = newSqlSessionFactoryBuilder().build(reader) ;
// 3、取得一个SqlSession(对Jdbc中connection的封装)
session = factory.openSession() ;
} catch(IOException e) {
e.printStackTrace();
}
}
@Test
publicvoidtestGet() {
// 4、取得mybatis实现并实例化好的UserMapper接口实例
UserMapper mapper = session.getMapper(UserMapper.class) ;
// 5、进行dao层的操作
User u = mapper.getUserById(1) ;
System.out.println(u);
}
@AfterClass
publicstaticvoiddestory(){
// 6、关闭SqlSession
session.close() ;
}
}package com.akwolf.test;
import java.io.IOException;
import java.io.Reader;
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 org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.akwolf.domain.User;
import com.akwolf.persistence.UserMapper;
public class UserTest {
private static SqlSession session ;
@BeforeClass
public static void init(){
// 配置文件的路径
String res = "com/akwolf/conf/Configuration.xml" ;
try {
// 1、加载配置文件
Reader reader = Resources.getResourceAsReader(res);
// 2、创建SqlSessionFactory,用于取得SqlSession
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader) ;
// 3、取得一个SqlSession(对Jdbc中connection的封装)
session = factory.openSession() ;
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void testGet() {
// 4、取得mybatis实现并实例化好的UserMapper接口实例
UserMapper mapper = session.getMapper(UserMapper.class) ;
// 5、进行dao层的操作
User u = mapper.getUserById(1) ;
System.out.println(u);
}
@AfterClass
public static void destory(){
// 6、关闭SqlSession
session.close() ;
}
}
上面测试类的主要建立数据库连接并对数据库进行的操作,为了方便以后查看和大家的理解,注释写的很详细。
好,到这里第一个mybatis程序运行成功,下一次就研究一下Mybatis配置文件的详细配置。
java mybatis 搭建_mybatis环境搭建(转载)相关推荐
- Mybatis入门:1(Mybatis框架的环境搭建)
Mybatis框架的环境搭建 一.创建maven工程并导入坐标 导入坐标: <dependencies><dependency><groupId>org.mybat ...
- Java语言概述以及环境搭建
Java语言概述以及环境搭建 计算机系结构 硬件 软件 人机交互方式 常见的DOS命令 Java语言的概述 Java语言的背景 Java语言的特点 Java的主要版本 JDK下载 <1>J ...
- 测试小白基于java的selenium自动化测试环境搭建
本人是一个软件测试小白,自己在研究自动化测试时,真的入了不少坑,直到现在,才勉强将环境搭建了起来. 在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你 ...
- Java JDK 8u221开发环境搭建
Java JDK 8u221开发环境搭建 Java JDK 8u221下载 1.java SE8u221的下载 搭建环境 更改路径 现在我们来搭建Java开发环境 Java JDK 8u221下载 1 ...
- Docker java项目发布/开发环境搭建
Docker java项目发布/开发环境搭建 线上部署项目/开发环境搭建命令大全 关闭windows10 指定应用 安装Docker 安装 docker-compose 关于docker容器导致硬盘耗 ...
- 基于mysql搭建框架环境搭建_Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境
项目建设完成之后的结构: 数据库的表结构如下: 环境建设:搭建Maven环境.Tomcat环境.需要MySql 数据库支持,使用的编程工具Eclipse (这些是前期准备): 开始创建工程: 1.创建 ...
- MyBatis 简介、 环境搭建、数据库连接池、查询方式
七.MyBatis 简介 Mybatis 开源免费框架.原名叫 iBatis,2010 在 google code,2013 年迁移到 github 作用: 数据访问层框架. 2.1 底层是对 JDB ...
- Java+Selenium3.3.1环境搭建
一.背景和目的 selenium从2.0开始,加入了webdriver,实际上,我们说的selenium自动化测试,大部分情况都是在使用webdriver的API.现在去Selenium官网,发现最新 ...
- Java及Android开发环境搭建
前言 自从接触java以来,配置环境变量折腾了好几次,也几次被搞得晕头转向,后来常常是上网查阅相关资料才解决.但是过一段时间后一些细节就会记不清了,当要在其他机子上配置时又得上网查或者查阅相关书籍,如 ...
最新文章
- sublime 安装 插件 package control,安装docblockr
- java流方式接收pdf_java – 在Itext 7中,如何获取范围流来签署pdf?
- Python中怎么读写图像
- 推荐8个优秀的基于HTML5的信息图
- 卷积神经网络(CNN)详解及TensorFlow2代码实现
- Python 数据科学入门教程:TensorFlow 聊天机器人
- Spring Security ACL使用Oracle数据库的配置与数据库脚本
- 地理信息系统(第二版)汤国安等编著第一章1.1-1.2节
- 各种坐标系下的散度、梯度、旋度公式
- 如何把视频和音频合并?手把手教你合并
- 英语作文计算机的利弊,电脑游戏的坏处英语作文
- unity3d 动画抖动解决
- python import变灰_python--pycharm中import导入包呈现灰色问题之解决~很实用
- 欧姆龙NJ/NX使用POD映射拓展轴功能块与应用案例
- 关于numpy,torch中seed()方法的一些理解
- 张凯龙 西北工业大学计算机学院,西北工业大学计算机学院研究生不在校管理规定...
- 详谈redis命令之列表(List)
- 计算机命令netstat,电脑netstat命令的使用方法
- Jquery ajax 提交表单
- 罗马时钟代码 jquery
热门文章
- 重要社区链接(资源技术网站)
- 服务器多网站布置,如何在一台服务器上实现多个web站点的方法
- python可以处理矩阵吗_Python 稀疏矩阵处理
- 我的世界java骷髅马_我的世界1.9版本新功能曝光 骷髅马正式加入
- java反射怎么获取结构体_java反射-使用反射获取类的所有信息
- MySQL修改有存量数据的数据库字符集实战
- 7个连环问揭开java多线程背后的弯弯绕
- 技术解析+代码实战,带你入门华为云政务区块链平台
- 跟我读论文丨ACL2021 NER 模块化交互网络用于命名实体识别
- 普通人如何站在时代风口学好AI?这是我看过最好的答案