笔记(一)——MyBatis框架的基本应用

1.在使用MyBatis开发包时,修改SqlMapConfig.xml文件来指定数据库的连接参数。
2.获取SqlSession对象

String conf="SqlMapConfig.xml";
        Reader reader=Resources.getResourceAsReader(conf);

若上面这个在运行时出现异常,建议使用输入流的方式读取配置文件

InputStream reader=testEmp.class.getClassLoader().getResourceAsStream(conf);

创建SessionFactory对象

SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
SqlSessionFactory factory=builder.builder(reader);

创建Session

SqlSession session=factory.openSession();

通过上面获取的SqlSession对象后,就可以利用它对数据表进行操作
a.根据数据库中的表编写实体类
b.编写SqlMapConfig.xml映射文件,然后加载sql定义文件
c.获取SqlSession对象,然后执行数据库操作,在执行数据库的增删改时必须要有提交事务的操–>session.commit()
d.关闭SqlSession对象 session.close();


在数据库操作配置文件里添加映射信息

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"      
 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

<mapper namespace="empsql">
    <!--查找表-->
    <select id="findAll" resultType="org.yang.entity.Emp">
        select * from emp
    </select>
    <!--插入数据-->
    <insert id="save" parameterType="org.yang.entity.Emp">
        insert into emp (name,salary,age) values (#{name},#{salary},#{age})
    </insert>

</mapper>

由于创建SessionFactory对象和获取session程序有点冗杂,我就将其封装到一个类里,后面可以直接调用,在这个类里直接定义一个静态方法就行了

public class MyBatisUtil {
    public static SqlSession getSqlSession(){
        String conf="SqlMapConfig.xml";
        InputStream reader=mainEmp.class.getClassLoader().getResourceAsStream(conf);
        //创建sessionFactory对象
        SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
        SqlSessionFactory factory=builder.build(reader);
        //获取session
        SqlSession session=factory.openSession();
        return session;
    }
}

然后编写测试文件来测试数据库操作配置文件里的配置信息

public class mainEmp {
    public static void main(String[] args) {
        SqlSession session=MyBatisUtil.getSqlSession();//这块直接调用上面封装的获取session方法

        //查询操作,这块使用的是List集合封装查询后的结果
    List<Emp> list=session.selectList("findAll");
    for(Emp e:list){
        System.out.println(e.toString());
    }

        //插入操作
        Emp emp=new Emp();
        emp.setName("王麻子");
        emp.setSalary(8000.0);
        emp.setAge(30);
        session.insert("save",emp);
        //这里的操作必须要进行事务提交,要不运行过后数据表并没有插入到信息,数据表的增删改都需要提交事务
        session.commit();
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人圭先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值