文章目录

  • 1 概述
    • 1.1 Maven
    • 1.2 Mybatis(ORM)
  • 2 Mybatis开发指南
  • 3 DATABASE
  • 4 代码
    • 4.1 目录结构
    • 4.2 详细步骤
  • 5 附录

1 概述

源码:
https://github.com/lixiang007666/user_curd_mybatis

给个Star哦~~~~

1.1 Maven

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
举例:
注意:Maven的项目在idea中,src中的xml等文件是不会编译到claases中的,需要自行配置。

1.2 Mybatis(ORM)

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2 Mybatis开发指南


3 DATABASE

4 代码

4.1 目录结构

4.2 详细步骤

日志文件:

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.top.lixiang007=DEBUG
# 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

mybatis总配置文件:

<?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><!--1.配置环境 ,默认的环境id为mysql--><environments default="mysql"><!--1.2.配置id为mysql的数据库环境 --><environment id="mysql"><!-- 使用JDBC的事务管理 --><transactionManager type="JDBC" /><!--数据库连接池 --><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url"value="jdbc:mysql://localhost:3306/mybatis" /><property name="username" value="root" /><property name="password" value="lixiang666" /></dataSource></environment></environments><!--2.配置Mapper的位置 --><mappers><mapper resource="top/lixiang007/mapper/CustomerMapper.xml" /></mappers>
</configuration>

mapper文件:

<?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">
<!-- namespace表示命名空间 -->
<mapper namespace="top.lixiang007.mapper.CustomerMapper"><!--根据客户编号获取客户信息 --><select id="findCustomerById" parameterType="Integer"resultType="top.lixiang007.po.Customer">select * from t_customer where id = #{id}</select><!--根据客户名模糊查询客户信息列表--><select id="findCustomerByName" parameterType="String"resultType="top.lixiang007.po.Customer"><!-- select * from t_customer where username like '%${value}%' -->select * from t_customer where username like concat('%',#{value},'%')</select><!-- 添加客户信息 --><insert id="addCustomer" parameterType="top.lixiang007.po.Customer">insert into t_customer(username,jobs,phone)values(#{username},#{jobs},#{phone})</insert><!-- 更新客户信息 --><update id="updateCustomer" parameterType="top.lixiang007.po.Customer">update t_customer setusername=#{username},jobs=#{jobs},phone=#{phone}where id=#{id}</update><!-- 删除客户信息 --><delete id="deleteCustomer" parameterType="Integer">delete from t_customer where id=#{id}</delete>
</mapper>

实体类:

package top.lixiang007.po;/*** 客户持久化类*/
public class Customer {private Integer id;       // 主键idprivate String username; // 客户名称private String jobs;      // 职业private String phone;     // 电话public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getJobs() {return jobs;}public void setJobs(String jobs) {this.jobs = jobs;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}@Overridepublic String toString() {return "Customer [id=" + id + ", username=" + username +", jobs=" + jobs + ", phone=" + phone + "]";}
}

测试类:

package top.lixiang007.test;import java.io.InputStream;
import java.util.List;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 org.junit.Test;
import top.lixiang007.po.Customer;/*** 入门程序测试类*/
public class MybatisTest {/*** 根据客户编号查询客户信息*/@Testpublic void findCustomerByIdTest() throws Exception {// 1、读取配置文件String resource = "mybatis-config.xml";InputStream inputStream =Resources.getResourceAsStream(resource);// 2、根据配置文件构建SqlSessionFactorySqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);// 3、通过SqlSessionFactory创建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4、SqlSession执行映射文件中定义的SQL,并返回映射结果Customer customer = sqlSession.selectOne("top.lixiang007.mapper"+ ".CustomerMapper.findCustomerById", 1);// 打印输出结果System.out.println(customer.toString());// 5、关闭SqlSessionsqlSession.close();}/*** 根据用户名称来模糊查询用户信息列表*/@Testpublic void findCustomerByNameTest() throws Exception{// 1、读取配置文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2、根据配置文件构建SqlSessionFactorySqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);// 3、通过SqlSessionFactory创建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4、SqlSession执行映射文件中定义的SQL,并返回映射结果List<Customer> customers = sqlSession.selectList("top.lixiang007.mapper"+ ".CustomerMapper.xml.findCustomerByName", "j");for (Customer customer : customers) {//打印输出结果集System.out.println(customer);}// 5、关闭SqlSessionsqlSession.close();}/*** 添加客户*/@Testpublic void addCustomerTest() throws Exception{// 1、读取配置文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2、根据配置文件构建SqlSessionFactorySqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);// 3、通过SqlSessionFactory创建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4、SqlSession执行添加操作// 4.1创建Customer对象,并向对象中添加数据Customer customer = new Customer();customer.setUsername("rose");customer.setJobs("student");customer.setPhone("13333533092");// 4.2执行SqlSession的插入方法,返回的是SQL语句影响的行数int rows = sqlSession.insert("top.lixiang007.mapper"+ ".CustomerMapper.xml.addCustomer", customer);// 4.3通过返回结果判断插入操作是否执行成功if(rows > 0){System.out.println("您成功插入了"+rows+"条数据!");}else{System.out.println("执行插入操作失败!!!");}// 4.4提交事务sqlSession.commit();// 5、关闭SqlSessionsqlSession.close();}/*** 更新客户*/@Testpublic void updateCustomerTest() throws Exception{// 1、读取配置文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2、根据配置文件构建SqlSessionFactorySqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);// 3、通过SqlSessionFactory创建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4、SqlSession执行更新操作// 4.1创建Customer对象,对对象中的数据进行模拟更新Customer customer = new Customer();customer.setId(4);customer.setUsername("rose");customer.setJobs("programmer");customer.setPhone("13311111111");// 4.2执行SqlSession的更新方法,返回的是SQL语句影响的行数int rows = sqlSession.update("top.lixiang007.mapper"+ ".CustomerMapper.xml.updateCustomer", customer);// 4.3通过返回结果判断更新操作是否执行成功if(rows > 0){System.out.println("您成功修改了"+rows+"条数据!");}else{System.out.println("执行修改操作失败!!!");}// 4.4提交事务sqlSession.commit();// 5、关闭SqlSessionsqlSession.close();}/*** 删除客户*/@Testpublic void deleteCustomerTest() throws Exception{// 1、读取配置文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2、根据配置文件构建SqlSessionFactorySqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);// 3、通过SqlSessionFactory创建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4、SqlSession执行删除操作// 4.1执行SqlSession的删除方法,返回的是SQL语句影响的行数int rows = sqlSession.delete("top.lixiang007.mapper"+ ".CustomerMapper.xml.deleteCustomer", 4);// 4.2通过返回结果判断删除操作是否执行成功if(rows > 0){System.out.println("您成功删除了"+rows+"条数据!");}else{System.out.println("执行删除操作失败!!!");}// 4.3提交事务sqlSession.commit();// 5、关闭SqlSessionsqlSession.close();}}

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>top.lixiang007</groupId><artifactId>user_curd_mybatis</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>user_curd_mybatis Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies><build><finalName>user_curd_mybatis</finalName><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build>
</project>

5 附录

【Java Web开发指南】Maven+MyBatis实现增删改查的Demo相关推荐

