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

来源:互联网 发布:java etl 开源框架 编辑:程序博客网 时间:2024/06/05 03:26

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.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%nlog4j.logger.java.sql.ResultSet=INFOlog4j.logger.org.apache=INFOlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.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: 1Employee{id=1, lastname='tom', email='tom@guigu', gender='0'}
原创粉丝点击