基本框架操作
这里我是用的是 IntelliJ IDEA 编辑器做的项目,IntelliJ IDEA如何创建Source Folder和导入jar包点这和链接可以学习使用IDEA导入jar包和创建Source Folder目录,这个编辑器和eclipse还是有很大的区别的,看个人习惯。
1. 首先我们创建一个数据库(这里我先输入了几条数据便于后面做操作)
2. 创建一个项目并创建一个User对象,并定义属性和get和set方法,还有一个toString方法
3.导入jar包和创建一个resources目录(是source folder目录)用于存放全局的配置文件,并创建一个全局的配置文件。
4.在User对象目录下定义一个UserMapper.xml文件(供全局配置文件查找)
配置UserMapper.xml文件
<?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是不一样的 -->
<mapper namespace="_mybatis.hello.UserMapper">
<!--
SELECT元素:专门用来做写查询的SQL
- id属性:唯一标识,用来表示某一条SQL语句
id属性和mapper和namespace唯一的表示了应用中的某一条SQL语句
- parameterType属性:表示执行该SQL语句需要的参数类型,建议不写,MyBatis可以自行推断出来
- resultType属性:把结果集对象封装成什么类型的对象(有返回时必填)
-->
<!--
#{}:
OGNL表达式:从属性中取出某个值
-->
<!-- 查询一条信息 -->
<select id="get" resultType="_mybatis.hello.User">
SELECT id,name,salary FROM t_user WHERE id = #{id}
</select>
<!-- 查询所有信息 -->
<select id="listAll" resultType="_mybatis.hello.User">
SELECT * FROM t_user
</select>
<!-- 修改操作 -->
<update id="update">
UPDATE t_user SET name=#{name},salary=#{salary} WHERE id=#{id}
</update>
<!-- 删除操作 -->
<delete id="delete">
DELETE FROM t_user WHERE id = #{id}
</delete>
<!-- 保存操作
insert元素:
userGeneratedKeys属性:是否需要返回自动生成的主键
keyProperty属性:把自动生成的主键值设置到对象的哪一个属性上(OID)
-->
<insert id="save" useGeneratedKeys="true" keyProperty="id" >
INSERT INTO t_user(name,salary) VALUES (#{name},#{salary})
</insert>
</mapper>
5.创建一个App测试类
我这里里使用的是单元测试
package _mybatis.hello;
import _mybatis.util.MybatisUtil;
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 java.io.InputStream;
import java.math.BigDecimal;
import java.util.List;
public class App {
// 查询ID为1的用户信息
@Test
public void get() throws Exception{
// 1,从classpath路径去加载MyBatis全局配置文件:mybatis-config.xml
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
// 2,创建SqlSessionFactory对象,好比是DataSource
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
// 3,创建SqlSession对象,好比是Connection
SqlSession session = factory.openSession();
// 4,具体的操作(增删改查)
User u = session.selectOne("_mybatis.hello.UserMapper.get",3l);
// 5,关闭SqlSession
session.close();
System.out.println(u);
}
// 查询所有信息
@Test
public void testListAll() throws Exception{
// 1,从classpath路径去加载MyBatis全局配置文件:mybatis-config.xml
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
// 2,创建SqlSessionFactory对象,好比是DataSource
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
// 3,创建SqlSession对象,好比是Connection
SqlSession session = factory.openSession();
// 4,具体的操作(增删改查)
List<User> user = session.selectList("_mybatis.hello.UserMapper.listAll");
// 5,关闭SqlSession
session.close();
for (User u: user
) {
System.out.println(u);
}
}
// 使用MybatisUtil工具类查询信息
@Test
public void testListAll2() throws Exception{
SqlSession session = null;
try{
session = MybatisUtil.getSession();
List<User> user = session.selectList("_mybatis.hello.UserMapper.listAll");
for (User u:user
) {
System.out.println(u);
}
}catch (Exception e){
e.printStackTrace();
}finally {
session.close();
}
}
// 修改id为4的用户信息
@Test
public void testUpdate() throws Exception{
User user = new User();
user.setId(4L);
user.setName("叶孤城");
user.setSalary(new BigDecimal("900"));
// 1,从classpath路径去加载MyBatis全局配置文件:mybatis-config.xml
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
// 2,创建SqlSessionFactory对象,好比是DataSource
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
// 3,创建SqlSession对象,好比是Connection
SqlSession session = factory.openSession();
// 4,具体的操作(增删改查)
session.update("_mybatis.hello.UserMapper.update",user);
// 提交事务
session.commit();
// 5,关闭流对象
session.close();
}
// 删除id为4的用户信息
@Test
public void testDelete() throws Exception{
// 1,从classpath路径去加载MyBatis全局的配置文件:mybatis-config.xml
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
// 2,创建SqlSessionFactory对象,好比是DataBases
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
// 3,创建SqlSession对象,好比是Connection
SqlSession session = factory.openSession();
// 4,具体的操作(增删改查)
session.delete("_mybatis.hello.UserMapper.delete",4L);
// 提交事务
session.commit();
// 5,关闭流对象
session.close();
}
// 插入一条用户信息
@Test
public void testSave() throws Exception{
User user = new User();
user.setName("楚留香");
user.setSalary(new BigDecimal("800"));
// 1,从classpath路径去加载Mybatis全局的配置文件:mybatis-config.xml
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
// 2,创建SqlSessionFactory对象,好比是Databases
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
// 3,创建SqlSession对象,好比Connection对象
SqlSession session = factory.openSession();
// 4,具体的操作(增删改查)
session.insert("_mybatis.hello.UserMapper.save",user);
// 提交事务
session.commit();
// 5,关闭资源
session.close();
}
}
6.定义MybatisUtil工具类
7.定义日志信息(可以在控制台输出更加详细的信息)
在全局配置文件中配置即可