  1. 【Java Web开发指南】mybatis的Example[Criteria]的使用

    Criteria英文是标准.条件和准则的意思 **在使用常规的mybatis时,我们经常碰到的问题就是条件式查询.在一个查询界面,查询条件较多,并且运算符并不总是=时,在后台就需要拼装sql语句.** ...

  2. 【Java Web开发指南】Mybatis 中的延迟加载

    延迟加载和立即加载 延迟加载 在真正的使用数据时才发起查询,不用的时候不查.按需加载(懒加载).立即加载 不管用不用,只要一调用方法,马上发起查询. 使用方法: <settings>< ...

  3. 【Java Web开发指南】Mybatis一对多关联映射

    文章目录 1 嵌套查询 2 嵌套结果 1 嵌套查询 <select id="findUserWithOrders2" parameterType="Integer& ...

  4. mybatis实现增删改查xml配置和后端Java编程完整教程

    mybatis实现增删改查xml配置和后端编程教程 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8&quo ...

  5. Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建

    Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建 修改员工: 1.在index.jsp页面点击"编辑"弹出编辑对话框 2.去数据库查询部 ...

  6. java springboot整合zookeeper入门教程(增删改查)

    java springboot整合zookeeper增删改查入门教程 zookeeper的安装与集群搭建参考:https://www.cnblogs.com/zwcry/p/10272506.html ...

  7. Mybatis实现增删改查

    文章目录 Mybatis实现增删改查 一.mybatis的配置 1.1 添加相应的jar包 1.2 配置mybatis.xml文件 1.3 创建数据库 1.4 创建实体类 1.5 创建接口实现的方法 ...

  8. mybatis完整增删改查入门实例

    mybatis完整增删改查入门实例 编程步骤 ①创建Java工程. ②导入jar包. ③创建sqlMapConfig.xml配置文件,这是mybatis的入口. ④创建数据库,数据库表user_c,插 ...

  9. MyBatis的增删改查操作

    MyBatis的增删改查操作 简单实现一下MyBatis的增删改查,并且在控制台输出结果. 文章目录 MyBatis的增删改查操作 MyBatis的简单入门 一.查询操作 二.增加操作 三.修改操作 ...

最新文章

  1. Jeff Dean| 面向系统的机器学习和面向机器学习的系统
  2. SQL语句学习(二)
  3. linux ksh 历史命令,防止Linux中的bash(和ksh)历史记录更改
  4. 去掉WinLicense文件效验的方法
  5. 2008_11_05_星期三
  6. linux 重新分区 调整,重新调整磁盘分区linux / vm的大小
  7. java书籍台湾翻译_《现代专业Javasctript 技术》一书中英文目录,翻译记录下来方便学习用...
  8. Bootstrap列表组
  9. 移动终端开发必备知识(转载)
  10. 当代移动通信发展四个阶段
  11. 制作u盘linux课程报告,定制U盘Linux系统总结报告-Linux文档类资源
  12. python re sub 替换多个_re.sub 实现多处替换
  13. python自然语言处理学习笔记一
  14. 华为工业云平台:制造业企业数据平台建设最佳实践分享
  15. BZOJ3876支线剧情
  16. java 使用md5_java中如何使用MD5进行加密
  17. contiki学习笔记 etimer部分
  18. postgresql通过拼音排序
  19. linux 设备模型 不上,Linux设备模型--驱动
  20. Windows服务器安全策略配置——简单实用!

热门文章

  1. Could not load dynamic library ‘cudart64_101.dll‘
  2. BrokenPipeError: [WinError 109] 管道已结束。
  3. 图像去重imagededup
  4. python turtle 画风轮
  5. python3 opencv 输出中文
  6. tensorflow 学习:用CNN进行图像分类
  7. 青龙面板安装教程+手机京豆组件让你的手机美起来
  8. BGP 路由属性 公认必遵 ORIGIN
  9. 渗透知识-脚本木马的制作原理
  10. android23 imei 权限,android------关于API 23的权限问题