使用mybatis操作数据库步骤

使用mybatis操作数据库步骤:

1. 导包:mysql-connector-java、mybatis-3.4.1.jar、log4j-1.2.17.jar

    建议导入日志包:这样的话在mybatis关键的环节就会有日志打印
    log4j(日志框架);依赖类路径下一个log4j.xml配置文件
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.2</version>
    </dependency>
    <!--支持数据库驱动的坐标-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.22</version>
    </dependency>
    <!--支持日志的坐标-->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

2.写配置:(两个,全局配置文件(知道mybatis运行的),dao接口的实现文件(描述dao每个方法怎么工作))

1):第一个配置文件;(称为mybatis的全局配置文件,指导mybatis如何正确的运行,比如连接向哪个数据库)
2):第二个配置文件;(编写每一个方法都如何向数据库发送sql语句,如何执行...相当于接口的实现类)
        1):将mapper的namespace属性改为接口的全类名
        2):配置细节:见EmployeeDao.xml配置文件
        3):我们写的dao接口的实现文件,mybatis默认不知道的,需要在全局配置文件中注册

全局配置文件:mybatis-config.xml

<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!--配置连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis_0325?serverTimezone=UTC&amp;useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!--引入我们自己编写的每一个接口的实现文件-->
    <mappers>
        <!--resource:表示从类路径下找资源-->
        <mapper resource="EmployeeDao.xml"/>
    </mappers>
</configuration>

sql映射文件:EmployeeDao.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">
<!--namespace:名称空间:写接口的全类名,相当于告诉MyBatis这个配置文件是实现哪个接口的-->
<mapper namespace="com.dao.EmployeeDao">
    <!--public Employee getEmpById(Integer id);-->
<!--
select:用来定义一个查询操作
id:方法名,相当于这个配置是对于某个方法的实现
resultType:指定方法运行后的返回值类型;(查询操作必须指定)
#{属性名}:代表取出传递过来的某个参数的值
-->
<!--public Employee getEmpById(Integer id);参数类型不用写-->
<!--sql语句不要写分号-->
    <select id="getEmpById" resultType="com.pojo.Employee">
    select * from t_employee where id = #{id}
  </select>
</mapper>
<!--增删改不用写返回值类型,增删改是返回影响多少行
    mybatis自动判断,如果是数字的话(int,long)
    如果是boolean(影响0行自动封装false,否则true)
-->

3.测试:

    @Test
    public void test() throws IOException {
        //1.根据全局配置文件创建出一个SqlSessionFactory
        //SqlSessionFactory:是Session工厂,负责创建SqlSession对象
        //SqlSession:sql会话(代表和数据库的一次会话)
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        Employee employee;
        //2.获取和数据库的一次会话;getConnection()
        SqlSession openSession = sqlSessionFactory.openSession();
        try {
            //3.使用SqlSession操作数据库,获取到dao接口的实现
            EmployeeDao employeeDao = openSession.getMapper(EmployeeDao.class);
            //4.调用之前的方法
            employee = employeeDao.getEmpById(1);
        } finally {
            //5.关闭会话
            openSession.close();
        }
        System.out.println(employee);
    }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值