Mybatis 簡單的CRUD 基於XML檔案配置,mybatiscrud

來源:互聯網
上載者:User

Mybatis 簡單的CRUD 基於XML檔案配置,mybatiscrud

所有的ORM架構學習曲線都是先來一個CRUD爽一爽,下面我們就來CRUD一下,所有的配置都是基於上一篇的配置。廢話不多說,直接上代碼。

<?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="com.bird.mybatis.bean.userMapper"><!--CRUD  --><insert id="insertUser" parameterType="com.bird.mybatis.bean.Users">insert into users(name, age) values(#{name}, #{age});</insert><delete id="deleteUser" parameterType="int">delete from users where id = #{id};</delete><update id="updateUser" parameterType="com.bird.mybatis.bean.Users">update users set name = #{name}, age = #{age} where id = #{id};</update><select id="getUser" parameterType="int" resultType="com.bird.mybatis.bean.Users">select * from users where id = #{id};</select><select id="getAllUser" resultType="com.bird.mybatis.bean.Users">select * from users;</select></mapper>


package com.bird.mybatis.bean;import java.io.IOException;import java.io.Reader;import java.util.List;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.Before;import org.junit.Test;public class MyTest {private SqlSessionFactory factory;@Beforepublic void init() {String resource = "conf.xml";Reader reader = null;try {reader = Resources.getResourceAsReader(resource);} catch (IOException e) {e.printStackTrace();}factory = new SqlSessionFactoryBuilder().build(reader);}@Testpublic void testAdd() {//預設是手動的 SqlSession session = factory.openSession();String statement = "com.bird.mybatis.bean.userMapper.insertUser";int rows = session.insert(statement, new Users(-1, "哈哈", 29));//提交session.commit();System.out.println(rows);session.close();}@Testpublic void testUpdate() {SqlSession session = factory.openSession();String statement = "com.bird.mybatis.bean.userMapper.updateUser";session.update(statement, new Users(4, "呵呵", 29));session.commit();session.close();}@Testpublic void testDelete() {SqlSession session = factory.openSession();String statement = "com.bird.mybatis.bean.userMapper.deleteUser";session.delete(statement, 1);session.commit();session.close();}@Testpublic void testGetAllUser() {SqlSession session = factory.openSession();String statement = "com.bird.mybatis.bean.userMapper.getAllUser";List<Users> list = session.selectList(statement);System.out.println(list.size());session.close();}}

Ok,so easy, 哪裡不會點哪裡


MyBatis設定檔Configurationxml裡typeAliases標籤有什用 刪了程式照樣跑

typeAliases標籤 是寫實體類的別名,寫了之後可以在寫Sql設定檔例如<select>標籤中的屬性就可以不用寫實體的具體路徑直接用別名就可以了,可以簡化代碼給你看個例子:沒有別名這樣寫<select resultType="com.sjh.entity.VoteUser"> 寫了別名就可以這樣寫<select resultType="VoteUsers"> 直接寫別名就可以不用再寫實體的路徑了,VoteUsers就能在任何地方代替“com.sjh.entity.VoteUser”被使用。如果很多屬性涉及到實體類,直接寫別名很方便的。你說你刪了程式照樣跑,寫配置的時候你一定是沒有應用到別名,都寫得實體路徑。希望通過我的一番解釋你能明白這個標籤的用途。
 
mybatis該不該把所有的商務邏輯寫到映射xml檔案裡面去?

我個人的觀點
理想的狀態是把邏輯都放到 xml 裡面,但具體因情況而定。
1.如果是做產品的是時候儘可能放到xml.但邏輯比較複雜,又比較難以做到.
2.如果是做項目,並且要求你開發的速度較快,那就放 dao中了.
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.