一、mybatis简介
mybatis是apache下的一个顶级开源项目,原名ibatis,项目源2010年由apache软件基金会迁移到google code并改名mybatis,2013年迁移到github;mybatis是一个持久层框架
学习mybatis中文手册:https://mybatis.org/mybatis-3/zh/index.html
二、mybatis入门
入门步骤:
- 创建一个maven工程
- 导入mybatis及其相应的jar包
- 编写mabatis核心配置文件
- 编写映射文件mapper
- 把映射文件在核心配置文件中加载
- 编码,实现通过mybatis得到数据
- 导入mybatis及其相应的jar包
<dependencies>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
</dependencies>
- 编写mabatis核心配置文件
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 配置数据库 -->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3308/user_db?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="huang"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 加载映射文件 -->
<mapper resource="userMapping.xml"/>
</mappers>
</configuration>
- 编写映射文件mapper
<?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="ns">
<!-- 查找单个数据 -->
<select id="get" parameterType="int" resultType="cn.entity.User">
select *from
tb_users where uid=#{uid}
</select>
<!-- 查找全部数据 -->
<select id="selectAllUser" resultType="cn.entity.User">
select *from tb_users
limit 0,5
</select>
<!-- 修改 -->
<update id="toUpdate" parameterType="cn.entity.User">
UPDATE tb_users
SET
uloginid = #{uloginid },
upassword =#{upassword },
utel = #{utel },
uaddress = #{uaddress },
uname = #{uname },
uemail =
#{uemail },
deptno = #{deptno },
udate = #{udate },
ustateid = #{ustateid
}
<!--uid要与uid对得上 -->
WHERE uid = #{uid};
</update>
<delete id="delectUser" parameterType="int">
DELETE from tb_users
WHERE uid = #{uid};
</delete>
<insert id="insertUser" parameterType="cn.entity.User">
INSERT INTO tb_users
(uloginid,
upassword,
utel,
uaddress,
uname,
uemail,
deptno,
udate,
ustateid)
VALUES
(
#{uloginid },
#{upassword },
#{utel },
#{uaddress },
#{uname },
#{uemail },
#{deptno },
#{udate },
#{ustateid });
</insert>
<select id="likeUser" parameterType="String" resultType="cn.entity.User">
select *from tb_users where uname like '%${value}%'
</select>
</mapper>
- 编码,实现通过mybatis得到数据
@Test
public void dogetTest() throws IOException {
//读取核心配置文件
String resource ="mybatis-config.xml";
InputStream resourceAsStream = Resources.getResourceAsStream(resource);
//创建sqlSession工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//得到sqlsession对象
SqlSession session = sqlSessionFactory.openSession();
//获取sql数据
User selectOne = session.selectOne("ns.get",1);
System.out.println(selectOne);
session.close();
}