当前位置: 首页 > news >正文

芜湖北京网站建设网站建设和维护

芜湖北京网站建设,网站建设和维护,导航网站 cms,html样式模板文章目录 Java后端开发——Mybatis实验一、MyBatis入门程序1.创建工程2.引入相关依赖3.数据库准备4.编写数据库连接信息配置文件5.创建POJO实体6.编写核心配置文件和映射文件 二、MyBatis案例#xff1a;员工管理系统1.在mybatis数据库中创建employee表2.创建持久化类Employee… 文章目录 Java后端开发——Mybatis实验一、MyBatis入门程序1.创建工程2.引入相关依赖3.数据库准备4.编写数据库连接信息配置文件5.创建POJO实体6.编写核心配置文件和映射文件 二、MyBatis案例员工管理系统1.在mybatis数据库中创建employee表2.创建持久化类Employee3.编写映射文件4.添加映射文件路径配置。5.编写MyBatisUtils工具类6.编写测试类 三、动态SQL测试实验1.创建映射文件CustomerMapper.xml2.在映射文件CustomerMapper.xml中3.添加使用where元素执行动态SQL元素4.添加使用trim元素执行动态SQL元素5.添加使用set元素执行更新操作的动态SQL 四、复杂查询操作实验1.添加使用foreach元素迭代数组2.添加使用foreach元素迭代List集合执行批量查询操作的动态SQL3.添加使用foreach元素迭代Map集合执行批量查询操作的动态SQL。 Java后端开发——Mybatis实验 一、MyBatis入门程序 1.创建工程 在Eclipse中创建名称为mybatis的工程 2.引入相关依赖 3.数据库准备 create database mybatis charsetutf8;4.编写数据库连接信息配置文件 在项目的src目录下创建数据库连接的配置文件这里将其命名为db.properties在该文件中配置数据库连接的参数。 mysql.drivercom.mysql.jdbc.Driver mysql.urljdbc:mysql://localhost:3306/mybatis?serverTimezoneUTC characterEncodingutf8useUnicodetrueuseSSLfalse mysql.usernameroot mysql.passwordroot5.创建POJO实体 在项目的src/main/java目录下创建com.javaweb.pojo包在com.javaweb.pojo包下创建User类该类用于封装User对象的属性。 package com.javaweb.pojo;public class Customer { private Integer id; private String username; // 主键ID、客户名称 private String jobs; private String phone; // 职业、电话 // 省略getter/setterOverride public String toString() { return Customer [id id , username username , jobs jobs , phone 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; } } 6.编写核心配置文件和映射文件 在项目的src目录下创建MyBatis的核心配置文件该文件主要用于项目的环境配置如数据库连接相关配置等。核心配置文件可以随意命名但通常将其命名为mybatis-config.xml。 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN http://mybatis.org/dtd/mybatis-3-config.dtd !--configuration 核心根标签-- configuration !--引入数据库连接的配置文件-- properties resourcedb.properties/ !--environments配置数据库环境环境可以有多个。default属性指定使用的是哪个-- environments defaultmysql !--environment配置数据库环境 id属性唯一标识-- environment idmysql !-- transactionManager事务管理。 type属性采用JDBC默认的事务-- transactionManager typeJDBC/transactionManager !-- dataSource数据源信息 type属性 连接池-- dataSource typePOOLED !-- property获取数据库连接的配置信息 -- property namedriver value${mysql.driver} / property nameurl value${mysql.url} / property nameusername value${mysql.username} / property namepassword value${mysql.password} / /dataSource /environment /environments !-- mappers引入映射配置文件 -- mappers !-- mapper 引入指定的映射配置文件 resource属性指定映射配置文件的名称 -- mapper resourcecom/javaweb/dao/CustomerMapper.xml/mapper /mappers /configuration二、MyBatis案例员工管理系统 1.在mybatis数据库中创建employee表 并在employee表中插入几条数据 use mybatis;create table user(id int primary key auto_increment,name varchar(20) not null,age int not null ); insert into user values(null,张三,20),(null,李四,18);2.创建持久化类Employee 并在类中声明id编号、name姓名、age年龄和position职位属性以及属性对应的getter/setter方法 package com.javaweb.bean; public class Employee { private Integer id; private String name; private Integer age; private String position; // 省略getter/setter方法 Override public String toString() { return Employee{ id id , name name , age age , position position }; } public Integer getId() { return id; } public void setId(Integer id) { this.id id; } public String getName() { return name; } public void setName(String name) { this.name name; } public Integer getAge() { return age; }public void setAge(Integer age) { this.age age; }public String getPosition() { return position; }public void setPosition(String position) { this.position position; } }3.编写映射文件 创建映射文件EmployeeMapper.xml该文件主要用于实现SQL语句和Java对象之间的映射。 ?xml version1.0 encodingUTF-8? mapper namespacecom.javaweb.mapper.EmployeeMapper select idfindById parameterTypeInteger resultTypecom.javaweb.pojo.Employee select * from employee where id #{id} /select insert idadd parameterTypecom.javaweb.pojo.Employee insert into employee(id,name,age,position) values (#{id},#{name},#{age},#{position}) /insert /mapper 4.添加映射文件路径配置。 在mybatis-config.xml映射文件的元素下添加EmployeeMapper.xml映射文件路径的配置。 mapper resourcecom/javaweb/mapper/EmployeeMapper.xml /mapper5.编写MyBatisUtils工具类 创建MyBatisUtils工具类该类用于封装读取配置文件信息的代码。 public class MyBatisUtils {private static SqlSessionFactory sqlSessionFactory null;static { try {// 使用MyBatis提供的Resources类加载MyBatis的配置文件Reader reader Resources.getResourceAsReader(mybatis-config.xml);// 构建SqlSessionFactory工厂sqlSessionFactory new SqlSessionFactoryBuilder().build(reader);} catch (Exception e) { e.printStackTrace();}}public static SqlSession getSession() {//获取SqlSession对象的静态方法return sqlSessionFactory.openSession();} } 6.编写测试类 1在项目src/test/java目录下创建Test包在Test包下创建MyBatisTest测试类用于程序测试。在MyBatisTest测试类中添加findByIdTest()方法用于根据id查询员工信息。 2在MyBatisTest测试类中添加insertTest()方法用于插入员工信息。 3在MyBatisTest测试类中添加updateTest()方法用于更新员工信息。 4在MyBatisTest测试类中添加deleteTest()方法用于删除员工信息。 package com.javaweb.test;import java.util.List;import org.apache.ibatis.session.SqlSession; import org.junit.jupiter.api.Test;import com.javaweb.pojo.Customer; import com.javaweb.utils.MybatisUtils;class MyBatisTest {Testpublic void findCustomerByNameAndJobsTest() {SqlSession session MybatisUtils.getSession();Customer customer new Customer();customer.setUsername(jack);customer.setJobs(teacher);ListCustomer customers session.selectList(com.javaweb.dao.CustomerMapper.findCustomerByNameAndJobs,customer);for (Customer customer2 : customers) {System.out.println(customer2);}session.close();}Testpublic void findCustomerByNameOrJobsTest() {SqlSession session MybatisUtils.getSession();Customer customer new Customer();customer.setUsername(tom);customer.setJobs(teacher);ListCustomer customers session.selectList(com.javaweb.dao.CustomerMapper.findCustomerByNameOrJobs,customer);for (Customer customer2 : customers) {System.out.println(customer2);}session.close();}Testpublic void findCustomerByNameAndJobs2Test() {SqlSession session MybatisUtils.getSession();Customer customer new Customer();customer.setUsername(jack);customer.setJobs(teacher);ListCustomer customers session.selectList(com.javaweb.dao.CustomerMapper.findCustomerByNameAndJobs2,customer);for (Customer customer2 : customers) {System.out.println(customer2);}session.close();}Testpublic void findCustomerByNameAndJobs3Test() {SqlSession session MybatisUtils.getSession();Customer customer new Customer();customer.setUsername(jack);customer.setJobs(teacher);ListCustomer customers session.selectList(com.javaweb.dao.CustomerMapper.findCustomerByNameAndJobs3,customer);for (Customer customer2 : customers) {System.out.println(customer2);}session.close();}Testpublic void updateCustomerBySetTest() { SqlSession sqlSession MybatisUtils.getSession();Customer customer new Customer(); customer.setId(3);customer.setPhone(13311111234);int rows sqlSession.update(com.javaweb.dao .CustomerMapper.updateCustomerBySet, customer);if(rows 0) {System.out.println(您成功修改了rows条数据);} else { System.out.println(执行修改操作失败);}sqlSession.commit();sqlSession.close();}Testpublic void findByArrayTest() {SqlSession session MybatisUtils.getSession(); Integer[] roleIds {2,3}; // 创建数组封装查询idListCustomer customers session.selectList(com.javaweb.dao.CustomerMapper.findByArray, roleIds); for (Customer customer : customers) {System.out.println(customer);}session.close();}}三、动态SQL测试实验 1.创建映射文件CustomerMapper.xml 在映射文件中根据客户姓名和年龄组合条件查询客户信息使用元素编写该组合条件的动态SQL,测试并显示结果。 select idfindCustomerByNameOrJobs parameterTypecom.javaweb.pojo.Customer resultTypecom.javaweb.pojo.Customer select * from t_customer where 11 choose !--条件判断 -- when testusername !null and username ! and username like concat(%,#{username}, %) /when when testjobs !null and jobs ! and jobs #{jobs} /when otherwise and phone is not null /otherwise /choose /select2.在映射文件CustomerMapper.xml中 添加使用、、元素执行动态SQL,测试并显示结果。 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.javaweb.dao.CustomerMapper !-- if元素使用 -- select idfindCustomerByNameAndJobs parameterTypecom.javaweb.pojo.Customer resultTypecom.javaweb.pojo.Customer select * from t_customer where 11 if testusername !null and username ! and username like concat(%,#{username}, %) /if if testjobs !null and jobs ! and jobs #{jobs} /if /select !--choose(when、otherwise)元素使用 -- select idfindCustomerByNameOrJobs parameterTypecom.javaweb.pojo.Customer resultTypecom.javaweb.pojo.Customer select * from t_customer where 11 choose !--条件判断 -- when testusername !null and username ! and username like concat(%,#{username}, %) /when when testjobs !null and jobs ! and jobs #{jobs} /when otherwise and phone is not null /otherwise /choose /select update idupdateCustomerBySet parameterTypecom.javaweb.pojo.Customerupdate t_customer set if testusername !null and username ! username#{username},/if if testjobs !null and jobs ! jobs#{jobs},/if if testphone !null and phone !phone#{phone},/if /set where id#{id} /update /mapper3.添加使用元素执行动态SQL元素 在映射文件CustomerMapper.xml中添加使用元素执行动态SQL元素,测试并显示结果。 select idfindCustomerByNameAndJobs2 parameterTypecom.javaweb.pojo.CustomerresultTypecom.javaweb.pojo.Customerselect * from t_customerwhereif testusername !null and username !and username like concat(%,#{username}, %)/ifif testjobs !null and jobs !and jobs #{jobs}/if/where/select4.添加使用元素执行动态SQL元素 在映射文件CustomerMapper.xml中添加使用元素执行动态SQL元素,测试并显示结果。 select idfindCustomerByNameAndJobs3 parameterTypecom.javaweb.pojo.CustomerresultTypecom.javaweb.pojo.Customerselect * from t_customertrim prefixwhere prefixOverridesand if testusername !null and username !and username like concat(%,#{username}, %)/ifif testjobs !null and jobs !and jobs #{jobs}/if/trim /select5.添加使用元素执行更新操作的动态SQL 在映射文件CustomerMapper.xml中添加使用元素执行更新操作的动态SQL。 update idupdateCustomerBySet parameterTypecom.itheima.pojo.Customerupdate t_customer setif testusername !null and username !username#{username},/ifif testjobs !null and jobs ! jobs#{jobs},/ifif testphone !null and phone !phone#{phone},/if/set where id#{id} /update 四、复杂查询操作实验 1.添加使用元素迭代数组 在映射文件CustomerMapper.xml中添加使用元素迭代数组执行批量查询操作的动态SQL。 select idfindByList parameterTypejava.util.ArraysresultTypecom.javaweb.pojo.Customerselect * from t_customer where id inforeach itemid indexindex collectionlist open( separator, close)#{id}/foreach /select2.添加使用元素迭代List集合执行批量查询操作的动态SQL 在映射文件CustomerMapper.xml中添加使用元素迭代List集合执行批量查询操作的动态SQL。 select idfindByList parameterTypejava.util.ArraysresultTypecom.javaweb.pojo.Customerselect * from t_customer where id inforeach itemid indexindex collectionlist open( separator, close)#{id}/foreach /select3.添加使用元素迭代Map集合执行批量查询操作的动态SQL。 在映射文件CustomerMapper.xml中添加使用元素迭代Map集合执行批量查询操作的动态SQL。 select idfindByMap parameterTypejava.util.MapresultTypecom.javaweb.pojo.Customerselect * from t_customer where jobs#{jobs} and id inforeach itemroleMap indexindex collectionid open( separator, close) #{roleMap}/foreach /select
http://www.zqtcl.cn/news/973434/

