zoukankan      html  css  js  c++  java
  • Mybatis实例及配置(一)

    创建实体类:



    package com.test.mybatis.bean; public class Employee { private Integer id; private String lastName; private String email; private String gender; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @Override public String toString() { return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email + ", gender=" + gender + "]"; } }

    配置mybatis-config.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>
            <!-- 
                1、mybatis可以使用properties来引入外部配置文件的内容
                 resource:引入类路径下的资源
                 url:引入网络路径或者磁盘路径下的资源
             -->
             <properties resource="jdbcconf.properties">
                 <property name="driver" value="${driver}"/>
                 <property name="url" value="${url}"/>
                 <property name="username" value="${username}"/>
                 <property name="password" value="${password}"/>
             </properties>
             <!-- 
                 2、settings包含很多的设置项
                 setting:用来设置每一个设置项
                 name:设置项名
                 value:设置项取值
              -->
              <settings>
              <!--
                   驼峰命名规则:当数据库名与实体类名发生不一致时,驼峰命名则会发挥作用
                  如:
                  数据库字段:id    stuname  
                  实体类属性:id    stuName
               -->
                  <setting name="mapUnderscoreToCamelCase" value="true"/>
              </settings>
              <!-- 
                  3、typeAliases:别名处理器,可以为Java类型起别名
                      别名不区分大小写
               -->
              <typeAliases>
                  <!-- 
                      type:指定要起别名的类型全类名;默认别名就是类名小写:
                      alias:指定新的别名
                   -->
              <!--     <typeAlias type="com.test.mybatis.Employee" alias="emp"/> -->
                  <!-- 
                      package:为某个包下的所有类批量起别名
                      也可在具体的实体类中使用@Alias注解为某个类型指定新的别名
                   -->
                  <package name="com.test.mybatis.bean"/>
              </typeAliases>
            <!-- 配置环境 -->
            <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/mybatis"/>
                        <property name="username" value="root"/>
                        <property name="password" value="root"/>
                    </dataSource>
                </environment>
            </environments>
            <!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到 mybatis-config.xml中-->
            <mappers>
                <mapper resource="EmployeeMapper.xml"/>
            </mappers>
            
        </configuration>

    创建接口:

    package com.test.mybatis.dao;
    
    import com.test.mybatis.bean.Employee;
    
    public interface EmployeeMapper {
        
        public Employee getEmpById(Integer id);
    }

    创建实现接口中方法的配置文件,通过namespace就行绑定

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mtbatis.org/dtd/mybatis-3-mapper.dtd">
        <mapper namespace="com.test.mybatis.dao.EmployeeMapper">
        <!-- 
        namespace:名称空间 指定为接口的全类名
        id:唯一标识
        resultType:返回值类型
        #{id}:从传递过来的参数中去吃id值
         -->
             <select id="getEmpById" resultType="employee">
                select * from tbl_employee where id=#{id}         
             </select>
        </mapper>

    创建测试类:

    package com.test.mybatis.test;
    
    import java.io.IOException;
    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.test.mybatis.bean.Employee;
    import com.test.mybatis.dao.EmployeeMapper;
    
    public class MyBatisTest {
        //读取配置文件,得到SQLSessionFactory
        public SqlSessionFactory getSqlSessionFactory() throws IOException{
            String resource="mybatis-config.xml";
            InputStream is=Resources.getResourceAsStream(resource);
            return new SqlSessionFactoryBuilder().build(is);
        }
        @Test
        public void test() throws IOException{
            //获取sqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
            //获取sqlSession
            //代表和数据库的一次对话,用完必须关闭,相当于connection,都是非线程安全。每次使用都应该获取新的对象
            SqlSession openSession = sqlSessionFactory.openSession();
            try{
            //获取接口的实现类对象
            //会为接口自动的创建一个代理对象,代理对象去执行增删查改方法
            //mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象
            //(将接口和xml进行绑定)
            EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
            Employee emp = mapper.getEmpById(1);
            System.out.println(emp);
            }finally{
                openSession.close();
            }
        }
    
    }
  • 相关阅读:
    ZW网络团队及资源简介
    ZW云推客即将登场
    “4K云字库”基本框架图
    Sketch 55 Beta版本探秘,看看都有什么新功能
    产品经理有哪些类型?
    电影票APP原型设计分享– Movie Booking
    旅游类App的原型制作分享-Klook
    UI行业发展预测 & 系列规划的调整
    原来这就是 UI 设计师的门槛
    摹客PS插件全新改版!—— 智能检测不对应的设计稿
  • 原文地址:https://www.cnblogs.com/staticking/p/6993767.html
Copyright © 2011-2022 走看看