Mybatis学习-helloworld(从mybatis中读出一条数据)-1

1. 下载

https://github.com/mybatis/mybatis-3/releases
帮助文档
\mybatis-3.4.1\mybatis-3.4.1\mybatis-3.4.1.pdf

2. maven配置

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.6</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

3. 日志配置

添加log4j.properties到src目录下

log4j.rootLogger=DEBUG,Console
#输出到控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n


log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

4. 创建数据库表(mysql)

 create table tbl_employee(
    id int(11) primary key auto_increment,
    last_name varchar(255),
    gender char(1),
    email varchar(255)
    );
 insert into tbl_employee values(null,'tom',0,'tom@guigu');

5.创建对应的java bean

注意,此处java bean的lastname字段与数据库中last_name字段不对应,需要在sql中起别名处理

public class Employee {
    private int id;
    private String lastname;
    private String email;
    private String gender;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "id=" + id +
                ", lastname='" + lastname + '\'' +
                ", email='" + email + '\'' +
                ", gender='" + gender + '\'' +
                '}';
    }
}

6.创建mybatis配置文件

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>
    <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/mybatis?serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/stayreal/mybatis/EmployeeMapper.xml"/>
    </mappers>

</configuration>

7. 创建javabean的映射文件

EmployeeMapper.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.stayreal.mybatis.EmployeeMapper">
    <select id="selectEmp" resultType="com.stayreal.mybatis.Employee">
    select id,last_name lastname,email,gender from tbl_employee where id = #{id}
    </select>
</mapper>

8. 创建JunitTest测试结果

public class EmployeeTest{
    private  static SqlSessionFactory sqlSessionFactory;
    private SqlSession session;

    @BeforeClass
    public static void  beforeClass() throws IOException {
        // 1. 根据xml创建SqlSessionFactory对象
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
         sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }

    @AfterClass
    public void afterClass(){
        session.close();
    }

    @Test
    public void testLoad() throws IOException {
        // 2. 获取session实例 能执行已经映射的sql语句
        session = sqlSessionFactory.openSession();
        // selectOne方法的两个参数:
        // sql的唯一标识
        // 执行sql要用的参数
        Employee employee = session.selectOne("com.stayreal.mybatis.EmployeeMapper.selectEmp", 1);
        System.out.println(employee.toString());
    }

}

观察console输出

[DEBUG][2017-06-06 15:59:51,056][com.stayreal.mybatis.EmployeeMapper.selectEmp]==>  Preparing: select id,last_name lastname,email,gender from tbl_employee where id = ? 
[DEBUG][2017-06-06 15:59:51,184][com.stayreal.mybatis.EmployeeMapper.selectEmp]==> Parameters: 1(Integer)
[DEBUG][2017-06-06 15:59:51,258][com.stayreal.mybatis.EmployeeMapper.selectEmp]<==      Total: 1
Employee{id=1, lastname='tom', email='tom@guigu', gender='0'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值