Mybatis (一)初识Mybatis以及Mybatis全局配置

Mybatis

什么是Mybatis?

MyBatis源自Apache的iBatis开源项目, 从iBatis3.x开始正式更名为MyBatis。它是一个优秀的持久层框架。
官网地址:http://www.mybatis.org/mybatis-3/

为什么使用MyBatis? 降低耦合度

为了和数据库进行交互,通常的做法是将SQL语句写在Java代码中,SQL语句和Java代码耦合在一起不利于后期维护修改,而MyBatis能够帮助我们将SQL语句和Java代码分离,方便了后期因需求变动而对SQL语句进行修改。(联系properties文件的作用)

关于Mybatis更多具体信息可以看之前的Mybatis面试总结

https://blog.csdn.net/qq_15740137/article/details/104236724

Mybatis的使用

一。使用前的准备工作

①、准备

(1)

a、下载MyBatis相应jar包:https://github.com/mybatis/mybatis-3/releases
b、创建Java工程,导入MyBatis jar包(mybatis-3.4.4.jar)和数据库驱动包

(2)maven工程 直接在pom加入代码
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis</artifactId>
		<version>3.5.4</version>
	</dependency>
Mybatis的使用一共有三种方法(在这里只写上去了最常用的一种方法)

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>
	<!-- 配置数据库信息 -->
	<environments default="dev">
	
		<environment id="dev">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://localhost:3306/manager" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	
	</environments>
		
		<mappers>
			<mapper resource="config/user_Info.xml"></mapper>
		</mappers>
</configuration>

配置数据库信息时

<environments> 里面可以有多个<environment> 但是里面的default属性的值为哪个<environment>的id 那么所采用的就是哪一个<environment>

引入sql语句的xml文件(有多少个sql语句的xml文件就要写入几个mapper标签去配置)

        <mappers>
			<mapper resource="config/user_Info.xml"></mapper>
		
		</mappers>

此时的user_Info.xml

在同一个xml里面 id是不可以重复的,注意命名空间是一个接口,而对应想要执行的操作便让 id=对应接口的方法名

<?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.zcc.mybatis.user.dao.userDao">


<resultMap type="com.zcc.mybatis.user.entity.UserInfo" id="userInfo">
	<id property="userName" column="user_name"></id>
	
	<result property="userId" column="user_id"/>
</resultMap>

<!-- id:唯一标识;resultType:返回值类型; -->
	<select id="getUserName" resultMap="userInfo">
		<!-- #{id}:从传递过来的参数中取出id值 -->
		select user_name from sys_user where user_id = #{userId}
	</select>
	<select id="getUserById" resultMap="userInfo">
		<!-- #{id}:从传递过来的参数中取出id值 -->
		select user_name,passwd,user_id from sys_user where user_id = #{userId}
	</select>
	
	<insert id="add" >
		<!-- #{id}:从传递过来的参数中取出id值 -->
		insert into sys_user (user_name,passwd) values(#{us.userName}, #{us.passwd})
	</insert>
	<delete id="del">
		delete from sys_user where user_id=#{id}
	</delete>
</mapper>

一个测试类

	public static void main(String[] args) {
		InputStream inputStream;
		try {
			inputStream = Resources.getResourceAsStream("config/mybatis_config.xml");
			//sqlSession对象代指一次数据库连接
			SqlSessionFactory sqlSessionFactory =new  SqlSessionFactoryBuilder().build(inputStream);
			SqlSession sqlSession = sqlSessionFactory.openSession();
			
			userDao ud = sqlSession.getMapper(userDao.class);
			//System.out.println(ud.getClass().getName());
			String userName = ud.getUserName(1170);
			System.out.println(userName);
			sqlSession.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}

配置文件(配置文件有先后顺序 如果顺序不对,会自动提示)

类型别名 网站地址

https://mybatis.org/mybatis-3/zh/configuration.html#typeAliases

名字转化的问题(三种方法)

如果要让数据库中的名字自动匹配驼峰命名法需要再mybatis配置文件中加入(例如user_name 和userName)

<!-- 让属性 mapUnderscoreToCamelCase的值为true(默认为false) 也就是可以将——自动转化为驼峰命名法  不过一般还是用别名比较多-->
<settings>
		<setting name="mapUnderscoreToCamelCase" value="true"></setting>
	</settings>

利用别名

三 在sql的xml文件的mapper下配置,但是必须在实现接口方法的标签中加上resultMap(并且resultMap和resultType只能使用一个)返回list的时候和一个对象的时候一样的类型

id标签和result标签都可以改名

<resultMap type="com.zcc.mybatis.user.entity.UserInfo" id="userInfo">
	<id property="userName" column="user_name"></id>
	
	<result property="userId" column="user_id"/>
</resultMap>
mybatis配置文件中的typeAliases标签(可以定义自定义类型,在sql配置文件中可以直接用alias)不建议使用,不方便维护和观看
<typeAliases>
		<typeAlias type="com.zcc.mybatis.user.entity.UserInfo" alias="UserInfo"></typeAlias>
	</typeAliases>
引入文件(properties标签 )
<properties  resource="config/db.properties"></properties>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值