zoukankan      html  css  js  c++  java
  • MyBatis入门案例、增删改查

    一、MyBatis入门案例:

    ①:引入jar包

    ②:创建实体类 Dept,并进行封装

    ③ 在Src下创建大配置mybatis-config.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>
    <typeAliases>
    <typeAlias type="cn.happy.entity.Dept" alias="Dept"/>
    </typeAliases>
    
    <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <dataSource type="POOLED">
                    <property name="driver" value="oracle.jdbc.OracleDriver" />
                    <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
                    <property name="username" value="wj" />
                    <property name="password" value="9090" />
                </dataSource>
            </environment>
        </environments>
        <!--映射文件:描述某个实体和数据库表的对应关系 -->
        <mappers>
            <mapper resource="cn/happy/entity/Dept.xml" />
            
            <mapper resource="cn/happy/entity/Mapper.xml" />
        </mappers>
    
    
    </configuration>
    复制代码

    注:其中的几个常用元素作用如下:

    environments元素:用于配置多个数据环境,可映射多个数据库信息

    在MyBatis中有两种事务管理器类型(即type="JDBC/MANAGED")

    JDBC:直接使用了JDBC控制事务

    MANAGED:MyBatis自己不负责控制事务,它会让容器来管理事务的整个生命周期

    数据源类型有三种:UNPOOLED、POOLED、JNDI

    ①UNPOOLED:这个数据源的实现是每次被请求时简单打开和关闭连接。

    ②POOLED:采用连接池以避免创建新的连接实例时必要的初始连接和认证时间

    ③JNDI:为了使用如Spring或应用服务器这类的容器

    mappers元素:包含所有mapper的列表。告诉MyBatis到哪里去找SQL语句。主要是定义Sql映射文件

    ④:创建小配置 Dept.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="cn.happy.entity.Dept">
    
    <!-- 查询 -->
    <select id="selectDept" resultType="Dept">
    select * from Dept
    </select>
    复制代码

    注:id:唯一标识:通过此id,程序可唯一锁定一条SQL 、parameterType:参数类型、resultType:结果类型

     ⑤测试类:进行查询所有部门

    复制代码
    public class Test1 {
        SqlSession session ;
        @Before
        public void initData() throws Exception{
            SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
            
            Reader reader=new FileReader("src/mybatis-config.xml");
            
            SqlSessionFactory factory=builder.build(reader);
            
            session = factory.openSession();
        }
        /*
         * 查询
         */
        @Test
        public void selectDeptTest() throws Exception{
            
            
            List<Dept> selectList = session.selectList("selectDept");
            
            for (Dept dept : selectList) {
                System.out.println(dept.getDeptName());
            }
        }
        
    复制代码


    二、同理 增、删、改

    如图所示:

     因为在大配置中有别名的使用。参数类型设置成Dept即可


    三、使用selectOne()方法【带条件查询】

    通过编号来查询部门信息


    四、session.getMapper()方法的实现

    获取到接口的具体实现类

    注:使用接口编程需要注意:namespace需要定义为接口的全限定名。映射语句的id配置需要与接口中的方法名相同

  • 相关阅读:
    解决springmvc报错,java.lang.IllegalArgumentException:No converter found for return value of type: class .......
    BidiMap MultiMap LazyMap
    双色球2013年统计,从网上爬虫出来的
    捡石子小游戏程序解析
    Linux常用命令--List of commands(附目录切换命令)
    格式化字符串
    有关循环
    使用python 3.x 对pythonchallenge-----8的解答过程
    使用python 3.x 对pythonchallenge-----7的解答过程
    使用python 3.x 对pythonchallenge-----6的解答过程
  • 原文地址:https://www.cnblogs.com/hr1997/p/5881936.html
Copyright © 2011-2022 走看看