Eclipse上创建第一mybatis工程实现数据库查询


步骤:

1.创建一个java工程

2.创建lib文件夹,加入mybatis核心包、依赖包、数据驱动包。并为jar包添加路径

3.创建resources资源文件夹,加入log4j.propertiesSqlMapConfig.xml配置文件

4.创建POJO类

5.在resources下的sqlmap目录下创建sql映射文件User.xml

6.在SqlMapConfig.xml中加载映射文件

7.在resources下的sqlmap目录下创建sql映射文件User.xml实现根据id查询用户

8.编写测试程序

9.测试成功



1.创建一个java工程

2.创建lib文件夹,加入mybatis核心包、依赖包、数据驱动包。并为jar包添加路径

mybaits的代码由github.com管理

下载地址:https://github.com/mybatis/mybatis-3/releases

mybatis-3.4.6.jar       mybatis的核心包

lib文件夹                  mybatis的依赖包所在

mybatis-3.4.6.pdf      mybatis使用手册

3.创建resources资源文件夹,加入log4j.propertiesSqlMapConfig.xml配置文件

log4j.properties文件下加入如下头文件

# Global logging configuration

log4j.rootLogger=DEBUG, stdout

# 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

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事务管理 -->

           <transactionManager type="JDBC" />

           <!-- 数据库连接池 -->

           <dataSource type="POOLED">

              <property name="driver" value="com.mysql.jdbc.Driver" />

              <property name="url"

                  value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />

              <property name="username" value="root" />

              <property name="password" value="root" />

           </dataSource>

       </environment>

    </environments>

</configuration>

4.创建POJO类    //此处pojo类的属性和类型与数据库User表中的属性和类型相同

package com.mybatis.pojo;

import java.sql.Date;

public class User {

       private int id;

       private String username;// 用户姓名

       private String sex;// 性别

       private Date birthday;// 生日

       private String address;// 地址    

       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 getSex() {

             return sex;

       }

       public void setSex(String sex) {

             this.sex = sex;

       }

       public Date getBirthday() {

             return birthday;

       }

       public void setBirthday(Date birthday) {

             this.birthday = birthday;

       }

       public String getAddress() {

             return address;

       }

       public void setAddress(String address) {

             this.address = address;

       }

       @Override

       public String toString() {

             return "User [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address="

                           + address + "]";

       }

}

5.在resources下的sqlmap目录下创建sql映射文件User.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="test">

</mapper>

6.在SqlMapConfig.xml中加载映射文件

                    </environment>

       </environments>

       <mappers>

       <mapper resource="sqlmap/User.xml"></mapper>

       </mappers>

</configuration>

7.在resources下的sqlmap目录下创建sql映射文件User.xml实现根据id查询用户

<?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="test">

 

    <!-- id:statement的id 或者叫做sql的id-->

    <!-- parameterType:声明输入参数的类型 -->

    <!-- resultType:声明输出结果的类型,应该填写pojo的全路径 -->

    <!-- #{}:输入参数的占位符,相当于jdbc的? -->

    <select id="queryUserById" parameterType="int"

       resultType="com.mybatis.pojo.User">

       SELECT * FROM `user` WHERE id  = #{id}

    </select>

</mapper>

8.编写测试程序

public class MybatisTest {

    private SqlSessionFactory sqlSessionFactory = null;

 

    @Before

    public void init() throws Exception {

       // 1. 创建SqlSessionFactoryBuilder对象

       SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

 

       // 2. 加载SqlMapConfig.xml配置文件

       InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");

 

       // 3. 创建SqlSessionFactory对象

       this.sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);

    }

 

    @Test

    public void testQueryUserById() throws Exception {

       // 4. 创建SqlSession对象

       SqlSession sqlSession = sqlSessionFactory.openSession();

 

       // 5. 执行SqlSession对象执行查询,获取结果User

       // 第一个参数是User.xml的statement的id,第二个参数是执行sql需要的参数;

       Object user = sqlSession.selectOne("queryUserById", 1);

 

       // 6. 打印结果

       System.out.println(user);

 

       // 7. 释放资源

       sqlSession.close();

    }

}

9.测试成功

DEBUG [main] - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.

DEBUG [main] - PooledDataSource forcefully closed/removed all connections.

DEBUG [main] - PooledDataSource forcefully closed/removed all connections.

DEBUG [main] - PooledDataSource forcefully closed/removed all connections.

DEBUG [main] - PooledDataSource forcefully closed/removed all connections.

DEBUG [main] - Opening JDBC Connection

DEBUG [main] - Created connection 107915280.

DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@66ea810]

