zoukankan      html  css  js  c++  java
  • 【MyBatis】----【MyBatis】--封装---别名---properties

    一、核心配置文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     3 "http://mybatis.org/dtd/mybatis-3-config.dtd">
     4 <configuration>
     5      <!-- 最开始加载引用db.properties文件 -->
     6     <properties resource="db.properties"/>
     7     <!-- 取别名    以下情况别名为类名 -->
     8      <typeAliases>
     9          <package name="com.myBatis.entity"/>
    10      </typeAliases>
    11     <!-- 
    12         development : 开发模式
    13         work : 工作模式
    14      -->
    15     <environments default="development">
    16         <environment id="development">
    17             <transactionManager type="JDBC" />
    18             <!-- 配置数据库连接信息 -->
    19             <dataSource type="POOLED">
    20                 <property name="driver" value="${driver}" />
    21                 <property name="url" value="${url}" />
    22                 <property name="username" value="${username}" />
    23                 <property name="password" value="${password}" />
    24             </dataSource>
    25         </environment>
    26     </environments>
    27     <!-- 引用映射文件 -->
    28     <mappers >
    29         <mapper resource="com/myBatis/mapper/userMapper.xml"/>
    30     </mappers>
    31 </configuration>
    View Code

    二、实体类

     1 package com.myBatis.entity;
     2 
     3 public class EUser {
     4     private Integer id;
     5     private String name;
     6     private Integer age;
     7     public int getId() {
     8         return id;
     9     }
    10     public String getName() {
    11         return name;
    12     }
    13     public void setName(String name) {
    14         this.name = name;
    15     }
    16     public Integer getAge() {
    17         return age;
    18     }
    19     public void setAge(Integer age) {
    20         this.age = age;
    21     }
    22     public void setId(Integer id) {
    23         this.id = id;
    24     }
    25     @Override
    26     public String toString() {
    27         return "EUser [id=" + id + ", name=" + name + ", age=" + age + "]";
    28     }
    29     
    30     
    31     
    32 }
    EUser.java

    三、实体类的映射文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
     3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     4     <!-- 
     5     为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,
     6     这样就能够保证namespace的值是唯一的 
     7     -->
     8     <mapper namespace="com.myBatis.mapper.userMapper.xml">
     9         <!-- 根据id查询得到一个user对象 -->
    10         <select id="getUser" parameterType="int" resultType="EUser">
    11             select * from users where id=#{id}
    12         </select>
    13         <!--  根据id查询删除一个user对象 -->
    14         <delete id="deleteUser" parameterType="EUser">
    15             delete from users where id=#{id}
    16         </delete>
    17           <!-- 创建用户(Create) -->
    18         <insert id="addUser" parameterType="EUser">
    19             insert into users values(null,#{name},#{age})
    20         </insert>
    21          <!-- 修改用户(Update) -->
    22         <update id="updateUser" parameterType="EUser">
    23             update users set name=#{name},age=#{age} where id=#{id}
    24         </update>
    25     </mapper>
    26     
    View Code

    四、封装类

     1 package com.myBatis.util;
     2 
     3 
     4 import java.io.IOException;
     5 import java.io.Reader;
     6 
     7 import org.apache.ibatis.io.Resources;
     8 import org.apache.ibatis.session.SqlSession;
     9 import org.apache.ibatis.session.SqlSessionFactory;
    10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    11 
    12 public class myBtaisUtil {
    13     static Reader reader=null;
    14     static SqlSessionFactory sqlSessionFactory= null;
    15     static SqlSession sqlSession = null;
    16     /**
    17      * 加载核心配置文件
    18      * 获取SqlSessionFactory
    19      * @return SqlSessionFactory
    20      */
    21     public static SqlSessionFactory getsqlSessionFactory() {
    22         try {
    23             reader = Resources.getResourceAsReader("SqlMapConfig.xml");
    24             sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
    25         } catch (IOException e) {
    26             e.printStackTrace();
    27         }
    28         return sqlSessionFactory;
    29     }
    30     /**
    31      * 获取SqlSession
    32      * @return SqlSession
    33      */
    34     public static SqlSession getsqlSession() {
    35         return sqlSession= getsqlSessionFactory().openSession(true);
    36     }
    37 }
    myBtaisUtil.java

    五、properties文件

    1 driver=com.mysql.jdbc.Driver
    2 url=jdbc:mysql:///mybatis
    3 username=root
    4 password=root
    db.properties

    六、测试类

     1 package myBatisTest;
     2 import java.io.IOException;
     3 import java.io.Reader;
     4 import org.apache.ibatis.io.Resources;
     5 import org.apache.ibatis.session.SqlSession;
     6 import org.apache.ibatis.session.SqlSessionFactory;
     7 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
     8 import org.junit.Test;
     9 
    10 import com.myBatis.entity.EUser;
    11 import com.myBatis.util.myBtaisUtil;
    12 
    13 public class TestUser {
    14     //修改
    15     @Test
    16     public void testUpdateUser() {
    17         SqlSession sqlSession=myBtaisUtil.getsqlSession();
    18         //先查找
    19          String select = "com.myBatis.mapper.userMapper.xml.getUser";
    20          EUser  user = sqlSession.selectOne(select, 7);
    21          System.out.println(user);
    22          //再修改
    23         user.setName("改啦7777");
    24         user.setAge(50);
    25         String update = "com.myBatis.mapper.userMapper.xml.updateUser";
    26         int i = sqlSession.update(update, user);
    27          System.out.println(i);
    28          EUser  user1= sqlSession.selectOne(select, 7);
    29          System.out.println(user1);
    30     }
    31     //添加
    32     @Test
    33     public void testAddUser() {
    34         SqlSession sqlSession=myBtaisUtil.getsqlSession();
    35          String add = "com.myBatis.mapper.userMapper.xml.addUser";
    36          EUser user = new EUser();
    37         user.setName("用户孤傲苍狼");
    38         user.setAge(20);
    39         int i = sqlSession.insert(add, user);
    40          System.out.println(i);
    41     }
    42     //删除
    43     @Test
    44     public void testDeleteUser() {
    45         SqlSession sqlSession=myBtaisUtil.getsqlSession();
    46         String delete = "com.myBatis.mapper.userMapper.xml.deleteUser";
    47         int i= sqlSession.delete(delete, 6);
    48         System.out.println(i);
    49     }
    50     //查询
    51     @Test
    52     public void testGetUser() {
    53         SqlSession sqlSession=myBtaisUtil.getsqlSession();
    54         String select = "com.myBatis.mapper.userMapper.xml.getUser";
    55         EUser  user = sqlSession.selectOne(select, 1);
    56         System.out.println(user);
    57     }
    58 }
    TestUser.java

    注:

    类的映射文件中的<mapper namespace="com.myBatis.mapper.userMapper.xml">  映射文件后缀名可不写

    测试类中的 String select = "com.myBatis.mapper.userMapper.xml.getUser";   映射文件后缀名可不写

    参考:MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    学习 MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

  • 相关阅读:
    pip install 下载慢的问题
    virtualenv 和 virtualenvwrapper 实践
    一个采用python获取股票数据的开源库,相当全,及一些量化投资策略库
    qos
    Rxjava, RxAndroid, Retrofit 等库的使用
    一个程序员直播的地方
    Android Studio 中SDK Manager的设置
    ipython, 一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数
    Nagle算法,tcp小包组合(延迟)发送的算法
    RESTful到底是什么玩意??
  • 原文地址:https://www.cnblogs.com/angelye/p/7462594.html
Copyright © 2011-2022 走看看