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

基金网站建设皖icp备 网站建设

基金网站建设,皖icp备 网站建设,手机发博客wordpress,google浏览器官方Mybatis环境搭建与使用 Mybatis介绍Mybatis环境搭建与使用基于XML方式-原生方式开发创建数据库表项目准备项目结构项目代码实体类中添加有参构造方法产生的问题 基于XML方式-mapper代理开发项目准备项目结构项目代码SQL映射文件中namespace未设置为接口全限定名产生的问题 基于… Mybatis环境搭建与使用 Mybatis介绍Mybatis环境搭建与使用基于XML方式-原生方式开发创建数据库表项目准备项目结构项目代码实体类中添加有参构造方法产生的问题 基于XML方式-mapper代理开发项目准备项目结构项目代码SQL映射文件中namespace未设置为接口全限定名产生的问题 基于注解方式项目准备项目结构项目代码 Mybatis介绍 Mybatis是一个用Java语言编写的持久层框架它使用ORM实现了对结果集的封装。 ORM(Object Relational Mapping)对象关系映射。简单来说就是把数据库表和实体类及实体类的属性对应起来让开发者操作实体类就能实现操作数据库表它封装了JDBC操作的很多细节使开发者只需要关注SQL语句本身而无需关注注册驱动、创建连接等复杂过程。 Mybatis中文网 Mybatis环境搭建与使用 Mybatis中有两种开发方式 基于注解方式基于XML方式 一般最常用的方式是基于XML的方式进行开发而基于XML方式开发也有两种方式 原生方式开发mapper代理开发 基于XML方式-原生方式开发 创建数据库表引入mybatis相关依赖配置数据源、mybatis等相关配置mybatis-config.xml定义Java对象对象的成员属性与数据库表中的字段名称对应定义mapper.xml文件存放需要执行的SQL语句每个表对应一个mapper调用mybatis框架中的api执行SQL语句并获取结果集 创建数据库表 CREATE DATABASE IF NOT EXISTS db_mybatis DEFAULT CHARACTER SET utf8;USE db_mybatis;CREATE TABLE tb_user (id int NOT NULL AUTO_INCREMENT,name varchar(255) DEFAULT NULL,PRIMARY KEY (id) ); INSERT INTO tb_user(name) VALUES(Bob); INSERT INTO tb_user(name) VALUES(Tom); INSERT INTO tb_user(name) VALUES(Jack); INSERT INTO tb_user(name) VALUES(John);项目准备 项目结构 项目代码 pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom/groupIdartifactIdmybatis/artifactIdversion1.0-SNAPSHOT/versiondependenciesdependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.4.5/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.18/version/dependency/dependencies/projectmybatis-config.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configurationenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://127.0.0.1:3306/db_mybatis?serverTimezoneGMT%2B8/property nameusername valueroot/property namepassword valueadmin//dataSource/environment/environmentsmappersmapper resourcemappers/userMapper.xml//mappers /configurationUserEntity.java package com.mybatis.entity;/*** author honey* date 2023-07-26 15:29:38*/ public class UserEntity {private Integer id;private String name;Overridepublic String toString() {return UserEntity{ id id , name name \ };} }userMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespaceuserMapperselect idlistUser resultTypecom.mybatis.entity.UserEntityselect * from tb_user/select /mapperMybatisTest01.java package com.mybatis.test;import com.mybatis.entity.UserEntity; 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 java.io.IOException; import java.io.InputStream; import java.util.List;/*** author honey* date 2023-07-26 15:26:48*/ public class MybatisTest01 {public static void main(String[] args) throws IOException {// 1.读取加载mybatis-config.xml数据源、mybatis等配置InputStream inputStream Resources.getResourceAsStream(mybatis-config.xml);SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);// 2.获取sqlSessionSqlSession sqlSession sqlSessionFactory.openSession();// 3.根据mappernamespaceuserMapper idlistUser执行sql语句并将查询到的数据映射成对象ormListUserEntity list sqlSession.selectList(userMapper.listUser, UserEntity.class);System.out.println(list);sqlSession.close();} }实体类中添加有参构造方法产生的问题 下面这些情况是没有问题的 不添加构造方法默认走无参构造方法添加无参构造方法添加有参构造方法但是构造方法中的参数与查询结果集相匹配 第三种情况如下所示SQL语句查询的结果与构造方法中的参数能够成功映射 SQL语句 实体类 异常情况 SQL语句保持不变将实体类调整为下述情况则会报错 实体类保持不变将SQL语句调整为下述情况则会报错 解决方案在实体类中再额外添加一个无参构造方法。 基于XML方式-mapper代理开发 相较于原生方式开发mapper代理开发的优势不依赖于字符串的字面值减少了硬编码 定义与SQL映射文件同名的mapper接口设置SQL映射文件的namespace属性为mapper接口全限定名mapper接口中的方法需要与SQL映射文件中的SQL语句的ID保持一致 原生方式开发 ListUserEntity list sqlSession.selectList(com.mybatis.mapper.UserMapper.listUser, UserEntity.class);mapper代理开发 UserMapper mapper sqlSession.getMapper(UserMapper.class); ListUserEntity list mapper.listUser();项目准备 项目结构 项目代码 userMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.mybatis.mapper.UserMapperselect idlistUser resultTypecom.mybatis.entity.UserEntityselect * from tb_user/select /mapperUserMapper.java package com.mybatis.mapper;import com.mybatis.entity.UserEntity;import java.util.List;/*** author honey* date 2023-07-26 21:04:23*/ public interface UserMapper {/*** 查询用户列表** return ListUserEntity*/ListUserEntity listUser();}MybatisTest02.java package com.mybatis.test;import com.mybatis.entity.UserEntity; import com.mybatis.mapper.UserMapper; 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 java.io.IOException; import java.io.InputStream; import java.util.List;/*** author honey* date 2023-07-26 21:15:48*/ public class MybatisTest02 {public static void main(String[] args) throws IOException {// 1.读取加载mybatis-config.xml数据源、mybatis等配置InputStream inputStream Resources.getResourceAsStream(mybatis-config.xml);SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);// 2.获取sqlSessionSqlSession sqlSession sqlSessionFactory.openSession();// 3.根据mappernamespaceUserMapper全限定名 idlistUser执行sql语句并将查询到的数据映射成对象ormUserMapper mapper sqlSession.getMapper(UserMapper.class);ListUserEntity list mapper.listUser();System.out.println(list);sqlSession.close();} }SQL映射文件中namespace未设置为接口全限定名产生的问题 SQL映射文件中namespace未设置为接口全限定名会导致程序在执行的时候找不到namespace接口全限定名所对应的SQL映射文件。 解决方法 基于注解方式 优点去除XML配置提高了开发效率 缺点SQL语句植入Java代码如果需要修改SQL语句必须修改源码会导致维护成本增加基于XML方式维护性更强 项目准备 项目结构 项目代码 pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom/groupIdartifactIdmybatis-annotation/artifactIdversion1.0-SNAPSHOT/versiondependenciesdependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.4.5/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.18/version/dependency/dependencies/projectUserEntity.java package com.mybatis.entity;/*** author honey* date 2023-07-26 15:29:38*/ public class UserEntity {private Integer id;private String name;Overridepublic String toString() {return UserEntity{ id id , name name \ };} }UserMapper.java package com.mybatis.mapper;import com.mybatis.entity.UserEntity; import org.apache.ibatis.annotations.Select;import java.util.List;/*** author honey* date 2023-07-26 21:04:23*/ public interface UserMapper {/*** 基于注解方式查询用户列表** return ListUserEntity*/Select(select * from tb_user)ListUserEntity listUserByAnnotation(); }mybatis-config.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configurationenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://127.0.0.1:3306/db_mybatis?serverTimezoneGMT%2B8/property nameusername valueroot/property namepassword valueadmin//dataSource/environment/environmentsmappersmapper classcom.mybatis.mapper.UserMapper//mappers /configurationMybatisTest01.java package com.mybatis.test;import com.mybatis.entity.UserEntity; import com.mybatis.mapper.UserMapper; 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 java.io.IOException; import java.io.InputStream; import java.util.List;/*** author honey* date 2023-07-26 21:15:48*/ public class MybatisTest01 {public static void main(String[] args) throws IOException {// 1.读取加载mybatis-config.xml数据源、mybatis等配置InputStream inputStream Resources.getResourceAsStream(mybatis-config.xml);SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);// 2.获取sqlSessionSqlSession sqlSession sqlSessionFactory.openSession();// 3.根据mappernamespacecom.mybatis.mapper.UserMapper idlistUser执行sql语句并将查询到的数据映射成对象ormListUserEntity list sqlSession.selectList(com.mybatis.mapper.UserMapper.listUserByAnnotation, UserEntity.class);System.out.println(list);// 3.根据mappernamespaceUserMapper全限定名 idlistUser执行sql语句并将查询到的数据映射成对象ormUserMapper mapper sqlSession.getMapper(UserMapper.class);ListUserEntity list2 mapper.listUserByAnnotation();System.out.println(list2);sqlSession.close();} }
http://www.hkea.cn/news/14375265/

