【学习笔记】Mybatis的使用(环境搭建与初步使用)

1.Mybatis简介

mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc。采用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。

(Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了)

2.Mybatis环境搭建

maven依赖导入

<!--mybatis坐标-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.5</version>
</dependency>
<!--mysql驱动坐标-->
<dependency>    
    <groupId>mysql</groupId>   
    <artifactId>mysql-connector-java</artifactId>    
    <version>5.1.6</version>    
    <scope>runtime</scope>
</dependency>
<!--单元测试坐标-->
<dependency>    
    <groupId>junit</groupId>    
    <artifactId>junit</artifactId>    
    <version>4.12</version>    
    <scope>test</scope>
</dependency>
<!--日志坐标-->
<dependency>    
    <groupId>log4j</groupId>    
    <artifactId>log4j</artifactId>    
    <version>1.2.12</version>
</dependency>

Log4j.properties配置

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

sqlMapConfig.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="数据库参数文件路径"></properties>
    <typeAliases><!--别名-->
    	<typeAlias type="com.wzx.bean.User" alias="user"></typeAlias><!--给个别包起别名 -->
    <!-- 包扫描器 使用后可在映射文件中的使用别名,别名为类的首字母小写,给包下的所有类起别名 -->
        <package name="包名"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
        <transactionManager type="JDBC"></transactionManager>
        <dataSource type="POOLED">
            <property name="driver" value="${database.driver}"/>
            <property name="url" value="${database.url}"/>
            <property name="username" value="${database.username}"/>
            <property name="password" value="${database.password}"/>
        </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/ssm/chapter14/mapper/RoleMapper.xml"></mapper>
    </mappers>
</configuration>

映射文件mapper.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.ssm.chapter14.dao.RoleDao">
	<select id="getRole" parameterType="long" resultType="com.ssm.chapter14.pojo.Role">
		select id, role_name as roleName, note from t_role where id = #{id}
	</select>
</mapper>

数据库连接参数jdbc.properties

driver=com.mysql.jdbc.Driver
username=root
password=123456
url=jdbc:mysql://localhost:3306/day13?characterEncoding=utf-8

3.Mybatis的操作步骤

(1)mybatis开发流程
1 创建SqlSessionFactoryBuilder对象
2 创建SqlSessionFactory对象
3 加载SqlMapConfig.xml配置文件
4 创建SqlSession对象
5 执行SqlSession方法操作数据库
6 打印结果
7 释放资源
Mybatis主要的工作是xml文件的配置与sqlSession的映射xml文件执行sql语句

sqlSession工具类

public class MySessionUtils {
    private static SqlSessionFactory sessionFactory;
    //static 静态代码,在类加载的时候执行一次,且只执行一次
    static{
	//1 创建SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
	//2 创建SqlSessionFactory对象
	//3 加载SqlMapConfig.xml配置文件
 InputStream inputStream = MySessionUtils.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml");
sessionFactory = sqlSessionFactoryBuilder.build(inputStream);//加载核心配置文件 参1 输入流
    }
    public static SqlSession getSession() {
	//4 创建SqlSession对象
        SqlSession sqlSession = sessionFactory.openSession();
        return sqlSession;
    }
}

简单使用:
映射文件RoleMapper.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">
<!-- map的约束文件-->
<!-- namespace 命名空间 防止id冲突找不到正确的id-->
<!-- id Mybatis是将sql语句写在xml文件中,以后session根据namesapce.id 合在一起获取sql-->
<!-- 在jdbc中,sql语句使用?作占位符,但在mybatis #{id}-->
<mapper namespace="com.wzx.bean.User">
    <delete id="deleteById" parameterType="int" >
        delete from user where id = #{id}
    </delete>
</mapper>

需要在配置文件中声明,在配置文件中添加

<mappers>
    <mapper resource="com/ssm/chapter14/mapper/RoleMapper.xml"></mapper>
</mappers>

测试类调用

public class Test02Myabatis {
    @Test
    public void test01(){
        SqlSession sqlSession = MySessionUtils.getSession();
//        》5 执行SqlSession对象执行删除
        System.out.println(sqlSession);
         //delete from user where id = ?
        sqlSession.delete("com.wzx.bean.User.deleteById",24);//执行删除 参1 是namespace.id 参2 参数值
//        》6 打印结果
//        》7 释放资源
        sqlSession.commit();//mybatis的session不会自动提交,必须手动提交
        sqlSession.close();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值