Mybatis框架-06:mybatis映射配置中的参数和部分查询Api介绍

配置参数

id:进行数据库操作的时候,唯一确定要执行的sql语句

parameterType:指定输入参数类型(可以是实体类类型),mybatis通过ognl从输入对象中获取参数值拼接在sql中

resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射为resultType指定类型的对象。如果有多条数据,则分别进行映射,并把对象放到容器List中

API(增删改查操作)

查询操作:

selectOne:查询一条记录,如果使用selectOne查询多条记录则抛出异常

第一步:映射文件中配置sql语句

<!--根据cust_id查询客户-->
    <select id="queryCustomerById" parameterType="Int" resultType="com.ctbu.domain.Customer">
	   SELECT * FROM `customer` WHERE cust_id  = #{cust_id}
	</select>

第二步:测试类中执行语句

 @Test
    public void test1() throws IOException {
        SqlSession session = MyUtils.openSession();
        //执行sqlsession对象执行查询
        //第一个参数是customer.xml的statement的id
        //第二额参数是执行sql需要的参数
        Customer customer = session.selectOne("queryCustomerById", 1);
        System.out.println(customer);
        session.close();

    }

 

selectList:可以查询一条或多条记录

第一步:映射文件中配置sql语句

<!--查询所有客户-->
    <select id="queryAllCustomer" resultType="com.ctbu.domain.Customer">
	   SELECT * FROM `customer`
	</select>

第二步:测试类中执行语句

 

 @Test
    public void selectAllCus(){
        SqlSession session = MyUtils.openSession();
        List<Customer> allCustomer = session.selectList("queryAllCustomer");
        for (Customer customer : allCustomer) {
            System.out.println(customer);
        }
        session.close();
    }

insert:插入操作(直接使用mybatis的时候记得手动提交事务)

第一步:映射文件中配置sql语句

<!--添加用户-->
	<insert id="insertCustomer" parameterType="com.ctbu.domain.Customer">
        <!--这里配置的是插入后获取插入数据的id-->
		<selectKey keyColumn="cust_id" keyProperty="cust_id" order="AFTER" resultType="Integer">
			select last_insert_id()
		</selectKey>
		insert into `customer` (cust_name,cust_profession,cust_phone,email) values (#{cust_name},#{cust_profession},#{cust_phone},#{email})
	</insert>

第二步:测试语句

 @Test
    public void insertCustomer(){
        SqlSession session = MyUtils.openSession();
        Customer customer = new Customer();
        customer.setCust_name("heihei");
        customer.setCust_phone("110");
        customer.setEmail("22342@qq.com");
        session.insert("insertCustomer", customer);
        session.commit();
        System.out.println(customer.getCust_id());
        session.close();
    }

 

update:更新操作(先根据id查出来,再执行更新)

第一步:映射文件配置sql语句

<!--更新用户-->
	<update id="updateCustomer" parameterType="com.ctbu.domain.Customer">
        update `customer` set  cust_name = #{cust_name} where cust_id = #{cust_id}
    </update>

第二步:测试语句

@Test
    public void updateTest(){
        SqlSession session = MyUtils.openSession();
        Customer customer = session.selectOne("queryCustomerById", 18);
        customer.setCust_name("酒桶");
        session.update("updateCustomer",customer);
        session.commit();
        session.close();
    }

 

delete:删除操作(一般是先根据id查出来,再删除)

第一步:映射文件配置sql语句

<!--删除用户-->
	<delete id="deleteCustomer" parameterType="com.ctbu.domain.Customer">
        delete from `customer` where cust_id = #{cust_id}
    </delete>

第二步:测试语句

 @Test
    public void deleteTest(){
        SqlSession session = MyUtils.openSession();
        Customer customer = session.selectOne("queryCustomerById", 18);
        session.delete("deleteCustomer", customer);
        session.commit();
        session.close();
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值