zoukankan      html  css  js  c++  java
  • 秒杀系统(二)——基础知识回顾MyBatis之mapper代理方式写mybatis的应用程序

    目录

    1、环境搭建

    2、添加实体

    3、添加映射文件Person.xml

    4、添加接口

    5、添加SqlMappingConfig.xml文件

    6、编写测试类进行测试

    源代码:


     

    1、环境搭建

     

    2、添加实体

    public class Person {
    
         private int id;
    
         private String name; // 姓名
    
         private String sex; // 性别
    
         private Date birthday; // 生日
    
         private String address; // 地址
    
         public int getId() {
    
             return id;
    
         }
    
         public void setId(int id) {
    
             this.id = id;
    
         }
    
         public String getName() {
    
             return name;
    
         }
    
         public void setName(String name) {
    
             this.name = name;
    
         }
    
         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;
    
         }
    
         @Override
    
         public String toString() {
    
             return "Person [id=" + id + ", name=" + name + ", sex=" + sex + ", birthday=" + birthday + ", address="
    
                       + address + "]";
    
         }
    
       
    
    }
    
    

     

    3、添加映射文件Person.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">
    
    
    
    <mapper namespace="com.albertyy.mapper.PersonMapper">
    
         <sql id="consutomsql" >
    
             <if test="customPerson != null">
    
                  <if test="customPerson.name!=null and customPerson.name!=''">
    
                           and name = "${customPerson.name}"
    
                       </if>
    
                       <if test="customPerson.birthday!=null and customPerson.birthday!='' ">
    
                           and birthday = "${customPerson.birthday}"
    
                  </if>
    
             </if>
    
         </sql>
    
         <select id="querypersonbyvo" parameterType="personVo" resultType="person">
    
         select * from Person
    
             <where>
    
                  <include refid="consutomsql"></include>
    
             </where>
    
         </select>
    
         <select id="querypersonbyid" parameterType="int" resultType="person">
    
             select id,name,sex,birthday,address from Person where id = #{value}
    
         </select>
    
        
    
         <select id="querypersonbyname" parameterType="java.lang.String" resultType="person">
    
             select id,name,sex,birthday,address from Person where name like "%${value}%"
    
         </select>
    
        
    
         <insert id="inserperson" parameterType="person">
    
             <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
    
                  SELECT LAST_INSERT_ID()
    
             </selectKey>
    
             insert into Person(name,sex,address,birthday) value(#{name},#{sex},#{address},#{birthday})
    
         </insert>
    
        
    
         <delete id="deletepersonbyid" parameterType="int">
    
             delete from Person where id = #{id}
    
         </delete>
    
        
    
         <delete id="updatepersonbyid" parameterType="person">
    
             update Person set name=#{name},sex=#{sex},birthday=#{birthday},address=#{address} where id = #{id}
    
         </delete>
    
        
    
    </mapper>

    4、添加接口

    public interface PersonMapper {
    
         public Person querypersonbyid(int id);
    
         public List<Person> querypersonbyname(String name);
    
         public void inserperson(Person person);
    
         public void deletepersonbyid(int id);
    
         public void updatepersonbyid(Person person);
    
         public List<Person> querypersonbyvo(PersonVo personVo);
    
    }
    
    

    5、添加SqlMappingConfig.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="jdbc.properties">
    
             <!--properties中还可以配置一些属性名和属性值 -->
    
             <!-- <property name="jdbc.driver" value=""/> -->
    
         </properties>
    
    
    
         <typeAliases>
    
             <!-- 别名定义 -->
    
             <typeAlias type="com.albertyy.entity.Person" alias="Person" />
    
             <typeAlias type="com.albertyy.vo.PersonVo" alias="PersonVo" />
    
         </typeAliases>
    
    
    
         <environments default="development">
    
             <environment id="development">
    
                  <!-- 使用jdbc事务管理,事务控制由mybatis -->
    
                  <transactionManager type="JDBC" />
    
                  <!-- 数据库连接池,由mybatis管理 -->
    
                  <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>
    
    
    
    
    
             <!--通过resource方法一次加载一个映射文件 -->
    
             <!--注意这里的路径和xml文件 -->
    
             <mapper resource="Person.xml" />
    
    
    
         </mappers>
    
    
    
    </configuration>
    
    
    
    

    6、编写测试类进行测试

    public class TestMybatis {
    
         // 获得工厂
    
         public SqlSessionFactory getFactory() {
    
             String filepath = "SqlMappingConfig.xml";
    
             SqlSessionFactory sqlSessionFactory = null;
    
             try {
    
                  InputStream in = Resources.getResourceAsStream(filepath);
    
                  sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
    
             } catch (IOException e) {
    
                  e.printStackTrace();
    
             }
    
             return sqlSessionFactory;
    
         }
    
    
    
         // 插入
    
         @Test
    
         public void testinsert() {
    
             // 创建Person实体
    
             Person person = new Person();
    
             person.setName("藏小组");
    
             person.setSex("男");
    
             String date = "2019-01-12";
    
             // 创建sdf对象,指定日期格式类型
    
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    
             // sdf将字符串转化成java.util.Date
    
             java.util.Date parse = null;
    
             try {
    
                  parse = sdf.parse(date);
    
             } catch (ParseException e) {
    
                  e.printStackTrace();
    
             }
    
             // java.util.Date转换成long
    
             long time = parse.getTime();
    
             // 将long转换为java.sql.Date
    
             Date date2 = new Date(time);
    
    
    
             person.setBirthday(date2);
    
             person.setAddress("河南郑州");
    
    
    
             // 得到工厂
    
             SqlSessionFactory sqlSessionFactory = this.getFactory();
    
             SqlSession sqlSession = sqlSessionFactory.openSession();
    
             // 插入数据
    
             PersonMapper personMapper=sqlSession.getMapper(PersonMapper.class);
    
             personMapper.inserperson(person);
    
             System.out.println(person.getId());
    
             sqlSession.commit();
    
             sqlSession.close();
    
         }
    
    
    
         // 通过Id查询
    
         @Test
    
         public void getByIdPerson() {
    
             // 得到工厂
    
             SqlSessionFactory sqlSessionFactory = this.getFactory();
    
             SqlSession sqlSession = sqlSessionFactory.openSession();
    
    
    
             Person person = sqlSession.getMapper(PersonMapper.class).querypersonbyid(3);
    
             System.out.println(person);
    
             sqlSession.commit();
    
             sqlSession.close();
    
         }
    
    
    
         // 通过名字模糊查询
    
         @Test
    
         public void getByNameList() {
    
             // 得到工厂
    
             SqlSessionFactory sqlSessionFactory = this.getFactory();
    
             SqlSession sqlSession = sqlSessionFactory.openSession();
    
    
    
             List<Person> persons = sqlSession.getMapper(PersonMapper.class).querypersonbyname("小");
    
             for (Person person2 : persons) {
    
    
    
                  System.out.println(person2);
    
             }
    
             sqlSession.commit();
    
             sqlSession.close();
    
         }
    
    
    
         // 通过Id进行删除
    
         @Test
    
         public void deleteById() {
    
             // 得到工厂
    
             SqlSessionFactory sqlSessionFactory = this.getFactory();
    
             SqlSession sqlSession = sqlSessionFactory.openSession();
    
    
    
             sqlSession.getMapper(PersonMapper.class).deletepersonbyid(6);
    
    
    
             sqlSession.commit();
    
             sqlSession.close();
    
         }
    
    
    
         // 更新
    
         @Test
    
         public void testupdatePerson() throws IOException {
    
             SqlSessionFactory sqlSessionFactory = this.getFactory();
    
             SqlSession sqlsession = sqlSessionFactory.openSession();
    
             Person person = new Person();
    
             person.setId(2);
    
             person.setName("AlbertYang666");
    
             person.setAddress("河南郑州");
    
             person.setSex("男");
    
    
    
             String date = "2019-01-30";
    
             // 创建sdf对象,指定日期格式类型
    
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    
             // sdf将字符串转化成java.util.Date
    
             java.util.Date parse = null;
    
             try {
    
                  parse = sdf.parse(date);
    
             } catch (ParseException e) {
    
                  e.printStackTrace();
    
             }
    
             // java.util.Date转换成long
    
             long time = parse.getTime();
    
             // 将long转换为java.sql.Date
    
             Date date2 = new Date(time);
    
             person.setBirthday(date2);
    
             sqlsession.getMapper(PersonMapper.class).updatepersonbyid(person);
    
             sqlsession.commit();
    
             sqlsession.close();
    
         }
    
    }

     

    源代码:

    链接: https://pan.baidu.com/s/1n4Swp3uvkMGTUcx-i-6sNQ 提取码: axux

  • 相关阅读:
    linux权限补充:rwt rwT rws rwS 特殊权限
    关于Linux操作系统下文件特殊权限的解释
    Java学习笔记——Java程序运行超时后退出或进行其他操作的实现
    Java实现 蓝桥杯 算法提高 判断名次
    Java实现 蓝桥杯 算法提高 判断名次
    Java实现 蓝桥杯 算法提高 日期计算
    Java实现 蓝桥杯 算法提高 日期计算
    Java实现 蓝桥杯 算法提高 概率计算
    Java实现 蓝桥杯 算法提高 概率计算
    Java实现 蓝桥杯 算法提高 复数四则运算
  • 原文地址:https://www.cnblogs.com/yangxianyang/p/13675627.html
Copyright © 2011-2022 走看看