什么是MyBatis?
MyBatis是一流的持久性框架,支持自定义SQL,存储过程和高级映射。MyBatis消除了几乎所有的JDBC代码以及参数的手动设置和结果检索。MyBatis可以使用简单的XML或注释进行配置,并将图元,映射接口和Java POJO(普通的旧Java对象)映射到数据库记录。
导入mybatis的jar包
(1)Maven导包:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
(2)手动导包:自己下载好mybatis.jar包,放入到项目中
从XML构建SqlSessionFactory
每个MyBatis应用程序都以SqlSessionFactory实例为中心。可以使用SqlSessionFactoryBuilder获取SqlSessionFactory实例。SqlSessionFactoryBuilder可以从XML配置文件或Configuration类的自定义准备好的实例中构建SqlSessionFactory实例。
下面就是mybatis.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>
<!-- 导入外部资源文件 -->
<properties resource="db.properties" />
<!-- 配置数据库环境 -->
<environments default="development">
<environment id="development">
<!-- 事务管理 -->
<transactionManager type="JDBC" />
<!-- 配置数据源 -->
<dataSource type="POOLED">
<!-- 数据库驱动 -->
<property name="driver" value="${driver}" />
<!-- 数据库url地址:mysql://{本机号:127.0.0.1}:{mysql端口号:3306}/{要操作的数据库名} -->
<property name="url" value="${url}" />
<!-- 用户名 -->
<property name="username" value="${user}" />
<!-- 密码 -->
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 映射文件路径 -->
<mapper resource="com/yjj/dao/user/UserMapper.xml" />
</mappers>
</configuration>
db.properties:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/smbms
user=root
password=a
动态的SQL语句的映射
sql语句可以由XML或注释定义。但是一般我们选择使用XML的方式。
MyBatis提供的全部功能可以通过使用基于XML的映射语言来实现。
- UserMapper.xml 也就是sql语句的xml文件,支持对数据的增删改查等一系列功能。
映射的时候,xml文件里,每条sql语句的id属性的值必须与对应映射的接口文件里对应方法的方法名一样.
<?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.yjj.dao.user.IUserMapper">
<!-- 查询smbms_user所有记录数 resultType:返回值的数据类型-->
<select id="selectUser" resultType="int">
select count(id) from smbms_user
</select>
<!-- 模糊查询 parameterType:参数的数据类型,可以使对象,就比如这里的User对象 -->
<select id="selectName" parameterType="string" resultType="com.yjj.dao.enity.User">
select userName,gender from smbms_user where userName like concat(#{uname},'%')
</select>
</mapper>
- 与这些动态sql语句相映射的接口文件,IUserMapper.java
package com.yjj.dao.user;
import java.util.List;
import com.yjj.dao.enity.User;
public interface IUserMapper {
//接口里面的方法的方法名必须与mapp.xml里面对应的sql语句的id属性同名
public int selectUser();
public List<User> selectName(String uname);
}
从SqlSessionFactory获取SqlSession
测试类:UserTest.java:
public class UserTest {
@Test
public void Test(){
//读取配置文件
String resources="mybatis-config.xml";
try(InputStream is=Resources.getResourceAsStream(resources)){
//通过读取xml文件构建SqlSessionFactory
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
//从SqlSessionFactory获取SqlSession
SqlSession sqlSession=sqlSessionFactory.openSession();
//SqlSession执行sql语句
int count=sqlSession.selectOne("selectUser");
System.out.println(count);
List<User> list=sqlSession.selectList("selectName", "李");
System.out.println(list);
} catch (IOException e) {
e.printStackTrace();
}
}
}
总结
上面就是基本搭建一下mybatis环境,并2个简单的实例。
如果有问题可以一起交流哦…
下面附上mybatis的官网,里面讲的很全面。mybatis官网