舒大少博客

一个95后少年的个人博客

当前时间为:
欢迎大家来到舒大少博客http://admin.evshou.com,广告合作以及淘宝商家推广请微信联系15357240395
...
零基础学Python从入门到精通 python基础教程基础

【在售价】34.90 元
【在售价】34.90 元

立即领券
...
Python编程从入门到精通 视频教学 python语言程序设计

【在售价】29.80 元
【券后价】19.80元

立即领券
...
未来教育计算机二级ms office题库电子版c语言

【在售价】28.00 元
【在售价】28.00 元

立即领券
...
Python3视频零基础教程自学入门到精通编程语言程序设计网络爬虫

【在售价】62.00 元
【券后价】52.00元

立即领券
...
Python编程从入门到精通 零基础学python数据分析

【在售价】29.80 元
【券后价】19.80元

立即领券

2020java框架教程之Mybatis入门

2020-12-18 11:38:02
swq1822677238

手机扫码查看

2020java框架教程之Mybatis入门

2020java框架教程之Mybatis入门

大纲:

1.Mybatis 持久层:简化工作量,灵活

2.spring 粘合剂:整合框架、AOP、IOC、DI

3.SpringMVC 表现层:方便前后端数据的传输。

 

1.什么是Mybatis

a.Mybatis是对jdbc的封装
b.将SQL语句放在映射文件中(xml)
c.自动将输入参数映射到sql语句的动态参数上
d.自动将sql语句执行的结果映射成java对象

2.Mybatis入门

a.创建web项目
b.导入相关依赖:

<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.12</version>
</dependency>
<dependency>
  <groupId>org.wisdom-framework</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.34_1</version>
</dependency>
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.2.8</version>
</dependency>

3.加入配置文件

a.database.properties

#连接设置
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8
username=root
password=root
#<!-- 初始化连接 -->
initialSize=10
#最大连接数量
maxActive=50
#<!-- 最小空闲连接 -->
minIdle=5
#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
maxWait=5000

b.log4j.properties

#log4j.rootCategory=INFO, stdout
log4j.rootCategory=error, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n

#log4j.category.org.springframework.beans.factory=DEBUG
log4j.category.org.springframework.beans.factory=error

c.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>
    <!--引入数据库连接配置 -->
    <properties resource="database.properties"/>
    <!--定义别名-->
    <typeAliases>
        <package name="mybatis.entity"/>
    </typeAliases>
    <!--定义数据源-->
    <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="MybatisMapper.xml"/>
    </mappers>
</configuration>

d.映射文件 MybatisMapper.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="mybatis.dao.UsersDao">
    <!-- 通过 id 查询用户 -->
    <select id="selectUser" resultType="Users" parameterType="int">
        select * from users where id = #{id}
    </select>
</mapper>

parameterType类型:

4.编写接口

public interface UsersDao {
    Users selectUser(Integer id);
}

5.创建实体类

6.创建工具类

public class MybatisUtils {
    private static SqlSessionFactory ssf;
    static{
        try{
            InputStream in= Resources.getResourceAsStream("mybatis-config.xml");
            ssf=new SqlSessionFactoryBuilder().build(in);
        }catch (Exception e){}
    }
    public static SqlSession getSqlSession(){
        return ssf.openSession();
    }
}

目录结构

7.创建测试用例

public class Tests {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UsersDao mapper = sqlSession.getMapper(UsersDao.class);
        Users users = mapper.selectUser(1);
        sqlSession.close();
        System.out.println(users);
    }
}

不使用接口方法

public class Tests {
    @Test
    public void test2(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        Users users = (Users) sqlSession.selectOne(
                "mybatis.dao.UsersDao.selectUser", 2
        );
        sqlSession.close();
        System.out.println(users);
    }
}

发表评论

邮箱地址不会被公开。 必填项已用*标注