MyBatis HelloWorld

一、MyBatis简介



iBatis是apche的一个开源项目,2010年迁移到google code后改名为MyBatis,2013年前已到github.MyBatis是一个基于java的持久层框架,与hibernate相比更加简单。关于MyBatis和Hibernate的对比,可参考这篇博客:Hibernate与 MyBatis的比较.

二、MyBatis特点


  1. 开源的优秀持久层框架
  2. sql语句与代码分离
  3. 面向配置编程
  4. 支持复杂数据映射
  5. 动态sql

三、MyBatis开发环境搭建



工程目录:

3.1下载jar包

  1. mybatis-3.2.8.zip(3.2.8之后的jar包没有log4j,这一点我暂时也不知道为什么)
  2. mysql-connector,选择JDBC Driver for MySQL下载。

3.2在mysql中新建数据库

MyBatis是一个持久层框架,也就是和数据库打交道的,mysql新建一个数据库用来做测试。

create database book

建立一张user表:

Create Table: CREATE TABLE `User` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `passWord` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) 

插入几条记录:

+----+----------+------------+
| id | username | passWord   |
+----+----------+------------+
|  1 | 小华     | xiaohua    |
|  2 | 柯南     | 666666     |
|  3 | 慕白     | 123456     |
|  4 | 小明     | xiaoming12 |
+----+----------+------------+

这样数据库准备好了,也可以在mysql图形界面中操作。

3.3配置开发环境

3.3.1新建java project

在eclipse中新建java project,命名为Mybatis HelloWorld

3.3.2导入jar包

单击工程名右键->build path->config build path->add external jars,加入以下jar包mysql-connector-java-5.1.38-bin.jarmybatis-3.2.8.jarasm-3.3.1.jarcglib-2.2.2.jarcommons-logging-1.1.1.jarjavassist-3.17.1-GA.jarlog4j-1.2.17.jarlog4j-api-2.0.2.jarlog4j-core-2.0.2.jarslf4j-api-1.7.5.jarslf4j-log4j12-1.7.5.jar

3.3.3配置log4j

在src目录下添加log4j.properties,log4j可用来打印sql查询语句:

log4j.rootLogger=DEBUG, CONSOLE

#Console
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

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

3.3.4 添加User.java

新建ucas.book.map、ucas.book.pojo、ucas.book.test包

在ucas.book.pojo包下新建User实体:

package ucas.book.pojo;

public class User {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}

3.3.5Mybatis配置文件

在ucas.book.map包下加入mybatis.xml和UserMapper.xml:

数据库连接和相关配置信息写在mybatis.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>

    <typeAliases>
        <typeAlias alias="User" type="ucas.book.pojo.User" />
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <!-- 事务管理类型,JDBC表示直接使用JDBC的提交和回滚设置,依赖于数据源得到的连接来管理事务 -->
            <transactionManager type="JDBC" />
            <!-- 数据库连接池POOLED表示使用数据库连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/book?useSSL=true" />
                <property name="username" value="root" />
                <property name="password" value="napoay" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!-- SQL代码和映射信息配置文件 -->
        <mapper resource="ucas/book/map/UserMapper.xml" />
    </mappers>
</configuration>

sql代码写在UserMapper.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必须是唯一的,建议用该文件所在的包路径全类名 -->
<mapper namespace="ucas.book.map.UserMapper">
    <!-- select:表示这是一个查询操作 -->
    <!-- id:用来配合namespace来定位这个操作,也就是在调用时,将采用ucas.book.pojo.User.getUserById -->
    <!-- resultType:表示返回值类型,必须是全类名,MyBatis将自动为我们将查询结果封装成Student对象 -->
    <!-- parameterType:表示传进来的参数的类型,因为传的是id主键,所以是int型 -->
    <select id="getUserById" parameterType="int" resultType="ucas.book.pojo.User">
        <!-- #{id}:表示占位符,也就是调用时必须为其传一个id参数进来,注意是#不是$ -->
        select * from User where id = #{id}
    </select>