相关文章:

  • 东莞网站建设公司哪家好和黄crm在线
  • 邢台外贸网站建设怎么在抖音上卖东西
  • 光泽县规划建设局网站番禺做哪些做网站的
  • 海南响应式网站建设哪里好衡水哪儿做wap网站
  • 月熊志网站百度网页版
  • 三亚网站建设方案鱼爪商标交易平台
  • phpwind 手机网站模板建立网站的英文短语
  • 年度网站建设工作总结制作微信小程序需要什么技术
  • wordpress打字不显示图片wordpress 访问优化
  • 太原网站建设方案咨询网站开发公司的选择
  • 广西网站建设设计大连嘉良建设有限公司网站
  • 白名单查询网站网站建设改变某个表格大小
  • 青岛网站开发公司电话百度投放
  • 唐山玉田孤树做宣传上什么网站百度推广有效果吗
  • 亚马逊网站特点佛山营销型网页设计
  • 网站建设 长沙开福区做百度移动网站排名软
  • 广州购物网站建设在线解压网站
  • 网站建设教学方法探究购物网站开发中查看订单的实现逻辑
  • 网站建设漂亮的模板西安网络优化大的公司
  • 如何免费简单建一个网站河北优化网站获客qq
  • 如何给网站做seo东莞网站建设星河
  • 什么叫门户类网站哪个网站能帮助做路书
  • 网站建站基础娄底网站推广
  • WordPress网站仿制光明建网站的公司
  • 可以做企业网站昆明seo怎么做
  • 西安那里做网站媒体软文发稿
  • 怎样做网站呢wordpress首页幻灯片尺寸
  • 青岛即墨网站网页设计营销型网站规划建设的七大要素
  • WordPress建站经验固原市住房和城乡建设厅网站
  • 可以查企业信息的软件wordpress换模板 seo