Mybatis框架1
程序员文章站
2022-03-10 17:09:01
...
Mybatis简介
- Mybatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google谷歌,并且改名为MyBatis
- MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及对结果集的检索封装。MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和Java的POJO映射成数据库中的记录。
MyBatis的主要思想是将程序中的大量SQL语句抽取出来,配置在配置文件中,以实现SQL的灵活配置。
导包
<!--MyBatis配置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>
<!--加载配置文件-->
<properties resource="jdbc.properties"></properties>
<settings>
<!--开启驼峰命名规则 使数据库的类似于u_age的字段名与pojo包下的属性名uAge能够匹配-->
<setting name="mapUnderscoreToCamelCase" value="true">
</settings>
<!--类型别名-->
<typeAliases>
<!--给User类起别名-->
<typeAlias type="com.zhiyou.pojo.User" alias="user"/>
<!--给这个包下的所有类文件起别名-->
<package name="com.zhiyou.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.Driver}">
<property name="url" value="${jdbc.url}">
<property name="username" value="${jdbc.name}">
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--
加载映射文件
1.使用resource 属性,配置映射文件的路径
2.使用class属性,配置映射文件所对应的接口,接口的完整名称
3.【映射文件和接口放在同一个路径下
映射文件名称和接口名称一模一样】
4.使用package标签,配置包名
【映射文件和接口放在该包下
映射文件名称和接口名称一模一样】
-->
<mappers>
<!--<mapper resource="com/zhiyou/mapper/UserMapper.xml"/>-->
<!--<mapper class="com.zhiyou.mapper.UserMapper"/>-->
<package name="com.zhiyou.mapper"/>
</mappers>
</configuration>
MyBatis 内置日志工厂基于运行时自省机制选择合适的日志工具。它会使用第一个查找得到的工具(按上文列举的顺序查找)。如果一个都未找到,日志功能就会被禁用。
映射文件和映射接口文件
映射文件内容UserDao.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="com.zhiyou.dao.UserDao">
<insert id="addUser">
insert into user(name) values(#{name1})
</insert>
<!--
id:对应的方法名
parameterType:参数类型(参数是简单类型时,可以不用设置)
resultType:返回值类型 (包名+类名)
结果映射时,需要保证数据库中的字段名和类中属性名称一致
resultType:
返回值是集合时,resultType写集合中存放元素的类型
其他情况,就写对应的数据类型
-->
<select id="getUserById" parameterType="int"
resultType="user">
select * from user where id = #{id}
</select>
<select id="getAllUsers" resultType="com.zhiyou.pojo.User">
select * from user
</select>
<select id="getPasswordByName" resultType="java.lang.String">
select password from user where name=#{name}
</select>
<!-- 方法中有多个参数时:
1.根据参数的索引绑定参数,在映射文件中使用arg0,arg1.....
2.根据@Param注解给参数绑定名称,在映射文件中使用@Param设置的名称
3.把多个参数封装成对象,在映射文件中使用对象的属性名称
4.把多个参数封装成map集合,在映射文件中使用map中的key值
-->
<insert id="addUserWithNameAndPsd">
insert into user(name,password)
values(#{name},#{pwd})
</insert>
<update id="updateUser" parameterType="User">
update user set name=#{name},password=#{password}
where id=#{id}
</update>
<select id="getUserWithIds" parameterType="map"
resultType="user">
select * from user where id=#{key1}
or id=#{key2}
</select>
</mapper>
映射接口
package com.zhiyou.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.zhiyou.pojo.User;
public interface UserDao {
/**
* 插入一条记录
* @param name
*/
void addUser(String name);
/**
* 根据id查询
* @param id
* @return
*/
User getUserById(int id);
List<User> getAllUsers();
//根据用户名查询密码
String getPasswordByName(String name);
void addUserWithNameAndPsd(@Param("name")String name,@Param("pwd")String psd);
/**
* 更新数据
* @param user
*/
void updateUser(User user);
/**
* 根据id查询
* @param map key1=3 key2=4
* @return
*/
List<User> getUserWithIds(Map<String, Integer> map);
}
上一篇: log4j的学习使用
下一篇: jQuery 获取屏幕高度和宽度
推荐阅读
-
Vero VISI 2018 R1中文破解版安装许可激活图文详细教程
-
安装 unixbench make: *** [pgms/ubgears] Error 1 的解决方法
-
Linux系统中校验下载文件的完整性方法(MD5,SHA1,PGP)
-
Spring Boot整合mybatis(一)实例代码
-
spring Boot与Mybatis整合优化详解
-
详解Spring Boot中MyBatis的使用方法
-
Angular动态绑定样式及改变UI框架样式的方法小结
-
BootStrap框架中的data-[ ]自定义属性理解(推荐)
-
浅谈Scrapy网络爬虫框架的工作原理和数据采集
-
揭秘SQL Server 2014有哪些新特性(1)-内存数据库