DEBUG [main] - ==>  Preparing: SELECT * FROM user WHERE id = ?

DEBUG [main] - ==> Parameters: 10(Integer)

DEBUG [main] - <==      Total: 1

User [id=10, username=张三, sex=1, birthday=2014-07-10, address=北京市]

Eclipse创建一个mybatis工程实现连接数据库查询的更多相关文章

  1. 【Java_SSM】(二)使用eclipse创建一个Maven web工程

    这篇博文我们介绍一下如何利用eclipse创件一个maven web工程. (1)File--New--Other--Maven--Maven project 此处我们快速创建一个maven工程 点击 ...

  2. IDEA创建一个Mybatis逆向工程

    Mybatis逆向工程简介: MyBatis Generator (MBG) 是一个Mybatis的代码生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各个版本的代码,和iBATI ...

  3. 使用Eclipse创建Maven Web工程

    方法/步骤 1 使用Eclipse创建Maven Web工程 2 找到Maven Project,点击Next 3 勾选上Create a simple project (不使用骨架),Next 4 ...

  4. Eclipse创建java web工程配置Tomacat和JDK 【转】

    在学习AJAX过程中,还用Intellij就有点老旧了,这是后装个Eclipse时,发现这个配置也很头疼,现在就叫你如何创建一个web工程,同时叫你配置Eclipse. 一.创建一个web工程 1.打 ...

  5. Eclipse创建java web工程

    Eclipse创建java web工程 eclipse版本:eclipse-jee-4.5-win32-x64 tomcat版本:apache-tomcat-7.0.63-windows-x64 jd ...

  6. 创建一个Android工程

    Creating an Android Project 原文演示了怎么通过Android Studio和命令行两种方式来创建一个Android工程. 原文链接:http://developer.and ...

  7. 用Eclipse 创建一个 简单的 Maven JavaWeb 项目

    使用Maven 创建一个简单的 javaWeb 项目: 本篇属于 创建 JavaWeb 项目的第三篇: 建议阅读本篇之前 阅读 用 Eclipse 创建一个简单的web项目  ;本篇是这这篇文章的基础 ...

  8. eclipse创建一个文件夹

    如何给eclipse创建一个文件夹,便于项目的管理:有时我们的eclipse中会有很多项目的,有的是公司的如Project1,Project2,Project3....还有的呢, 也可能是自己平时做的 ...

  9. 使用idea创建一个maven工程

    使用idea创建一个maven工程 一.创建maven工程 二.输入工程名 三.指定maven仓库 四.点击finish 五.修改工程结构(file->project structure) 六. ...

随机推荐

  1. 【c++基础】static修饰的函数作用与意义

    static修饰的函数作用与意义 static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类: 如果这个静态函数出现在类里,那么它是一个静态成员函数: 静态成员函数的作用在于:调用这个 ...

  2. [LeetCode&Python] Problem 404. Sum of Left Leaves

    Find the sum of all left leaves in a given binary tree. Example: 3 / \ 9 20 / \ 15 7 There are two l ...

  3. 代码规范V1.1

    作业要求:[https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/993] 代码规范文档/代码规范执行记录:[https://coding. ...

  4. linux报错jar包时出现“Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes”

    linux安装zip命令: yum install zip zip -d demo.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF

  5. php-isset和empty

    <?php $a = null; if(isset($a)){ echo "is set"."\n"; } else{ echo "not se ...

  6. 10 HashMap,Map.Entry,LinkedHashMap,TreeMap,Hashtable,Collections类

    Map集合的功能概述 添加功能 * V put(K key,V value):添加元素.            * 如果键是第一次存储,就直接存储元素,返回null            * 如果键不 ...

  7. python------模块定义、导入、优化 ------->random模块

    2.random模块 #随机浮点数 random.random()   #生成0到1之间的随机浮点数,不能自己指定 random.uniform(1,10)   #可以指定 #随机整数 random. ...

  8. LG5056 【模板】插头dp

    题意 题目背景 ural 1519 陈丹琦<基于连通性状态压缩的动态规划问题>中的例题 题目描述 给出n*m的方格,有些格子不能铺线,其它格子必须铺,形成一个闭合回路.问有多少种铺法? 输 ...

  9. linux系统调用的三种方法

    通过glibc提供的库函数 [23:02:14] gcc chmodtest.c [23:02:17] ls -l kali //记得先创建这个文件 -rwxrwxrwx. 1 root root 0 ...

  10. 01c语言基础

    1.布尔类型 #include <stdio.h> int main(){ ; bool flag2 = true; ,b =; printf("%d,%d,%d\n" ...