专栏首页Vincent-yuanjava之mybatis之helloworld

java之mybatis之helloworld

1. MyBatis 是一款一流的支持自定义SQL、存储过程和高级映射的持久化框架。

MyBatis几乎消除了所有的 JDBC 代码,也基本不需要手工去设置参数和获取检索结果。

MyBatis几乎能够使用所有简单的 XML 格式 或注解来进行配置,能够映射基本数据元素、Map 接口和 POJOs(普通java对象)到数据库中的记录。

2. MyBatis是一款半自动化的orm框架。

3. MyBatis 也叫 ibatis。

4.下面演示一个mybatis的简单案例

目录结构如下:

(1). 新建 java 项目 :mybatis_helloworld

(2). 在目录结构的lib下导入mybatis需要的jar包, 并且 build 操作

mybatis-3.2.7.jar

mysql-connector-java-5.1.20-bin.jar

(3). 在 src 下编写 mybatis 的核心配置文件

mybatis.cfg.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.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/test" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/vincent/vo/UserMapper.xml"/>
    </mappers>
</configuration>

(4). 编写 vo 类

User.java

 1 package cn.vincent.vo;
 2 
 3 import java.io.Serializable;
 4 
 5 public class User implements Serializable{
 6 
 7     private int id;
 8     private String name;
 9     private int age;
10     public int getId() {
11         return id;
12     }
13     public void setId(int id) {
14         this.id = id;
15     }
16     public String getName() {
17         return name;
18     }
19     public void setName(String name) {
20         this.name = name;
21     }
22     public int getAge() {
23         return age;
24     }
25     public void setAge(int age) {
26         this.age = age;
27     }
28     @Override
29     public String toString() {
30         return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
31     }
32     
33     
34 }

(5) . 编写映射文件

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">
<mapper namespace="cn.vincent.vo.UserMapper">
    <select id="selectUser" parameterType="int" resultType="cn.vincent.vo.User">
        select * from t_user where id = #{id}
    </select>
</mapper>

(6). 测试

Demo.java(位置可参考目录结构)

package cn.vincent.mybatis;

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 cn.vincent.vo.User;



public class Demo {

    public static void main(String[] args) throws IOException{
        Reader reader=Resources.getResourceAsReader("mybatis.cfg.xml");
        SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sqlMapper.openSession();
        User user=session.selectOne("cn.vincent.vo.UserMapper.selectUser",1);
        System.out.println(user);
    }
}

github地址:https://github.com/Vincent-yuan/mybatis_helloworld

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java之hibernate之基于外键的双向一对一关联映射

    Vincent-yuan
  • java之mybatis之一对多关联映射

    Vincent-yuan
  • java之spring之整合ssh

    github地址:https://github.com/Vincent-yuan/spring_ssh

    Vincent-yuan
  • Spring data 数据库建表(一对一,一对多,多对多)

    本文节选择电子书《Netkiller Java 手札》 DBA 如果你在不学习编程,你将失业。如今我们对DBA的依赖越来越少,多数框架都支持实体关系映射,通过面...

    netkiller old
  • Hibernate实体关系映射

    上一篇文章我们学习了Hibernate的框架搭建,并且完成了单表的CRUD操作,今天我们来学习Hibernate中的多表关联。

    南风
  • mybatis文件映射之利用collection定义关联集合(五)

    说明:这实际上是多对一查询,即一个部门里面有多个员工。collection标签中property属性标识Department类中的成员属性,ofType标识其类...

    绝命生
  • java高并发系列 - 第10天:线程安全和synchronized关键字

    当多个线程去访问同一个类(对象或方法)的时候,该类都能表现出正常的行为(与自己预想的结果一致),那我们就可以所这个类是线程安全的。

    路人甲Java
  • Hibernate二级缓存存集合对象

    <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC ...

    Hongten
  • Spring Data 最佳实践

    摘要: ORM的出现解决了程序猿学习数据库学历成本,也加快了开发的速度。程序猿无需再学习数据库定义语言DDL以及数据库客户端,也无需关注建表这些繁琐的工作,同时...

    netkiller old
  • JAVA JPA - 示例用法

    JPA(Java Persistence API)是JSR(Java Specification Requests)的一部分,定义了一系列对象持久化的标准,目前...

    菩提树下的杨过

扫码关注云+社区

领取腾讯云代金券