zoukankan      html  css  js  c++  java
  • Mybatis框架简单使用

    Mybatis框架简单使用

    环境搭建

    新建一个JavaWeb项目,在webWEB-INF创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及Mysql驱动包,junit4测试包等。

    加入配置文件

    1. 在src路径下面,新建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
    
    1. 在src路径下,新建jdbc.properties文件。
    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8
    jdbc.username=root
    jdbc.password=root
    
    
    1. 在src路径下,新建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>
    
        <!--加载src下面的jdbc.properties-->
        <properties resource="jdbc.properties"></properties>
    
        <!--配置环境-->
        <environments default="flyme">
            <environment id="flyme">
                <!--type="JDBC" 使用JDBC的进行提交和回滚管理事务-->
                <transactionManager type="JDBC"></transactionManager>
                <!--配置数据库连接池-->
                <dataSource type="POOLED">
                    <property name="driver" value="${jdbc.driver}"/>
                    <property name="url" value="${jdbc.url}"/>
                    <property name="username" value="${jdbc.username}"/>
                    <property name="password" value="${jdbc.password}"/>
                </dataSource>
            </environment>
        </environments>
    
        <!--添加映射-->
    
    
    </configuration>
    

    创建数据库以及表

    创建命名为mybatis数据库,并且新建user表

    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(32) NOT NULL COMMENT '用户名称',
      `birthday` date DEFAULT NULL COMMENT '生日',
      `sex` char(1) DEFAULT NULL COMMENT '性别',
      `address` varchar(256) DEFAULT NULL COMMENT '地址',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;
    

    创建pojo包

    在src路径下,创建com.flyme.mybatis.pojo包
    pojo包作为mybatis进行sql映射使用,pojo包下的实体类一般与数据库中的表一一对应

    1.在pojo包下,创建User.java文件,其中成员变量和user表中的属性一一对应,并且实现get/set方法

    package com.flyme.mybatis.pojo;
    
    import java.util.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;
        }
    
    
    }
    
    

    sql映射文件

    在com.flyme.mybatis.pojo包下,创建User.xml文件,命名必须与实体User一样

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="test">
    
    </mapper>
    

    加载映射文件

    mybatis框架需要加载Mapper.xml映射文件。
    

    打开mybatis.xml,将User.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>
    
        <!--加载src下面的jdbc.properties-->
        <properties resource="jdbc.properties"></properties>
    
        <!--配置环境-->
        <environments default="flyme">
            <environment id="flyme">
                <!--type="JDBC" 使用JDBC的进行提交和回滚管理事务-->
                <transactionManager type="JDBC"></transactionManager>
                <!--配置数据库连接池-->
                <dataSource type="POOLED">
                    <property name="driver" value="${jdbc.driver}"/>
                    <property name="url" value="${jdbc.url}"/>
                    <property name="username" value="${jdbc.username}"/>
                    <property name="password" value="${jdbc.password}"/>
                </dataSource>
            </environment>
        </environments>
    
        <!--添加映射-->
        <mappers>
            <!--映射文件方式1,添加资源路径,默认为src路径-->
            <mapper resource="com/flyme/mybatis/pojo/User.xml"/>
        </mappers>
    </configuration>
    
    

    简单数据库操作

    实现用户id查询

    在User.xml文件中,添加select语句,来进行sql语言的拼接,来以进行对数据库的查询。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="test">
        <select id="queryUserById" parameterType="int" resultType="com.flyme.mybatis.pojo.User">
            select * from user where id = #{id}
        </select>
    </mapper>
    

    在src路径下,创建com.flyme.mybatis.test包,并且创建MybatisTest.java测试类。

    创建SqlSessionFactoryBuilder对象
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    
    加载mybatis.cfg.xml配置文件
    InputStream inputStream = Resources.getResourceAsStream("mybatis.cfg.xml");
    
    创建sqlSessionFactory对象
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
    
    创建sqlSession对象
    SqlSession sqlSession = sqlSessionFactory.openSession();
    
    执行SqlSession对象执行查询
    
    #queryUserById:在User.xml文件中,所设置id<select id = "queryUserById">,必须一致
    
    Object user = sqlSession.selectOne("queryUserById", 1);
    
    关闭sqlSession
    sqlSession.close();
    
  • 相关阅读:
    python中不可变数据类型和可变数据类型
    你分得清Python中:“索引和切片”吗?
    Python Django中一些少用却很实用的orm查询方法
    jQuery on()方法
    jquery.flexslider-min.js实现banner轮播图效果
    jQuery 树型菜单插件(Treeview)
    jQuery Growl 插件(消息提醒)
    jQuery Autocomplete 用户快速找到并从预设值列表中选择
    jQuery Accordion 插件用于创建折叠菜单
    jquery.validate.js 验证框架详解
  • 原文地址:https://www.cnblogs.com/fly-me/p/9144252.html
Copyright © 2011-2022 走看看