1、用户实体类

  1. package com.javasm.entity;
  2. /**
  3. *
  4. *TODO 用户表实体类
  5. * @author CaoLei 2018年6月26日上午10:50:12
  6. * ManagerUser
  7. */
  8. public class User {
  9. // id
  10. private String id;
  11. // 用户名
  12. private String userName;
  13. // 密码
  14. private String pssword;
  15. // 电话
  16. private String phone;
  17. // 地址
  18. private String address;
  19. // 生日
  20. private String birth;
  21. // 性别
  22. private String sex;
  23. public User() {
  24. super();
  25. }
  26. public User(String id, String userName, String pssword, String phone,
  27. String address, String birth, String sex) {
  28. super();
  29. this.id = id;
  30. this.userName = userName;
  31. this.pssword = pssword;
  32. this.phone = phone;
  33. this.address = address;
  34. this.birth = birth;
  35. this.sex = sex;
  36. }
  37. public String getId() {
  38. return id;
  39. }
  40. public void setId(String id) {
  41. this.id = id;
  42. }
  43. public String getUserName() {
  44. return userName;
  45. }
  46. public void setUserName(String userName) {
  47. this.userName = userName;
  48. }
  49. public String getPssword() {
  50. return pssword;
  51. }
  52. public void setPssword(String pssword) {
  53. this.pssword = pssword;
  54. }
  55. public String getPhone() {
  56. return phone;
  57. }
  58. public void setPhone(String phone) {
  59. this.phone = phone;
  60. }
  61. public String getAddress() {
  62. return address;
  63. }
  64. public void setAddress(String address) {
  65. this.address = address;
  66. }
  67. public String getBirth() {
  68. return birth;
  69. }
  70. public void setBirth(String birth) {
  71. this.birth = birth;
  72. }
  73. public String getSex() {
  74. return sex;
  75. }
  76. public void setSex(String sex) {
  77. this.sex = sex;
  78. }
  79. }

2、Dao层

  1. package com.javasm.dao;
  2. import java.util.List;
  3. import com.javasm.entity.User;
  4. /**
  5. *
  6. *TODO
  7. * @author CaoLei 2018年6月26日上午10:53:37
  8. * UserDao
  9. */
  10. public interface UserDao {
  11. List<User> listUsers();
  12. User getUser(int id);
  13. int insertUser(User user);
  14. int deleteUser(String id);
  15. }

3、核心配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <environments default="development">
  7. <environment id="development">
  8. <transactionManager type="JDBC" />
  9. <!-- 配置数据库连接信息 -->
  10. <dataSource type="POOLED">
  11. <property name="driver" value="com.mysql.jdbc.Driver" />
  12. <property name="url"
  13. value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false" />
  14. <property name="username" value="root" />
  15. <property name="password" value="root" />
  16. </dataSource>
  17. </environment>
  18. </environments>
  19. <mappers>
  20. <mapper resource="com/javasm/mapper/UserMapper.xml" />
  21. </mappers>
  22. </configuration>