</mapper>

<select></select>中写的是通过id查询记录的sql语句。

3.3.6测试代码

package ucas.book.test;

import java.io.IOException;
import java.io.Reader;

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 ucas.book.pojo.User;

public class TestUser {
    public static void main(String[] args) {
        String resource = "ucas/book/map/mybatis.xml";
        Reader reader = null;
        SqlSession session;

        try {
            reader = Resources.getResourceAsReader(resource);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);

        session = factory.openSession();
        User user = session.selectOne("getUserById", 1);

        System.out.println("\nusername:" + user.getUsername());

        session.close();

    }
}

结果:

时间: 2024-11-05 22:48:18

MyBatis HelloWorld的相关文章

springboot+mybatis HelloWorld示例

springboot+mybatis HelloWorld示例. 版本:springboot-1.5.1.RELEASE.mybatis-spring-boot-1.2.0 1,maven配置文件pom.xml如下: <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <

新建一个mybatis HelloWorld

1.下载mybatis https://github.com/mybatis/mybatis-3/ 没有梯子好像打不开 下载一个最新版本,我这里下载的是mybatis-3.4.1.zip 里面有mybatis需要的jar和文档 2.新建一个java project ,新建lib目录把jar复制到lib下面 3.新建一个简单log4j配置文件log4j.properties,内容如下: log4j.rootLogger = DEBUG,CONSOLE log4j.appender.CONSOLE

mybatis(1)

一.MyBatis简介 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的 hibernate,Mybatis,你都可以法相他们有一个共同点: 从配置文件(通常是 X

mybatis无接口直接调用xml的helloworld

1.首先在库里面创建一张表,sql语句如下: CREATE TABLE `users` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) COLLATE utf8_bin DEFAULT NULL, `age` INT(11) DEFAULT NULL, PRIMARY KEY (`id`) ); insert into `users`(`id`,`name`,`age`) values (1,'tome',12),(2,'ja

初探MyBatis之HelloWorld(三)

三.用SQL映射语句用注解,dataSource用xml(不推荐). 综合上面两节(一个用xml,一个用annotation),发现一个好玩儿的,SQL映射用注解方式,然后还是得有两个xml配置文件. 如果你不知道SQL映射怎么用注解方式,查看这篇:http://www.cnblogs.com/hyyq/p/6718449.html 当SQL语句用注解方式映射后,原来的XML映射文件可以这样写: 这是原来用xml映射SQL语句的方式(这里的mapper节点的 namespace和select节点

mybatis 的第一个 HelloWorld 程序学习

1.准备工作: a.在 MYSQL 中新建一个 mybatis 数据库,并且创建一个 table,在这个表格中录入一条记录. 注:我使用的是 SQLyog,你们也可以使用命令行直接创建库和表. 2.在 eclipse 中创建一个 java 工程: - 创建一个名为 Employee 的 bean 类,并且在这个工程的路径下创建一个 lib 文件夹,用于存放需要的 jar 包. (需要的 jar 包为 mybatis-3.4.1.jar .mysql-connector-java-5.1.37-b

MyBatis之HelloWorld

一.简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录. MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工

初探MyBatis之HelloWorld(一)

官方地址:https://github.com/mybatis/mybatis-3 准备: 官方中文文档地址:http://www.mybatis.org/mybatis-3/zh/getting-started.html 1.导入MyBatis的jar包和mysql连接驱动(maven): <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.

初探MyBatis之HelloWorld(二)

二.不使用 XML 构建 SqlSessionFactory 不使用xml构建SqlSessionFactory的话,就要用java代码来连接数据库.我这里直接new DataSorce()接口实现getConnection()方法(不知道对不对,反正实验证明,可行). EmployeeDataSourceFactory.java: 1 package yyc.mybatis.util; 2 3 import java.io.PrintWriter; 4 import java.sql.Conn