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();
} } }

mybatis笔记 - 初始配置及dao的封装的更多相关文章

  1. MyBatis笔记之配置输出日志并打印输出SQL语句

    1. 引入Log4J的Maven依赖: <dependency> <groupId>log4j</groupId> <artifactId>log4j& ...

  2. 【MyBatis笔记】mapper文件的配置以及说明

    <!doctype html>[MyBatis笔记]mapper文件的配置以及说明 figure:last-child { margin-bottom: 0.5rem; } #write ...

  3. Git 笔记二-Git安装与初始配置

    git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...

  4. MyBatis笔记二:配置

    MyBatis笔记二:配置 1.全局配置 1.properites 这个配置主要是引入我们的 properites 配置文件的: <properties resource="db.pr ...

  5. Mybatis的xml配置(mybatis-config.xml)精简笔记

    老规矩,看着官方文档学 首先,我们需要知道的是,在MyBatis 的xml配置文件中,这些影响 MyBatis 行为的属性之间的设置是有先后顺序的.配置的先后顺序依照properties, setti ...

  6. 学习笔记_J2EE_SSM_01_spring+springMVC+Mybatis整合_XML配置示例

    spring+springMVC+Mybatis整合_XML配置示例 1.概述 spring+springMVC+Mybatis整合  XML配置方式 1.1 测试环境说明 名称 版本 备注 操作系统 ...

  7. MyBatis笔记一:GettingStart

    MyBatis笔记一:GettingStart 1.MyBatis优点 我们的工具和各种框架的作用就是为了我们操作数据库简洁,对于一些数据库的工具能帮我们少写一些处理异常等等的代码,但是他们并不是自动 ...

  8. mybatis实战教程(mybatis in action)之十:mybatis SqlSessionSupport 的使用,构件DAO 层的应用

    前面的系列mybatis 文章,已经基本讲到了mybatis的操作,但都是基于mapper隐射操作的,在mybatis 3中这个mapper 接口貌似充当了以前在ibatis 2中的 DAO 层的作用 ...

  9. MyBatis学习(一)、MyBatis简介与配置MyBatis+Spring+MySql

    一.MyBatis简介与配置MyBatis+Spring+MySql 1.1MyBatis简介 MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的J ...

随机推荐

  1. KbmMemTable的简单应用(增删改查示例)

    //kbmMemTable unit Unit1;   interface   uses   Windows, Messages, SysUtils, Variants, Classes, Graph ...

  2. AMD模块定义规范

    AMD 即Asynchronous Module Definition,中文名是“异步模块定义”的意思.它是一个在浏览器端模块化开发的规范,服务器端的规范是CommonJS.   模块将被异步加载,模 ...

  3. 重写ScrollView实现两个ScrollView的同步滚动显示

    1.背景介绍 最近项目用到两个ScrollView的同步显示,即拖动左边的ScrollView滚动的同时,实现右边的ScrollView同步滚动.此种情形常用在复杂界面布局中,比如左边的ScrollV ...

  4. 机器学习 Support Vector Machines 2

    优化的边界分类器 上一讲里我们介绍了函数边界和几何边界的概念,给定一组训练样本,如果能够找到一条决策边界,能够使得几何边界尽可能地大,这将使分类器可以很可靠地预测训练样本,特别地,这可以让分类器用一个 ...

  5. ACM学习历程—广东工业大学2016校赛决赛-网络赛E 积木积水(最值问题 || 动态规划)

    题目链接:http://gdutcode.sinaapp.com/problem.php?cid=1031&pid=4 这个题目自然会考虑到去讨论最长或者最短的板子. 笔上大概模拟一下的话,就 ...

  6. gulp安装简介

    1 全局安装gulp:npm install -g gulp 2 在项目根目录中,安装项目的开发依赖:npm install --save-dev gulp 2.1 根据gulpfile.js中的依赖 ...

  7. 洛谷【P1358】扑克牌

    我对状态空间的理解:https://www.cnblogs.com/AKMer/p/9622590.html 题目传送门:https://www.luogu.org/problemnew/show/P ...

  8. mac下无法远程桌面连接win10的解决办法

    原文链接:http://www.hangge.com/blog/cache/detail_899.html 原来在Mac OSX下远程win7系统很正常,后来把windows系统升级成了win10,再 ...

  9. Linux IO实时监控iostat命令详解(转)

    简介 iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息.用户可以通过指定统计的次数和时间 ...

  10. 利用src.rpm包修改源码后重新制作rpm包

    1. 下载 .src.rpm包.例:https://repos.fedorapeople.org/repos/openstack/EOL/openstack-grizzly/epel-6/openst ...