Mybatis - это структура настойчивости, которая поддерживает обычные запросы SQL, хранимые процедуры и расширенное картирование.
Mybatis устраняет ручные настройки почти всех кодов JDBC и параметров и поисковой инкапсуляции набора результатов.
Mybatis может использовать простые XML или аннотации для конфигурации и оригинального отображения, отображения интерфейсов и Pojo Java (простые старые объекты Java) в записи в базе данных.
Каждое приложение Mybatis принимает экземпляр объекта SQLSessionFactory в качестве ядра.
Экземпляр объекта SQLSessionFactory может быть получен через объект SQLSessionFactoryBuilder. Объект SQLSessionFactoryBuilder может быть построен через файл конфигурации XML или из экземпляра класса конфигурации, подготовленного в предыдущем управлении использованием.
DataSource DataSource = blogDataSourceFactory.getBlogDataSource (); TransactionFactory TransactionFactory = new jdbcTransactionFactory (); // среда среды окружающей среды = новая среда («Разработка», TransactionFactory, DataSource); конфигурация = новая конфигурация (EnvironmentSfactorse); sqlSessionFactory = new SQLSessionFactoryBuilder (). Build (Configuration);
Обратите внимание, что в этом случае конфигурация состоит в том, чтобы добавить класс Mapper. Классы Mapper - это классы Java, которые содержат аннотации операторов отображения SQL, чтобы избежать зависимостей в файлах XML, но картирование XML все еще требуется при большинстве передовых карт (таких как вложенное сопоставление соединения).
По этой причине, если существует файл конфигурации XML, Mybatis автоматически найдет и загружает и загружает файл Peer XML (в данном случае, основываясь на названии класса класса BlogMapper.class под классом класса, то Blogmapper.xml будет загружено, то есть класс и 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 nightspace =" mapber.mapper.sher.mapper.mapper.ser.webper.mapper.mapper.mapper.mapper.mapper.mapper.mapper.mapper.dtd"> It can solve the problem that the model property name is inconsistent with the column column name in the data table jdbcType must be capitalized--> <resultMap type="User" id="UserMap"> <id property="id" column="id" javaType="int" jdbcType="INTEGER"/> <result property="name" column="username" javaType="string" jdbctype = "varchar"/> <result property = "age" column = "age" javatype = "int" jdbctype = "integer"/> </resultmap> <!- Обратите внимание на результат здесь. Если Column == Свойство, вы можете напрямую вернуть объект Java. Если имя атрибута не соответствует имени столбца, решение следующим образом: 1. Используйте ResultMap; 2. вернуть Hashmap; 3. Use alias for the query statement--> <select id="getUser" parameterType="int" resultMap="UserMap"> select * from t_user where id=#{id} </select> <delete id="deleteUser" parameterType="int" > delete from t_user where id=#{id} </delete> <update id="updateUser" ParameterType = "user"> update t_user set username =#{name}, age =#{age}, где id =#{id} </update> <INSERT ID = "INSERTUSER" PARAMETERTYPE = "Пользователь"> Вставьте в T_USER (USERNAME, AGE) Значения (#{name},#}) </insert> </insert> </insert> </insert> </insert> </insert> </insert> </insert> </insert> </insert> </in insert> </insert> Столбец (имя пользователя), поэтому результат использует usermap -> <select id = "getUsers" resultmap = "usermap"> select * from t_user </select> </mapper> Зарегистрируйтесь в mybatis.xml [При сочетании с пружиной этот файл конфигурации не потребуется]
Файл конфигурации mybatis
<? xml version = "1.0" Encoding = "UTF-8"?> <! Конфигурация doctype public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <portivuration> <pertertes resource = "jdbc./jdb./jdb.siesr Configure entity class alias--> <typeAliases> <!-- <typeAlias type="com.web.model.User" alias="User"/> --> <package name="com.web.model"/> </typeAliases><!-- development: Development mode work: Work mode --> <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/web/mapper/usermapper.xml"/> <mapper resource = "com/web/mapper/ordermapper.xml"/> <mapper/> </mappers> </configuration>Здесь мы используем XML -файл, чтобы получить SQLSessionFactory и SQLSession.
public static sqlSessionFactory getFactory () {/*Поток src dir*/string resource = "mybatis.xml";/*mybatisutils.class.getresourceasstream (ресурс) ---- это неправильно !!! * Пожалуйста, различайте два вверх и вниз * * */inputStream inputStream = mybatisutils.class.getClassloader (). getResourCeasStream (ресурс); sqlSessionFactory factory = new SQLSessionFactFureBuilder (). Build (inputStream); вернуть завод; Решения: 1.Factory.Opensession (True); 2.session.commit (); */ /*Используйте SQL XML не аннотацию*/@Test public void testadd () {sqlSession Session = mybatisutils.getFactory (). Commit*/session.commit (true); session.close (); System.out.println ("Effect Rows .."+insert);}@test public void -testselect () {/*Установить автоматический коммит, что равносильно вышеуказанному*/sqlsession session = mybatisutils.getfactory (). "com.web.mapper.usermapper.getUser";/*Возвращает эффекты строки*/user user = session.selectone (оператор, 3); System.out.println ("Effect Rows .."+user);}@test public void testupDate () {sqlSession Session = myBatisUtils.getfactory (). opensession (true); "com.web.mapper.usermapper.updateUser";/*Возвращает эффекты строки*/int upply = session.update (оператор, новый пользователь (3, "tom4", 13)); System.out.println ("Effect Rows .."+Update);}@test public void -testDelete () {sqlesessessessessessessessessessessessessessessedsesessessessessessessessessessessessedseSessessionseSessionseSessionseSessessionSessessionseSessionSsessionseSessionseSessionSsessionSsessed = "com.web.mapper.usermapper.deleteUser";/*Возвращает эффект строки*/int delete = session.delete (оператор, 6);/*Стоимость самостоятельного*/session.commit (); System.out.println ("Effect Rows .."+Delete); Session.close ();}@test public void testgetgesers () {squcesses. Mybatisutils.getfactory (). Opensession (); string atportion = "com.web.mapper.usermapper.getusers";/*Возврат список <user>*/list <user> users = session.selectlist (atervice); session.commint (); system.out.println ("Effect Crows .. users);параметрические и ровнотип - хэшмап:
<select id = "getUserFormap" parameterType = "hashmap" resultype = "hashmap"> select * from c_user, где id =#{id}; </select> @Test public void getUserformap () {sqlSession session = mybatisutils.getfactory (). Opensession (); string ratement = "com.web.mapper.usermapper.getUserFormap"; hashmap <строка, объект> map = new Hashmap <String, Object> (); map.put ("ID", 1); session.selectone (оператор, map);/*по умолчанию не является автоматическим коммитиром*/session.commit (true); session.close (); system.out.println ("Effect Rows .."+selectOne+", class:"+selectOne.getClass ());} Эффекты строки .. {id = 1, age = 12, name = luli}, класс: класс java.util.hashmapПодводя итог, можно увидеть, что Mybatis автоматически проанализирует и инкапсуляет в соответствии с типом параметра и типом результата.
<select id = "getListPage" parameterType = "hashmap" resultMap = "siteExtendDaomap"> select id, site_id, site_name, site_number, провинция, город, область, адрес, внутренний_Небер test = "CheckState! = null и Checkstate! = ''"> и Check_state = #{CheckState, jdbctype = integer} </if> <if test = "siteId! = null и siteId! = ''> и site_id like concat ('%', #{siteid}, '%') </if> <if> <if> <if and ne test = nallam! SiteName! = '' "> и site_name like concat ('%', #{siteName}, '%') </if> <if test = "siteNumber! = null и siteNumber! = '' '> и site_number как concat ('%', #{siteNumber},'%') </if> <if test =" province и null! Как concat ('%', #{siteNumber}, '%') </if> <if test = "Провинция! = NULL и Province! = '' '> и Province = #{Province} </if> <if test =" city! = NULL и City! #{area} </if> </trim>-add sort <if test = "sortName! = null и sortName! = '' и sortorder! = null и sortorder! = null и sortOrder! = '' '> Порядок от $ {sortName} $ {sortOrder} </if>-Адд Плитирующего пластинчаЕсли параметр является pojo, Mybatis автоматически получит идентификатор от объекта;
<delete id = "delete" parametertype = "user"> delete from tb_user, где id = #{id} </delete> <delete id = "deletebyid" parametertype = "long"> delete from tb_user, где id = #{id} </delete> <delete id = "deleteByids"> delete из tb_user, где id in -in foreach <foreach collection = "list" item = "id" open = "(" sepreator = "," close = ")"> #{id} </foreach> </delete>Обычно используется в сочетании с GetListPage.
<SELECT ID = "GETROWS" PARAMETERTYPE = "HASHMAP" RESTORATYPE = "LONG"> SELECT COUNT (*) из TB_SYS_ROLE <if test = "keysysRole! </if> <if test = "keysysrole.name! = null и keysysrole.name! = ''"> и name = #{keysysrole.name} </if> <if test = "keysysrole.available! </if> </select>Выше приведено все содержание этой статьи о Mybatis с использованием XML для анализа кода. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!