Mybatis入门程序

本文介绍了使用eclipse和mysql workbench进行Mybatis入门的步骤,包括创建java工程,添加必要jar包,配置log4j.properties,编写SqlMapConfig.xml,设计PO类,以及映射文件和测试程序的详细过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mybatis入门程序(eclipse+mysql workbench)


需求

根据产品的数量查询一条信息;

第一步:创建java工程

打开elipse软件,新建一个java工程,jdk使用jdk1.8.0;

第二步:添加以下jar包到项目中

  1. mysql数据驱动包:mysql-connector-java-5.1.36-bin.jar
  2. mybatis核心包:mybatis-3.2.7.jar
  3. mybatis依赖包(在mybatis文件夹中的lib文件夹里,全部拷进项目)
    这里写图片描述
  4. junit包:junit-4.9.jar

第三步:编写配置文件log4j.properties

# Global logging configuration
#在开发环境下日志级别要设置成DEBUG,生产环境设置成info或error
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
#log4j.logger.org.mybatis.example.BlogMapper=TRACE
# 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

mybatis默认使用log4j作为输出日志信息。

第四步:编写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>
    <!-- 和spring整合后 environments配置将废除-->
    <environments default="development">
        <environment id="development">
        <!-- 使用jdbc事务管理,事务控制由mybatis-->
            <transactionManager type="JDBC" />
        <!-- 数据库连接池,由mybatis管理-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/sql_bizhibihui?characterEncoding=utf-8" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
<!--添加映射条件  -->
<mappers>
        <mapper resource="sqlmap/User.xml"/>
</mappers>
</configuration>

代码说明:
1. sql_bizhibihui是根据自己创建的数据库名称,因此名称并不唯一,以自己创建的名称为准;
2. passworkd后面的root为mysql的登录密码,因此也引人而异,这里我的密码设置的是root;
3. resource后面的sqlmap/User.xml中的sqlmap为创建的包名,User.xml为编写的映射文件名称。

第五步:编写po类用来接收statement对象

po类作为mybatis进行sql映射使用,po类通常与数据库表对应,User.java如下:

public class User {
     private int order_num;
     private int order_item;
     private String prod_id;
     private int quantity;
     private BigDecimal item_price;
}

代码说明:
1. 除此之外,也要写get和set方法。
2. 以上新添的5个成员变量应与数据库中orderitems表中的字段个数和顺序一一对应,此外java中的字段数据类型也要与mysql中的具体字段对应起来。
3. 以下为数据库的orderitems表:
这里写图片描述

第六步:程序编写

1. 编写映射文件:

在classpath下的sqlmap目录下创建sql映射文件Users.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命名空间,作用就是对sql进行分类化管理,理解sql隔离 
注意:使用mapper代理方法开发,namespace有特殊重要的作用
-->
<mapper namespace="test">
    <!-- 在 映射文件中配置很多sql语句 -->
    <!-- 需求:通过id查询用户表的记录 -->
    <!-- 通过 select执行数据库查询
    id:标识 映射文件中的 sql
    将sql语句封装到mappedStatement对象中,所以将id称为statement的id
    parameterType:指定输入 参数的类型,这里指定int型 
    #{}表示一个占位符号
    #{id}:其中的id表示接收输入 的参数,参数名称就是id,如果输入 参数是简单类型,#{}中的参数名可以任意,可以value或其它名称

    resultType:指定sql输出结果 的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象。
     -->
    <select id="findUserById" parameterType="int" resultType="itcast.mybatis.po.User">
        SELECT * FROM orderitems WHERE quantity=#{quantity}
    </select>
</mapper>

代码说明:
1. namespace中的test为命名空间名称,可任意命名;
2. itcast.mybatis.po.User为User类具体的路径,其中还包括各种路径下的包名。
3. select语句是用来查询orderitems表中的字段quantity为某个具体值时的记录,而“#{}”是动态sql语句,想要详细了解可百度动态sql“#{}”和“${}”。

2. 测试程序

新建一个测试类MyBatisFirst.java:

package itcast.mybatis.first;
import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import itcast.mybatis.po.User;
public class MybatisFirst {
    @Test
    public void findUserByIdTest() {
        //配置文件
        String source="SqlMapConfig.xml";
        InputStream inputstream=null;
        //数据库会话
        SqlSession sqlsession=null;
        //会话工厂
        SqlSessionFactory sqlsessionfactory=null;
        try {
            inputstream = Resources.getResourceAsStream(source);
            //创建一个会话工厂
            sqlsessionfactory=new SqlSessionFactoryBuilder().build(inputstream);
            //利用会话工厂创建一个会话
            sqlsession=sqlsessionfactory.openSession();
            //查询单个记录用selectOne方法
            User user=sqlsession.selectOne("test.findUserById", 20);
            //输出产品信息
            System.out.println(user);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            //关闭会话
            if(sqlsession!=null){
            sqlsession.close();
            }
        }

    }
}

代码说明:
selectOne方法中的第一个参数为String类型,内容为具体的statement对象,也就是User.xml文件中的命名空间test加上id为findUserById;第二个参数为sql查询语句中quantity字段的具体参数值。最后别忘了关闭会话。

以下是项目概览:

这里写图片描述
项目说明:项目中所有需要新建编写的文件为MybatisFirst.java,User.java,User.xml,log4j.properties和SqlMapConfig.xml共五个文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值