zoukankan      html  css  js  c++  java
  • 初入Mybatis

    项目结构

    数据库设计

     config放到类路径下

    类路径:Java 类路径告诉 java 解释器和 javac 编译器去哪里找它们要执行或导入的类。

    config下的文件

    log4j.xml可以从网上直接复制

    dbconfig.properties

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
    username=root
    password=123

    recourse.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>
    
    <!-- 引入属性文件 -->
    <properties resource="dbconfig.properties"></properties>
    
      <environments default="development">
        <environment id="development"><!-- 开发者模式 -->
          <transactionManager type="JDBC"/><!-- 事务管理器 -->
          <dataSource type="POOLED"><!-- 数据源  池连接-->
            <property name="driver" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${username}"/>
            <property name="password" value="${password}"/>
          </dataSource>
        </environment>
      </environments>
      <!-- 对应实体类的配置文件 -->
      <mappers>
        <mapper resource="com/mybatis/entity/Employee.xml"/>
      </mappers>
    </configuration>

    Employee.java

    package com.mybatis.entity;
    
    //员工实体类,负责和数据库中的表做映射
    
    /*有一个类,所有属性都是私有的并且提供公有的setter getter方法,就是java bean
     * 
     * */
    public class Employee {
        
            private String id;
            private String name;
            private char gender;
            private String address;
            
            public String getId() {
                return id;
            }
            public void setId(String id) {
                this.id = id;
            }
            public String getName() {
                return name;
            }
            public void setName(String name) {
                this.name = name;
            }
            public char getGender() {
                return gender;
            }
            public void setGender(char gender) {
                this.gender = gender;
            }
            public String getAddress() {
                return address;
            }
            public void setAddress(String address) {
                this.address = address;
            }
            
            
    }

    Employee.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">
      <!-- 每个实体类都对应着Mybatis的一个命名空间。namespace属性值相当于id,不允许重复 -->
      <!-- 命名空间,一般情况下,在当前空间中声明的是,实体类对应全路径 -->
    <mapper namespace="com.mybatis.entity.Employee">
    <!-- select标签执行查询   结果集类型(resultType)是实体类对象
        方法传入参数类型(parameterType)
        #{}相当于占位符,代表传过来的参数
    -->
      <select id="selectOne" parameterType="String" resultType="com.mybatis.entity.Employee">
        select * from emp where id = #{id}
      </select>
    </mapper>

    Test.java

    package com.mybatis.test;
    
    import java.io.IOException;
    import java.io.InputStream;
    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 com.mybatis.entity.Employee;
    
    public class Test {
        
        public void wan(){
            
            try {
                //获得当前mybatis总的配置文件路径
                String resource = "recourse.xml";
                //获得当前配置文件的输入流
                Reader reader = Resources.getResourceAsReader(resource);
                //通过流对象创建SqlSessionFactory对象,数据库会话工厂
                SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
                //通过数据库会话工厂开启跟数据库的一次会话
                SqlSession sqlSession = sqlSessionFactory.openSession();
                
                //通过sqlSession对象,执行sql语句,用完后关闭对象
                //所有的数据库操作都被封装到sqlSession对象
                
                /*指定具体执行哪条sql语句:通过命名空间加id的方式
                 * 
                 * 传入参数
                 * */
                Employee xm= sqlSession.selectOne("com.mybatis.entity.Employee.selectOne","1");
                    System.out.println(xm.getAddress());
            } catch (IOException e) {
                
                e.printStackTrace();
            }
            
        }
        public static void main(String[] args) {
            Test test = new Test();
            test.wan();
            
        }
    }

     运行结果

  • 相关阅读:
    jexboss-20170328 帮助信息
    clusterd-20151119 帮助信息
    XSStrike-20191220 帮助信息
    Astra-20190405 帮助信息
    InsightScan-20150320 帮助信息
    BBScan-20200419 帮助信息
    Tplmap-20210117 帮助信息
    HDU-5446 Unknown Treasure
    中国剩余定理学习笔记
    [BZOJ5042]LWD的分科岛
  • 原文地址:https://www.cnblogs.com/liurg/p/8125353.html
Copyright © 2011-2022 走看看