zoukankan      html  css  js  c++  java
  • mybatis笔记

    1、用户实体类

    package com.javasm.entity;
    /**
     * 
     *TODO 用户表实体类
     * @author CaoLei 2018年6月26日上午10:50:12
     * ManagerUser
     */
    public class User {
        // id
        private String id;
        // 用户名
        private String userName;
        // 密码
        private String pssword;
        // 电话
        private String phone;
        // 地址
        private String address;
        // 生日
        private String birth;
        // 性别
        private String sex;
        
        
        
        public User() {
            super();
        }
        public User(String id, String userName, String pssword, String phone,
                String address, String birth, String sex) {
            super();
            this.id = id;
            this.userName = userName;
            this.pssword = pssword;
            this.phone = phone;
            this.address = address;
            this.birth = birth;
            this.sex = sex;
        }
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getPssword() {
            return pssword;
        }
        public void setPssword(String pssword) {
            this.pssword = pssword;
        }
        public String getPhone() {
            return phone;
        }
        public void setPhone(String phone) {
            this.phone = phone;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }
        public String getBirth() {
            return birth;
        }
        public void setBirth(String birth) {
            this.birth = birth;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
    }
    
    

    2、Dao层

    package com.javasm.dao;
    
    import java.util.List;
    
    import com.javasm.entity.User;
    
    /**
     * 
     *TODO 
     * @author CaoLei 2018年6月26日上午10:53:37
     * UserDao
     */
    public interface UserDao {
        List<User> listUsers();
        
        User getUser(int id);
    
         int insertUser(User user);
        
        int deleteUser(String id);
        
    }
    
    

    3、核心配置

    <?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>
    	<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/test?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false" />
    				<property name="username" value="root" />
    				<property name="password" value="root" />
    			</dataSource>
    		</environment>
    	</environments>
    	<mappers>
    		<mapper resource="com/javasm/mapper/UserMapper.xml" />
    	</mappers>
    </configuration>
    

    4、 mapper.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.javasm.dao.UserDao">
    	<select id="listUsers"
    		resultType="com.javasm.entity.User">
    		SELECT * FROM user
    	</select>
    	
    	<select id="getUser" parameterType="String"
    		resultType="com.javasm.entity.User">
    		select * from user where id=#{id}
    	</select>
    
    
    	<insert id="insertUser">
    		insert into user
    		(id,username,sex,phone,password,address,birth)
    		values
    		(#{id},#{userName},#{sex},#{phone},#{password},#{address},#{birth})
    	</insert>
    	
    	<delete id="deleteUser" parameterType="String">
    		DELETE FROM user WHERE id=#{id}
    		
    	</delete>
    </mapper>
    

    5、测试类

    package test;
    
    import java.io.IOException;
    import java.io.Reader;
    import java.util.List;
    import java.util.Random;
    import java.util.UUID;
    
    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.javasm.dao.UserDao;
    import com.javasm.entity.User;
    import com.javasm.utils.RandomString;
    import com.javasm.utils.UUIDUtil;
    
    public class MainTest {
        // mybatis的配置文件
        private static final String resource = "mybatis-config.xml";
        private static UserDao mapper;
        private static SqlSession session;
        static {
    
            // 使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
            try {
                Reader reader = Resources.getResourceAsReader(resource);
                SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder()
                        .build(reader);
                // 创建能执行映射文件中sql的sqlSession
                session = sessionFactory.openSession();
                // 获取dao实现的映射
                mapper = session.getMapper(UserDao.class);
                // 执行查询返回一个唯一user对象的sql
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    
        public static void main(String[] args) throws IOException {
    
           // insertMoreData(100);
            User user = mapper.getUser("15AA3FD8A6764F7395081D66001CD37A");
            System.out.println(user.getUserName());
            List<User> userList = mapper.listUsers();
            for (User user1 : userList) {
                System.out.println(user1.getId() + "," +user1.getUserName() + "," +user1.getPhone());
            }
            int count = mapper.deleteUser("15AA3FD8A6764F7395081D66001CD37A");
            session.commit();
            System.out.println("删除了" + count + "条数据!");
            User user2 = mapper.getUser("15AA3FD8A6764F7395081D66001CD37A");
            System.out.println("user2.getUserName()" + user2.getUserName());
    
        }
    
        private static void insertMoreData(int count) {
            String[] location = { "陕西西安", "河南郑州", "甘肃兰州", "江苏南京", "湖北武汉", "江西南昌",
                    "湖南长沙", "四川成都", "上海", "北京", "山东烟台", "山西太原" };
            String[] birth = { "1958-09-12", "1988-05-22", "1998-01-12", "2008-09-18", "2008-01-01", "1918-03-22",
                    "1978-09-29", "1968-10-12", "2018-10-31", "1989-11-12", "2003-11-23", "2001-01-23" };
            String[] sex = {"男","女","未知"};
            for (int i = 0; i < count; i++) {
                int randomlocation = new Random().nextInt(location.length);
                int randombirth = new Random().nextInt(birth.length);
                int randomsex = new Random().nextInt(sex.length);
                int phone = 10912 + i;
                User user2 = new User(UUIDUtil.UUIDCreater(),
                        RandomString.chineseString(), UUID.randomUUID().toString(), "152596" + phone,
                        location[randomlocation], birth[randombirth], sex[randomsex]) ;
                mapper.insertUser(user2);
                session.commit();
            }
    
        }
    
    }
    
    
  • 相关阅读:
    Servlet学习总结,为理解SpringMVC底层做准备
    maven笔记
    初识Hadoop
    java8笔记: sorted()之正序倒序
    git push命令
    git clone新项目后如何拉取其他分支代码到本地
    Spring事务
    线程之间的转化状态
    Centos安装RabbitMq
    .net 中的AES加密解密
  • 原文地址:https://www.cnblogs.com/caoleiCoding/p/9228463.html
Copyright © 2011-2022 走看看