zoukankan      html  css  js  c++  java
  • mybatis框架入门程序:演示通过mybatis实现数据库的查询操作

    我们现在工程基于的数据库见“https://www.cnblogs.com/wyhluckdog/p/10147754.html ”这篇博文。

    1.mybatis下载

      mybatis的代码由githua.com管理,地址:https://github.com/mybatis/mybatis-3/releases

      

      * mybatis-3.2.7.jar----mybatis的核心包

      * lib----mybatis的依赖包

      * mybatis-3.2.7.pdf----mybatis使用手册

    2.需求

      实现以下功能:

        根据用户id查询一个用户的信息

        根据用户名称模糊查询用户信息列表

        添加用户

        更新用户

        删除用户

    3.工程搭建

    (1)第一步:创建java工程

      使用ecplise创建java工程,jdk为1.7.0_72.

    (2)第二步:导入jar包

      加入mybatis核心包、依赖包(在lib目录下)、数据驱动包、单元测试包。

      

    (3)第三步:创建包结构config,我们将所有的配置文件均放在这个包下。

    (4)第四步:在config包下创建配置文件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

      mybatis默认使用log4j作为作为输出日志信息。

    (5)第五步:在config包下创建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" />
            <!-- 数据库连接池-->
            <!-- mybatis内置的连接池效率不高所以实际公司开发中我们不用 -->
                <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>

       SqlMapConfig.xml是mybatis核心配置文件,上边文件的配置内容为数据源、事务管理。

    (6)第六步:po类。在工程下创建po包,用于放置po类(本质上与bean类没有区别,同样是参数和对应的set/get方法)。

      po类作为mybatis进行sql映射使用,po类通常与数据库表对应,User.java如下:

    package com.huida.po;
    
    import java.util.Date;
    
    public class User {
    
        private int id;
        private String username;// 用户姓名
        private String sex;// 性别
        private Date birthday;// 生日
        private String address;// 地址
        public void setId(int id) {
            this.id = id;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
        public void setAddress(String address) {
            this.address = address;
        }
        public int getId() {
            return id;
        }
        public String getUsername() {
            return username;
        }
        public String getSex() {
            return sex;
        }
        public Date getBirthday() {
            return birthday;
        }
        public String getAddress() {
            return address;
        }
        @Override
        public String toString() {
            return "User [id=" + id + ", username=" + username + "]";
        }    
        
    }

    (7)sql映射文件。

      在config包下创建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:命名空间,做Sql隔离 -->
    <!-- 在mapper标签中要写很多sql语句。在开发项目的过程中有很多人都会写Sql
    语句,在最后整合的时候可能会重复。现在我们使用命名空间开进行隔离,比如zhangsan
    写的select * from user,我们可以写为:zhangsan:select * from user来进行标识。 -->
    <mapper namespace="test">
    
    </mapper>

      namespace:命名空间,用于sql隔离语句。

      在mapper标签中要写很多sql语句。在开发项目的过程中有很多人都会写Sql语句,在最后整合的时候可能会重复。现在我们使用命名空间开进行隔离,比如zhangsan写的select * from user,我们可以写为:zhangsan:select * from user来进行标识。

    (8)第八步:加载映射文件。

      mybatis框架需要加载映射文件,将User.xml添加在SqlMapConfig.xml,如下:

    <mappers>
            <mapper resource="config/User.xml"/>
        </mappers>

    (9)第九步:根据id查询用户信息

      1、映射文件:

      在User.xml的mapper标签中添加:

    <!-- id:sql语句的唯一标识   test:findUserById就可以唯一标识sql语句
             paremeterType:指定传入的参数类型
             resultSetType:返回值结果类型
             #{}占位符:起到占位的左永刚,如果传入的基本类型{String,long,double,int boolean等},那么
             #{}中的变量名称可以随意写。
        -->
        <select id="findUserById" parameterType="java.lang.Integer" resultType="com.huida.po.User">
            <!-- select语句返回的是user对象,所以resultType中写User类的全路径 -->
            select * from user where id=#{id}
        </select>
      id:sql语句的唯一标识   test:findUserById就可以唯一标识sql语句
        paremeterType:指定传入的参数类型
        resultSetType:返回值结果类型
        #{}占位符:起到占位的左永刚,如果传入的基本类型{String,long,double,int boolean等},那么#{}中的变量名称可以随意写。

      2、测试程序:

    package com.huida.test;
    
    import java.io.InputStream;
    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 org.junit.Test;
    
    import com.huida.po.User;
    
    public class UserTest {
        
        @Test
        public void testFindUserById() throws Exception{
            //通过流将核心配置文件读取进来
            InputStream inputStream=Resources.getResourceAsStream("config/SqlMapConfig.xml");
            //通过核心配置文件输入流来创建工厂
            SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
            //通过工厂创建session
            SqlSession openSession=factory.openSession();
            //查询语句,查询id为1的记录,返回值为User对象
            User user=openSession.selectOne("test.findUserById", 1);
            System.out.println(user);
            //关闭资源
            openSession.close();
            //factory没有close(),因为session关闭之后,factory也就关闭了。
        }
    
    }

    (10)执行测试程序,单元测试UserTest方法,可以看到在控制台输出id以及username。说明查询成功。

  • 相关阅读:
    fla使用as文件
    软件测试职业发展之路的反思(转)
    java 关键字
    卖空大师”:中国经济构造畸形 坚决卖空中国
    Cumulative Update package 3 for SQL Server 2008 R2
    tt
    javadoc
    as3程序主类,执行顺序
    AS3 (25) 处理声音
    10个励志小故事
  • 原文地址:https://www.cnblogs.com/wyhluckdog/p/10149480.html
Copyright © 2011-2022 走看看