zoukankan      html  css  js  c++  java
  • Mybatis——环境搭建步骤

    1. 新建项目

    2. 导入mybatis所需jar包

    核心包:mybatis-3.2.7.jar

    3. 类路径下创建mybatis全局配置文件sqlMapConfig.xml(配置数据源、事务、mapper映射文件等信息)

    <?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>
    <!-- 获取数据库配置信息db.properties -->
    <properties resource="db.properties"></properties>

    <!-- 项目环境 -->
    <environments default="development">
    <environment id="development">
    <!-- 事务管理 -->
    <transactionManager type="JDBC"/>
    <!-- 数据源 -->
    <dataSource type="POOLED">
    <property name="driver" value="${driver}"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>
    </dataSource>
    </environment>
    </environments>
    <!-- 映射文件 -->
    <mappers>
    <mapper resource="com/neuedu/dao/EmpMapper.xml"/>
    </mappers>
    </configuration>

    4. dao包下创建EmpMapper.xml映射文件(配置增、删、改、查SQL语句)
    <?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="test">
    <!--
    <select> : 定义查询select语句
    id: 唯一标识符
    parameterType:参数类型
    resultType:返回值类型
    #{}:占位符,类似于preparedStatement中的"?"占位符,当仅包含一个参数时,占位符中的名称可自定义
    -->
    <select id="selectEmpByEmpno" parameterType="int" resultType="com.neuedu.model.Emp">
    select * from emp where empno=#{empno}
    </select>

    <!--
    <insert>:定义新增insert语句
    id: 唯一标识符
    parameterType:参数类型

    默认返回值:影响行数
    -->
    <insert id="insertEmp" parameterType="com.neuedu.model.Emp">
    insert into emp(empno,ename,job) values(SEQ_EMP.NEXTVAL,#{ename},#{job})

    <!-- 返回主键值: 将当前获取的序列值注入到参数emp对象的empno属性中 -->
    <selectKey keyProperty="empno" order="AFTER" resultType="int">
    select SEQ_EMP.Currval from dual
    </selectKey>
    </insert>

    <!--
    <update>:定义更新update语句

    默认返回值:影响行数
    -->
    <update id="updateEmp" parameterType="com.neuedu.model.Emp">
    update emp set ename=#{ename},job=#{job} where empno=#{empno}
    </update>

    <!--
    <delete>:定义删除delete语句

    默认返回值:影响行数
    -->
    <delete id="deleteEmpByEmpno" parameterType="int">
    delete from emp where empno=#{empno}
    </delete>



    </mapper>

    5. dao层在相应的IMPL中定义对应的增删改查方法,并利用XML进行操作
    //1.加载全局配置文件
    //FileInputStream input = new FileInputStream("src/sqlMapConfig.xml");
    InputStream input = Resources.getResourceAsStream("sqlMapConfig.xml");

    //2.获取SqlSessionFactory对象
    SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(input);

    //3.获取SqlSession接口,实现增、删、改、查
    SqlSession session = ssf.openSession();

    //4.执行增删改查
    Emp emp = (Emp)session.selectOne("selectEmpByEmpno",empno);//selectEmpByEmpno mapper文件中对应待执行语句的id属性值
    //int result = session.insert("insertEmp", emp);//执行新增
    //int result = session.update("updateEmp", emp);//执行更新
    //int result = session.delete("deleteEmpByEmpno", empno);//执行删除

    //5.提交事务----------------(增、删、改必须手动提交事务,查询不需要)---------------------------
    //session.commit();

    //6.关闭资源
    session.close();

     6.Test类测试:

    public class Test {

    public static void main(String[] args) throws FileNotFoundException {
    IEmpDao dao = new EmpDaoImpl();

    //查询
    //Emp emp = dao.selectEmpByEmpno(6666);
    //System.out.println(emp);


    //新增
    Emp temp = new Emp();
    temp.setEname("tom");
    temp.setJob("程序员");
    //boolean result = dao.insertEmp(temp);
    //System.out.println("处理结果:" + result +" 当前用户的主键empno=" + temp.getEmpno());

    //修改
    Emp temp2 = new Emp();
    temp2.setEname("tomtom");
    temp2.setJob("猿(媛)");
    temp2.setEmpno(24);
    //boolean result2 = dao.updateEmp(temp2);
    //System.out.println("处理结果:" + result2);

    //删除
    boolean result3 = dao.deleteEmp(24);
    System.out.println("处理结果:" + result3);
    }

    }

  • 相关阅读:
    Java基础知识回顾-20(泛型)
    Java基础知识回顾-19(Collect接口,Iterator迭代器与增强for循环)
    Java基础知识回顾-18(Math类,Arrays类和大数据运算)
    Java基础知识回顾-17(基本类型包装类与System类)
    Java基础知识回顾-16(Date,DateFormat和Calendar)
    PSP DAILY软件功能说明书
    第六周PSP
    王者荣耀交流协会第二次Scrum立会
    找bug——加分作业
    第五周PSP
  • 原文地址:https://www.cnblogs.com/ccw95/p/6179223.html
Copyright © 2011-2022 走看看