
Maven依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
实现步骤
- 首先建立一个表,并实现 一个与这个表中字段对应的类
- 配置conf.xml文件
- 配置Mapper.xml文件
- 通过mybatis操作数据库
mapper.xml
首先看一下xxxMapper文件
<?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="me.gacl.mapping.userMapper">
<select id="getUser" parameterType="int"
resultType="com.reno.mybatis.domain.User">
select * from testuser where id=#{id}
</select>
<insert id="addUser" parameterType="com.reno.mybatis.domain.User">
insert into testuser
(name,age) values (#{name},#{age})
</insert>
<!-- 删除用户(Remove) -->
<delete id="deleteUser" parameterType="int">
delete from users where id=#{id}
</delete>
<!-- 修改用户(Update) -->
<update id="updateUser" parameterType="com.reno.mybatis.domain.User">
update users set name=#{name},age=#{age} where id=#{id}
</update>
<!-- 查询全部用户 -->
<select id="getAllUsers" resultType="com.reno.mybatis.domain.User">
select * from users
</select>
</mapper>
- 在这里首先需要关注的一点是namespace,每一个mapper有一个唯一指定的namespace,一般采用包名+mapper的文件名。之后再操作数据库时就通过namespace+select的id 这种方式来操作。
- mapper内包裹的就是一系列的数据库操作。
- <select> 中 id用于 配合namespace定位到具体操作
- parameterType表示参数类型,参数就被传递到#{}所在的地方。
- resultType代表了数据的返回类型,这里返回类型就是那个与数据库表信息对应的类
conf.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/tablename" />
<property name="username" value="realusername" />
<property name="password" value="realpasswd" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/reno/mybatis/mapping/userMapper.xml" />
</mappers>
</configuration>
- 在environment中配置了数据库的连接信息
- mapper中配置了各个mapper.xml的位置,其中将包名转化为文件路径
通过mybaits操作数据库
package com.reno.mybatis;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.reno.mybatis.domain.User;
public class mybaitsTest {
public static void test() {
// mybatis的配置文件
String resource = "conf.xml";
// 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = mybaitsTest.class.getClassLoader().getResourceAsStream(resource);
// 构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
// 使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
// Reader reader = Resources.getResourceAsReader(resource);
// 构建sqlSession的工厂
// SqlSessionFactory sessionFactory = new
// SqlSessionFactoryBuilder().build(reader);
// 创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
/**
* 映射sql的标识字符串,
* me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
*/
String statement = "com.reno.mybatis.mapping.userMapper.getUser";// 映射sql的标识字符串
// 执行查询返回一个唯一user对象的sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}
}
网友评论