MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
具体该如何使用呢?开始:
首先新建一个Maven项目:
屏幕快照 2019-01-08 上午11.05.35.png点击Next然后进入:
屏幕快照 2019-01-08 上午11.07.00.png点击next:
屏幕快照 2019-01-08 上午11.07.10.png点击Finish:
屏幕快照 2019-01-08 上午11.08.14.png接下来我们在项目-src-main-resource目录下,新建一个文件夹:
屏幕快照 2019-01-08 上午11.18.39.png取名为mapper:
屏幕快照 2019-01-08 上午11.18.53.png前期准备工作已完成。接下来,我们导入两个依赖库:mybatis和mysql-connector-java。前往:https://mvnrepository.com搜索并复制到pom.xml文件中:
完成后pom.xml是这样的:
屏幕快照 2019-01-09 下午2.53.36.png接下来我们新建一个java类的User.java,并编码:
package com.bianla.wql;
public class User {
//这里的属性名要与数据库字段相同,否则获取不到值
private int id;
private String name;
private String phone;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPhone() {
return phone;
}
}
此时界面如下:
屏幕快照 2019-01-09 下午3.01.27.png然后打开Database,输入以下代码,创建一张User表:
CREATE TABLE `User` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`phone` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO `User` VALUES (1, '赵子龙', '13788889999');
INSERT INTO `User` VALUES (2, '张三', '13801234567');
屏幕快照 2019-01-08 下午2.17.40.png
然后运行一下:
屏幕快照 2019-01-08 下午2.18.23.png成功创建了User表。
接下来在resources文件夹下,创建mysql.properties文件:
接着进入:
屏幕快照 2019-01-08 下午1.46.05.png命名一下即可。
接着在mysql.properties文件中写入:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/wl_test_database?useSSL=false
jdbc.username=root
jdbc.password=Aa123456
效果:
屏幕快照 2019-01-09 下午3.11.04.png然后我们前往src-main-resources-mapper中创建一个UserMapper.xml文件,并编码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//[mybatis.org//DTD](http://mybatis.org//DTD)mapper 3.0//EN"
"[http://mybatis.org/dtd/mybatis-3-mapper.dtd](http://mybatis.org/dtd/mybatis-3-mapper.dtd)">
<mapper namespace="com.bianla.wql.User">
<!--在映射文件中配置很多sql语句-->
<!--将sql语句封装到mappedStatement对象中,所以将id称为statement的id-->
<!--parameterType:指定输入参数的类型-->
<!--resultType:指定sql的输出结果所映射的java对象类型。select指定resultType表示将单条记录映射成对应的java对象-->
<!--#{}表示一个占位符号,#{id},其中的id表示接收输入的参数。如果输入参数是简单类型,#{}中的参数名可以任意,可以是value或其他名称-->
<!--表名要正确,不区分大小写。resultType要写类名,同样不区分大小写-->
<select id="findById" parameterType="int" resultType="com.bianla.wql.User">
SELECT * FROM User WHERE id=#{id}
</select>
</mapper>
效果:
屏幕快照 2019-01-09 下午3.14.46.png我们接下来在resources文件夹下创建MyBatis-config文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPEconfiguration
PUBLIC"-//[mybatis.org//DTD](http://mybatis.org//DTD)Config 3.0//EN"
"[http://mybatis.org/dtd/mybatis-3-config.dtd](http://mybatis.org/dtd/mybatis-3-config.dtd)">
<configuration>
<!--加载属性文件-->
<properties resource="mysql.properties"/>
<typeAliases>
<!--定义别名,针对单个别名进行定义。type:类的路径 alias:别名-->
<!--类名不能写错;别名可以随意起,但力求规范-->
<typeAlias type="com.bianla.wql.User" alias="User"/>
</typeAliases>
<!--环境配置-->
<environments default="development">
<environment id="development">
<!--使用JDBC事务管理,事务控制由mybatis-->
<transactionManager type="JDBC"></transactionManager>
<!--数据库连接池,由mybatis管理-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--加载映射文件-->
<mappers>
<!--通过resource方法一次加载一个映射文件-->
<!--注意这里的路径和xml文件名-->
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
效果是这样的:
屏幕快照 2019-01-09 下午3.07.07.png然后我们创建一个UserTest文件来测试一下,编码:
package com.bianla.wql;
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 UserTest {
public static void main(String [] args){
// mybatis配置文件,这个地方的root地址为resources,因此我们的配置文件要放置在resources目录下
String resource = "mybatis-conf.xml";
// 配置文件流
InputStream stream = null;
try {
// 得到配置文件流
stream = Resources.getResourceAsStream(resource);
// 创建会话工厂,传入mybatis的配置文件信息
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(stream);
//通过工厂,得到sqlSession
SqlSession session = factory.openSession();
User user = session.selectOne("findById",2);
[session.commit();](http://session.commit();/)
System.out.println("ID:"+user.getId()+**”****\n名字:"**+user.getName()+**”****\n手机号:"**+user.getPhone());
}catch (IOException e){
e.printStackTrace();
}
}
}
屏幕快照 2019-01-09 下午3.35.28.png
此时我们运行一下:
屏幕快照 2019-01-09 下午3.35.51.png加油~
网友评论