【Java Web开发指南】Maven+MyBatis实现增删改查的Demo
文章目录
- 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相关推荐
- 【Java Web开发指南】mybatis的Example[Criteria]的使用
Criteria英文是标准.条件和准则的意思 **在使用常规的mybatis时,我们经常碰到的问题就是条件式查询.在一个查询界面,查询条件较多,并且运算符并不总是=时,在后台就需要拼装sql语句.** ...
- 【Java Web开发指南】Mybatis 中的延迟加载
延迟加载和立即加载 延迟加载 在真正的使用数据时才发起查询,不用的时候不查.按需加载(懒加载).立即加载 不管用不用,只要一调用方法,马上发起查询. 使用方法: <settings>< ...
- 【Java Web开发指南】Mybatis一对多关联映射
文章目录 1 嵌套查询 2 嵌套结果 1 嵌套查询 <select id="findUserWithOrders2" parameterType="Integer& ...
- mybatis实现增删改查xml配置和后端Java编程完整教程
mybatis实现增删改查xml配置和后端编程教程 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8&quo ...
- Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建
Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建 修改员工: 1.在index.jsp页面点击"编辑"弹出编辑对话框 2.去数据库查询部 ...
- java springboot整合zookeeper入门教程(增删改查)
java springboot整合zookeeper增删改查入门教程 zookeeper的安装与集群搭建参考:https://www.cnblogs.com/zwcry/p/10272506.html ...
- Mybatis实现增删改查
文章目录 Mybatis实现增删改查 一.mybatis的配置 1.1 添加相应的jar包 1.2 配置mybatis.xml文件 1.3 创建数据库 1.4 创建实体类 1.5 创建接口实现的方法 ...
- mybatis完整增删改查入门实例
mybatis完整增删改查入门实例 编程步骤 ①创建Java工程. ②导入jar包. ③创建sqlMapConfig.xml配置文件,这是mybatis的入口. ④创建数据库,数据库表user_c,插 ...
- MyBatis的增删改查操作
MyBatis的增删改查操作 简单实现一下MyBatis的增删改查,并且在控制台输出结果. 文章目录 MyBatis的增删改查操作 MyBatis的简单入门 一.查询操作 二.增加操作 三.修改操作 ...
最新文章
- Jeff Dean| 面向系统的机器学习和面向机器学习的系统
- SQL语句学习(二)
- linux ksh 历史命令,防止Linux中的bash(和ksh)历史记录更改
- 去掉WinLicense文件效验的方法
- 2008_11_05_星期三
- linux 重新分区 调整,重新调整磁盘分区linux / vm的大小
- java书籍台湾翻译_《现代专业Javasctript 技术》一书中英文目录,翻译记录下来方便学习用...
- Bootstrap列表组
- 移动终端开发必备知识(转载)
- 当代移动通信发展四个阶段
- 制作u盘linux课程报告,定制U盘Linux系统总结报告-Linux文档类资源
- python re sub 替换多个_re.sub 实现多处替换
- python自然语言处理学习笔记一
- 华为工业云平台:制造业企业数据平台建设最佳实践分享
- BZOJ3876支线剧情
- java 使用md5_java中如何使用MD5进行加密
- contiki学习笔记 etimer部分
- postgresql通过拼音排序
- linux 设备模型 不上,Linux设备模型--驱动
- Windows服务器安全策略配置——简单实用!
热门文章
- Could not load dynamic library ‘cudart64_101.dll‘
- BrokenPipeError: [WinError 109] 管道已结束。
- 图像去重imagededup
- python turtle 画风轮
- python3 opencv 输出中文
- tensorflow 学习:用CNN进行图像分类
- 青龙面板安装教程+手机京豆组件让你的手机美起来
- BGP 路由属性 公认必遵 ORIGIN
- 渗透知识-脚本木马的制作原理
- android23 imei 权限,android------关于API 23的权限问题