相关文章:

  • 通过网站做外贸四川省城乡住房与建设厅网站首页
  • 使用wordpress搭建网站代理平台有哪些
  • 临沂品牌网站建设公司中信建设有限责任公司地址
  • 做软件需要网站有哪些做违法网站会怎样
  • 如何申请我的网站网络安全建设方案
  • 网站插件 wordpress长春老火车站
  • 廊坊公司网站建设职校网站模板
  • 嘉兴企业网站排名替换wordpress为QQ头像
  • 网站开发 价格海外广告推广公司
  • 广州番禺网站公司网页设计代码为什么没有颜色
  • 营销型网站的分类摄影设计思路
  • 黄冈网站推广下载wordpress主题Tendor
  • 广州网站建设哪家技术好哈尔滨免费自助建站模板
  • 西宁做网站的公司优购物官方网站手机
  • 东莞市品牌网站建设平台建设广州公司网站
  • 搭建网站案例徐州网站制作如何定位
  • 北京网站制作最新教程什么网站做专利检索报告
  • 虹口 教育 网站建设互联网营销师培训方案
  • 免费建设音乐网站中国网站备案取消
  • 网站关键词在线优化网站名字怎样做版权
  • 在因特网上建设网站可选择的方案有做网站公司松江
  • 做网站的大公司都有哪些seo入门培训
  • 平台网站怎么优化网站建设技术员保密协议
  • 厦门网站建设工作需求不明确的软件开发模型
  • 在网上做软件挣钱的网站注册贸易公司流程及费用
  • html5响应式网站建设平台手机网站是怎么做的
  • 网站突然搜不到了wordpress 多重搜索
  • wordpress 多语言设置seo常用工具包括
  • seo如何选择网站标题网页微信删除聊天记录
  • 怎么做一个简单的网站想自己做点飘纱素材到网站上买