MyBatis 是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。【即,代替JDBC不需要写很多代码,是封装好的数据管理框架】MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录:
1.打开IDEA,点击File--->New--->Project
2.选中,Next
3.点击Next,在ProjectName中输入MyBatisDemo,Finish,路径随便,最好是IDEA项目工作目录。
4.接下来,新的项目建立好了
5.下载相关MyBatis包。
我们需要去下载相关包,网址:MyBatis官网下载
点击最新版本,点进去下载。下载好后,点击解压。如下:
JDBC数据库连接池驱动同理解压。如下:
lib表示相关库文件,LICENSE表示许可。jar是核心包。pdf是相关文档,可以参考此来进行开发。NOTICE是注意事项。
由于MyBatis在第三层中还需要使用JDBC来进行事务的开始,那么MyBatis还需要依赖JDBC环境,接下来我们去下载相关JDBC驱动。驱动下载:mysql-connector-java-5.1.7.zip
6.回到IDEA,这时候我们要添加相关库。
选中项目名,右键Open Module setting。
添加依赖库
将MyBatis和JDBC的jar选中。点击apply。
创建新的java文件,
在默认的package中建立pojo。
7.配置MyBatis
在默认src下,建立config的package。
打开project-structure,设定config为Resources的根目录root,
建立sqlMapConfig.xml文件,在里面编写相关配置
驱动名称如果你没用上面提供的,需要重新查找。数据库,用户名、密码需要替换成你自己的,【value="替换成你的"】。
接下来编写getTip.xml,我这里是查找表名为Tip的x = 9号数据。
在编写getTip.xml之前,需要在pojo文件夹中建立Data.java,用来编写接收返回数据的对象类。
代码如下:
package pojo;
import java.io.Serializable;
public class Data implements Serializable {
private int x;
private int userid;
private int initalId;
private String content;
private String time;
private int type;
private int statue;
public int getX() {
return x;
}
public String getTime() {
return time;
}
public int getType() {
return type;
}
public int getInitalId() {
return initalId;
}
public int getStatue() {
return statue;
}
public String getContent() {
return content;
}
public int getUserid() {
return userid;
}
public void setX(int x) {
this.x = x;
}
public void setUserid(int userid) {
this.userid = userid;
}
public void setType(int type) {
this.type = type;
}
public void setTime(String time) {
this.time = time;
}
public void setContent(String content) {
this.content = content;
}
public void setInitalId(int initalId) {
this.initalId = initalId;
}
public void setStatue(int statue) {
this.statue = statue;
}
@Override
public String toString() {
return "Data{" +
"x=" + x +
", userid=" + userid +
", initalId=" + initalId +
", content='" + content + '\'' +
", time='" + time + '\'' +
", type=" + type +
", statue=" + statue +
'}';
}
}
这些属性是对照你的表的字段的,需要修改。其中,tip表的字段如下,对应Data中的成员变量,【这个需要根据自己的表来进行修改】:
在getTip.xml中编写如下配置
注意,如果配置正确,按住Ctrl+Alt,鼠标移至路径上,如果能够跳转到对应的文件中,说明配置路径正确。如下:
接下来在src中创建Demo.java
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.Test;
import pojo.Data;
import java.io.IOException;
import java.io.InputStream;
public class Demo {
public static void main(String[] args) throws IOException {
//配置 总的 SqlMapConfig 加载 用io流进行加载 获取 字节流 字符流\
String source_url = "sqlMapConfig.xml";
// System.out.println(Resources.class.getResource("")+",| "+Test.class.getResource(""));
InputStream is = Resources.getResourceAsStream(source_url);//通过流进行加载
//写好 Mapper
//第三,创建sqlSessionFactory
SqlSessionFactory sqlsessionFactory = new SqlSessionFactoryBuilder().build(is);
//创建 sqlSessionFactory下面的 sqlsession
SqlSession sqlSession = sqlsessionFactory.openSession();
//执行语句
Data data = sqlSession.selectOne("test.findtip", 9);
System.out.println(data.toString());
//
}
}
点击运行,查看控制台,发现查询数据成功、