mybatis基础学习
简单概述:
在学习之前,我么需要了解一下mybatis的背景历史,以及mybatis是做什么的?能做什么?
MyBatis 本是apache的一个开源项目iBatis,
2010年这个项目由apache software foundation 迁移到了google code,
并且改名为MyBatis。
之前我么学习过了hibernate了,我么知道hibernate就是与数据库
进行交互数据产生的一个框架,但是,hibernate并不是很好
之所以不好,具体 "百度一下" OR "google"
那么,我么的mybatis也是与我么的数据库打交道的,但是,我么的mybatis是一个轻量级的框架
我么只需要导入一个jar包就可以使用mybatis进行开发,那么,它的功能是不是的非常的少呢?
不是的,jar包少,功能依旧强大,具体了可以google下载它的jar文件
使用mybatis可以与我么的spring进行整合,效果也是非常的不错的。
通过上面的简单了解,我么已经知道了 "mubatis"主要是做什么的了,那么,接下来
我么通过一个简单的案例,进入mybatis之旅把...
1:
导入mybatis-3.2.2.jar 核心jar包
导入mysql.jar 和数据库交互数据,这是必须的
导入log4j.jar 主要记录日志
好了,这几个jar包导入好了的话,那么下面就可以进行开发了
1,配置一个主文件即(mybatis-config.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>
<!-- 类路径的配置 -->
<typeAliases>
<typeAlias type="cn.xx.mybatis.User" alias="user"/>
</typeAliases>
<!-- 数据库的配置 -->
<environments default="test">
<environment id="test">
<!-- 事务 JDBC(以Connection方式进行事务管理)/MANAGED(交由外在容器管理,例如spring容器通过声明式事务方式管理)-->
<transactionManager type="JDBC"/>
<!-- 连接配置 UNPOOLED/POOLED/JNDI-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
<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="cn/xx/xml/UserMapper.xml"/>
</mappers>
</configuration>
那么上面就是我么配置的主题文件,都需要对应相应的数据,(*^__^*) 嘻嘻...
那么,主题文件我么配置好了以后,下面开始写我么的类了把,就是一个javabean
javabean我就不在这里写出来了,javabean的属性主要就是和我么的数据库字段相同,所以这里大家就好好看看把...
这里首先做一个假设你的javaben + 数据库都配置好了,那么,恭喜你,进入下一个步骤,类文件配置,其实,我这里也不知道叫什么名字好
但是这个配置文件的开头就是以我么的类名开头的,所以我就称为 类配置,(大家都有自己的叫法,随意,只要知道里面的配置意思就OK了)
配置:
<?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="cn.xx.mybatis.User">
<!-- 这里的配置对应我么数据库中的字段 -->
<sql id="allCloumn">
id,name,age
</sql>
<!-- 实体类的成员属性和查询出来的结果集的列名映射 -->
<resultMap type="user" id="userMap">
<!-- 前者的id对应user类中的id,后者的id对于数据库 -->
<id property="id" column="id"></id>
<result property="name" column="name"></result>
<result property="age" column="age"></result>
</resultMap>
<!-- 查询方法 -->
<select id="findUserById" parameterType="string" resultMap="userMap">
select <include refid="allCloumn"/>from user where id=#{id}
</select>
</mapper>
额,这里忘记和大家说了,这两个.xml文件是需要引入dtd约束文件的...(谁在"嘘"我,都配置好了在说,这不是明显的"坑爹"啊,哈哈~)
好了,不吐槽了, 这里在做一个假设,你的 双配置 + javabean + 数据库 这些你都配置好了,那么接下来,进行Test单元测试把
那么,mybatis主要怎么实现与数据库进行数据交互呢???
这里,他的步骤也是和hibernate的差不多的,嘿嘿...
Test:
@Test
public void test1() throws Exception{
//加载配置文件
String config = "mybatis-config.xml";
//通过classLoad方式进行加载
InputStream stream = Resources.getResourceAsStream(config);
//创建数据工厂SqlSessionFactory
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(stream);
//获取Session
SqlSession session = build.openSession();
//调用方法
User user = (User)session.selectOne("cn.xx.mybatis.User.findUserById", 1);
System.out.println(user);
}
当你一点击"运行"呵呵,你的程序就执行咯,OOOO,了了个去,报了错误("指的是你么啦~")
不过我这里运行的时候也是出错了几处,不过,我发出来的都是修改好了的....
谢谢大家阅读,本文章纯属虚构,如有雷同,纯属高智商
简单概述:
在学习之前,我么需要了解一下mybatis的背景历史,以及mybatis是做什么的?能做什么?
MyBatis 本是apache的一个开源项目iBatis,
2010年这个项目由apache software foundation 迁移到了google code,
并且改名为MyBatis。
之前我么学习过了hibernate了,我么知道hibernate就是与数据库
进行交互数据产生的一个框架,但是,hibernate并不是很好
之所以不好,具体 "百度一下" OR "google"
那么,我么的mybatis也是与我么的数据库打交道的,但是,我么的mybatis是一个轻量级的框架
我么只需要导入一个jar包就可以使用mybatis进行开发,那么,它的功能是不是的非常的少呢?
不是的,jar包少,功能依旧强大,具体了可以google下载它的jar文件
使用mybatis可以与我么的spring进行整合,效果也是非常的不错的。
通过上面的简单了解,我么已经知道了 "mubatis"主要是做什么的了,那么,接下来
我么通过一个简单的案例,进入mybatis之旅把...
1:
导入mybatis-3.2.2.jar 核心jar包
导入mysql.jar 和数据库交互数据,这是必须的
导入log4j.jar 主要记录日志
好了,这几个jar包导入好了的话,那么下面就可以进行开发了
1,配置一个主文件即(mybatis-config.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>
<!-- 类路径的配置 -->
<typeAliases>
<typeAlias type="cn.xx.mybatis.User" alias="user"/>
</typeAliases>
<!-- 数据库的配置 -->
<environments default="test">
<environment id="test">
<!-- 事务 JDBC(以Connection方式进行事务管理)/MANAGED(交由外在容器管理,例如spring容器通过声明式事务方式管理)-->
<transactionManager type="JDBC"/>
<!-- 连接配置 UNPOOLED/POOLED/JNDI-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
<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="cn/xx/xml/UserMapper.xml"/>
</mappers>
</configuration>
那么上面就是我么配置的主题文件,都需要对应相应的数据,(*^__^*) 嘻嘻...
那么,主题文件我么配置好了以后,下面开始写我么的类了把,就是一个javabean
javabean我就不在这里写出来了,javabean的属性主要就是和我么的数据库字段相同,所以这里大家就好好看看把...
这里首先做一个假设你的javaben + 数据库都配置好了,那么,恭喜你,进入下一个步骤,类文件配置,其实,我这里也不知道叫什么名字好
但是这个配置文件的开头就是以我么的类名开头的,所以我就称为 类配置,(大家都有自己的叫法,随意,只要知道里面的配置意思就OK了)
配置:
<?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="cn.xx.mybatis.User">
<!-- 这里的配置对应我么数据库中的字段 -->
<sql id="allCloumn">
id,name,age
</sql>
<!-- 实体类的成员属性和查询出来的结果集的列名映射 -->
<resultMap type="user" id="userMap">
<!-- 前者的id对应user类中的id,后者的id对于数据库 -->
<id property="id" column="id"></id>
<result property="name" column="name"></result>
<result property="age" column="age"></result>
</resultMap>
<!-- 查询方法 -->
<select id="findUserById" parameterType="string" resultMap="userMap">
select <include refid="allCloumn"/>from user where id=#{id}
</select>
</mapper>
额,这里忘记和大家说了,这两个.xml文件是需要引入dtd约束文件的...(谁在"嘘"我,都配置好了在说,这不是明显的"坑爹"啊,哈哈~)
好了,不吐槽了, 这里在做一个假设,你的 双配置 + javabean + 数据库 这些你都配置好了,那么接下来,进行Test单元测试把
那么,mybatis主要怎么实现与数据库进行数据交互呢???
这里,他的步骤也是和hibernate的差不多的,嘿嘿...
Test:
@Test
public void test1() throws Exception{
//加载配置文件
String config = "mybatis-config.xml";
//通过classLoad方式进行加载
InputStream stream = Resources.getResourceAsStream(config);
//创建数据工厂SqlSessionFactory
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(stream);
//获取Session
SqlSession session = build.openSession();
//调用方法
User user = (User)session.selectOne("cn.xx.mybatis.User.findUserById", 1);
System.out.println(user);
}
当你一点击"运行"呵呵,你的程序就执行咯,OOOO,了了个去,报了错误("指的是你么啦~")
不过我这里运行的时候也是出错了几处,不过,我发出来的都是修改好了的....
谢谢大家阅读,本文章纯属虚构,如有雷同,纯属高智商