4、 mapper.xml配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.javasm.dao.UserDao">
  4. <select id="listUsers"
  5. resultType="com.javasm.entity.User">
  6. SELECT * FROM user
  7. </select>
  8. <select id="getUser" parameterType="String"
  9. resultType="com.javasm.entity.User">
  10. select * from user where id=#{id}
  11. </select>
  12. <insert id="insertUser">
  13. insert into user
  14. (id,username,sex,phone,password,address,birth)
  15. values
  16. (#{id},#{userName},#{sex},#{phone},#{password},#{address},#{birth})
  17. </insert>
  18. <delete id="deleteUser" parameterType="String">
  19. DELETE FROM user WHERE id=#{id}
  20. </delete>
  21. </mapper>

5、测试类

  1. package test;
  2. import java.io.IOException;
  3. import java.io.Reader;
  4. import java.util.List;
  5. import java.util.Random;
  6. import java.util.UUID;
  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. import com.javasm.dao.UserDao;
  12. import com.javasm.entity.User;
  13. import com.javasm.utils.RandomString;
  14. import com.javasm.utils.UUIDUtil;
  15. public class MainTest {
  16. // mybatis的配置文件
  17. private static final String resource = "mybatis-config.xml";
  18. private static UserDao mapper;
  19. private static SqlSession session;
  20. static {
  21. // 使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
  22. try {
  23. Reader reader = Resources.getResourceAsReader(resource);
  24. SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder()
  25. .build(reader);
  26. // 创建能执行映射文件中sql的sqlSession
  27. session = sessionFactory.openSession();
  28. // 获取dao实现的映射
  29. mapper = session.getMapper(UserDao.class);
  30. // 执行查询返回一个唯一user对象的sql
  31. } catch (IOException e) {
  32. // TODO Auto-generated catch block
  33. e.printStackTrace();
  34. }
  35. }
  36. public static void main(String[] args) throws IOException {
  37. // insertMoreData(100);
  38. User user = mapper.getUser("15AA3FD8A6764F7395081D66001CD37A");
  39. System.out.println(user.getUserName());
  40. List<User> userList = mapper.listUsers();
  41. for (User user1 : userList) {
  42. System.out.println(user1.getId() + "," +user1.getUserName() + "," +user1.getPhone());
  43. }
  44. int count = mapper.deleteUser("15AA3FD8A6764F7395081D66001CD37A");
  45. session.commit();
  46. System.out.println("删除了" + count + "条数据!");
  47. User user2 = mapper.getUser("15AA3FD8A6764F7395081D66001CD37A");
  48. System.out.println("user2.getUserName()" + user2.getUserName());
  49. }
  50. private static void insertMoreData(int count) {
  51. String[] location = { "陕西西安", "河南郑州", "甘肃兰州", "江苏南京", "湖北武汉", "江西南昌",
  52. "湖南长沙", "四川成都", "上海", "北京", "山东烟台", "山西太原" };
  53. String[] birth = { "1958-09-12", "1988-05-22", "1998-01-12", "2008-09-18", "2008-01-01", "1918-03-22",
  54. "1978-09-29", "1968-10-12", "2018-10-31", "1989-11-12", "2003-11-23", "2001-01-23" };
  55. String[] sex = {"男","女","未知"};
  56. for (int i = 0; i < count; i++) {
  57. int randomlocation = new Random().nextInt(location.length);
  58. int randombirth = new Random().nextInt(birth.length);
  59. int randomsex = new Random().nextInt(sex.length);
  60. int phone = 10912 + i;
  61. User user2 = new User(UUIDUtil.UUIDCreater(),
  62. RandomString.chineseString(), UUID.randomUUID().toString(), "152596" + phone,
  63. location[randomlocation], birth[randombirth], sex[randomsex]) ;
  64. mapper.insertUser(user2);
  65. session.commit();
  66. }
  67. }
  68. }

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. Linux课程---8、Linux启动流程

    Linux课程---8.Linux启动流程 一.总结 一句话总结: grub启动引导界面(比如装了多系统,选择系统),找到linux内核 启动init程序,加载各种驱动 1.进入grub界面选择相应的 ...

  2. 日期工具类 DateUtils(继承org.apache.commons.lang.time.DateUtils类)

    /** * */ package com.dsj.gdbd.utils.web; import org.apache.commons.lang3.time.DateFormatUtils; impor ...

  3. QWidget、QMainWindow、QFrame、QWindow、QDialog、QScrollArea区别

    QWidget是所有可视化控件的基类,可以直接渲染出一个窗口来. QMainWindow用来表示一个主窗口,这个主窗口可以设置菜单和工具栏 QFrame用来表示一个框架,用来当作容器,因为可以设置它的 ...

  4. poj-1379 Run Away(模拟退火算法)

    题目链接: Run Away Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 7982   Accepted: 2391 De ...

  5. linux命令学习笔记(35):ln 命令

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在 不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要 ...

  6. CodeForces-734E Anton and Tree 树的直径

    题目大意: 给定一棵有n个节点的树,有黑点白点两种节点. 每一次操作可以选择一个同种颜色的联通块将其染成同一种颜色 现在给定一个初始局面问最少多少步可以让树变为纯色. 题解: 首先我们拿到这棵树时先将 ...

  7. 【转】 Pro Android学习笔记(三五):Menu(6):XML方式 & PopUp菜单

    目录(?)[-] 利用XML创建菜单 XML的有关属性 onClick事件 Pop-up菜单 利用XML创建菜单 在代码中对每个菜单项进行设置,繁琐且修改不灵活,不能适配多国语言的要求,可以利用资源进 ...

  8. web攻击之八:溢出攻击(nginx服务器防sql注入/溢出攻击/spam及禁User-agents)

    一.什么是溢出攻击 首先, 溢出,通俗的讲就是意外数据的重新写入,就像装满了水的水桶,继续装水就会溢出,而溢出攻击就是,攻击者可以控制溢出的代码,如果程序的对象是内核级别的,如dll.sys文件等,就 ...

  9. 办公软件-Excel:Microsoft Office Excel 2003百科

    ylbtech-办公软件-Excel:Microsoft Office Excel 2003百科 Microsoft® Office Excel 2003 是一种电子表格程序,可提供对于 XML 的支 ...

  10. Nmap几个常用的参数

    Nmap扫描端口的6种状态: open:端口是开放的 closed:端口是关闭的 filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态 unfiltered:端口没有被屏蔽,但要进一步确定 ...