用Mybatis实现添加用户

码云链接:https://gitee.com/li_bolin123/day14-code_mybatis

##我这边使用测试驱动开发

  • (1)定义接口中的方法

  • (2)语句

  • (3)配置

  • (4)通过session.getMapper(),实现动态代理

具体代码目录结构

Pom.mxl文件

 <dependencies><!-- junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.32</version></dependency><!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><!--日志包--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.25</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency></dependencies>

测试代码:

package com.lbl.user;import com.lbl.bean.User;
import com.lbl.dao.UserDao;
import com.lbl.utils.MySessionUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.Date;public class UserTest {@Testpublic void test01(){//获得sessionSqlSession sqlSession = MySessionUtils.getSession();//获得mapperUserDao mapper = sqlSession.getMapper(UserDao.class);User user = new User();user.setUsername("李柏霖1");user.setAddress("郴州");user.setBirthday(new Date());user.setSex(1);mapper.addUser(user);//关闭资源sqlSession.close();}
}

MySessionUtils:

package com.lbl.utils;import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.InputStream;//Session工具类
public class MySessionUtils {private static SqlSessionFactory sessionFactory;//static 静态代码,在类加载的时候执行一次,且只执行一次static{//  》1 创建SqlSessionFactoryBuilder对象SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
// 》2 创建SqlSessionFactory对象InputStream inputStream = MySessionUtils.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml");sessionFactory = sqlSessionFactoryBuilder.build(inputStream);//加载核心配置文件 参1 输入流
//        》3 加载SqlMapConfig.xml配置文件}public static SqlSession getSession() {//        》4 创建SqlSession对象SqlSession sqlSession = sessionFactory.openSession();return sqlSession;}
}

SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--dtd是对xml配置标签与属性的约束-->
<configuration><typeAliases><package name="com.lbl.bean"/></typeAliases><!--    environments环境  开发环境,生产环境--><environments default="development"><environment id="development"><!--    使用jdbc的事务管理  --><transactionManager type="JDBC"/><!--    dataSource Mybatis自带数据源连接池--><dataSource type="POOLED"><!--    四大信息 --><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://47.115.79.211:3307/day14?characterEncoding=utf-8"/><property name="username" value="root"/><property name="password" value="admin123"/></dataSource></environment></environments><!-- 配置多个映射文件--><mappers><mapper resource="UserMapper.xml"/></mappers>
</configuration>

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--该配置文件用来写sql-->
<!-- namespace:命名空间,用于隔离sql当我们有多个UserMapper.xml时,为了区分不同的文件,则需要指定namespace,这个值必须唯一
-->
<mapper namespace="com.lbl.dao.UserDao"><!-- 根据id来查询用户 --><!-- id:statement的id 或者叫做sql的id,后期可以用作方法名--><!-- parameterType:声明输入参数的类型 ,这个参数可以省略--><!-- resultType:声明输出结果的类型,应该填写pojo的全路径 --><!-- #{}:输入参数的占位符,相当于jdbc的? ,如果传入的是基本类型,则{}里边的内容可以随便写 --><select id="addUser" parameterType="user">INSERT INTO `user` VALUES(null,#{username},#{birthday},#{sex},#{address})</select></mapper>

log4j.properties

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

User

package com.lbl.bean;import java.util.Date;public class User {private int id;private String username;private Date birthday;private int sex;private String address;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public int getSex() {return sex;}public void setSex(int sex) {this.sex = sex;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", birthday=" + birthday +", sex=" + sex +", address='" + address + '\'' +'}';}
}

UserDao

package com.lbl.dao;import com.lbl.bean.User;public interface UserDao {void addUser(User user);
}

用Mybatis实现添加用户相关推荐

  1. MyBatis实现mysql添加用户测试失败解决方法

    MyBatis添加用户单元测试没有报错,但是数据库表中数据未添加成功: 此时因为未进行事务提交导致Rolling back了,在释放资源前需要进行事务提交: sqlSession.commit();

  2. Mybatis添加用户返回id

    问题      在添加用户时,常把一个表的id设为主键,自增,以至于再插入数据的时候,无法直接获取用户id,如果下面操作还需要用到id,那么还要通过查询来获取,浪费资源 解决方案 selectKey标 ...

  3. Bootstrap4+MySQL前后端综合实训-Day07-PM【用户信息管理页面——功能展示(分页显示数据、添加用户、批量删除用户、编辑用户信息)、servlet项目代码整理汇总】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 页面展示 分页显示数据 添加用户信息 (单个/批量)删除用户 编辑 ...

  4. No6-6.从零搭建spring-cloud-alibaba微服务框架,添加用户鉴权逻辑,动态数据权限(使用AOP实现)等(六,no6-6)

    代码地址与接口看总目录:[学习笔记]记录冷冷-pig项目的学习过程,大概包括Authorization Server.springcloud.Mybatis Plus~~~_清晨敲代码的博客-CSDN ...

  5. Day3-Mybatis基本框架搭建(添加用户)

    Day3-Mybatis基本框架搭建(添加用户) 二. Mybatis-JDBC Mybatis的介绍 Mybatis的入门 使用jdbc操作数据库存在的问题 (回顾jdbc) Mybatis的架构 ...

  6. 实习笔记 —— SSM三个框架的整合 VIII (添加用户)

    系列文章目录 实习笔记 -- Spring基础 实习笔记 -- IOC反转控制(xml配置文件 + 注解) 实习笔记 -- AOP开发I 实习笔记 -- AOP开发II(AOP中Advice的类型) ...

  7. mybatis批量添加

    接口传入集合,在mybatis里面实现批量插入 <insert id="insert" parameterType="list" >insert i ...

  8. Linux添加用户组和添加用户

    1.用户组 添加组:groupadd 组名 [root@Server-n93yom ~]# groupadd dev [root@Server-n93yom ~]# cat /etc/group | ...

  9. MYSQL 创建用户1290错误_rhel6 mysql skip-grant-tables 添加用户报错 ERROR 1290

    不小心把数据库密码忘掉了, 这个时候我们只需要在数据库的配置文件里面添加 skip-grant-tables 然后重新启动服务,再登录数据库就不要我们输入密码了 这个时候我成功登录数据,可是不小心又把 ...

最新文章

  1. java分布式+高可用_[Java复习] 分布式高可用-Hystrix
  2. 30行代码消费腾讯人工智能开放平台提供的自然语言处理API
  3. android耳机广播,Android利用广播实现耳机的线控
  4. sklearn分类器:朴素贝叶斯
  5. 数据流中的中位数java_数据流中的中位数
  6. python连接mysql数据库简单例子
  7. codeforces 645 D Robot Rapping Results Report 【树形dp】
  8. 迅雷极速版修改边下边播的默认播放器为PotPlayer
  9. PPT一次性压缩图片
  10. 解决win10睡眠后变卡的问题
  11. 数据结构与算法—前导
  12. 数学一年级应用题_2019年小学一年级数学应用题汇总
  13. JavaScript高级(三)
  14. 怎么做好电商运营?40份电商运营表格模板,你离优秀的运营只差了一个表格
  15. 文件夹无法访问如何解决?
  16. RFID技术在通道门禁系统的应用
  17. RPi.GPIO 官方使用文档翻译
  18. Surface Go为教育而生,微软将如何改变中国课堂?
  19. 微信小程序微商城(八):缓存实现商品购物车功能
  20. 多叉树的递归和非递归遍历

热门文章

  1. QSocketNotifier: Socket notifiers cannot be enabled or disabled from another
  2. Halcon的常见错误
  3. vue解决打包后文件过大的问题-使用压缩插件打包后压缩文件-compression-webpack-plugin
  4. 摄像头镜头焦距与照射距离关系图
  5. 普渡大学利用深度学习自动检测核反应堆裂缝
  6. 从荣耀MagicV看折叠屏手机的现状及未来发展
  7. dell文件服务器连接,配置DELL MD3200存储服务器连接到多台主机
  8. POI Word 模板 文字 图片 替换
  9. this is related to npm not being able to find a file
  10. 用python怎么读文件_python怎么读文件