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

武汉市建设局网站英文seo

武汉市建设局网站,英文seo,做网站资料准备什么,浙江经营性网站备案目录 一、ORM框架 二、MyBatis与Hibernate 1、 概念与设计理念 2、SQL 控制 3、学习成本 4、开发效率 三、MyBatisAPI 1、SqlSessionFactoryBuilder 2、SqlSessionFactory 3、SqlSession 四、MyBatis配置 1、核心依赖与日志依赖 2、建立.XML映射文件 3、建立映射…

目录

一、ORM框架 

二、MyBatis与Hibernate

1、 概念与设计理念

2、SQL 控制

3、学习成本

4、开发效率

三、MyBatisAPI 

1、SqlSessionFactoryBuilder

2、SqlSessionFactory

3、SqlSession

四、MyBatis配置

1、核心依赖与日志依赖

2、建立.XML映射文件

3、建立映射接口文件

4、数据源特性文件

5、框架配置文件

6、封装MyBatisUtil


一、ORM框架 

我们先来了解以下什么时ORM,下图就是一个很直观的展示了ORM之间的关系。 

         ORM框架就是对JDBC进行封装的持久层框架,在实体类对象(POJO对象)与SQL之间通过配置映射文件建立映射关系,将SQL所需的参数及返回的结果字段映射到相应的实体类中。

二、MyBatis与Hibernate

        MyBatis的官方文档:MyBatis中文网

        MyBatis和Hiberbate都是非常流行的ORM框架,前者对JDBC提供了较为完整的封装,后者主要是对实体类对象与SQL之间的映射关系。

1、 概念与设计理念

        MyBatis:作为半自动化的持久化框架,MyBatis 需要开发者手动编写 SQL 语句,对 SQL 有很强的控制能力,更适合对 SQL 性能有较高要求、数据库表结构复杂多变的项目。

        Hibernate:属于全自动化的持久化框架,通过对象关系映射(ORM)技术,开发者无需编写 SQL,只需操作对象即可完成数据库操作,能提高开发效率,适用于快速开发和数据库表结构相对稳定的项目。

2、SQL 控制

        MyBatis:支持开发者编写自定义的 SQL 语句,因此可以对 SQL 进行精细优化,能够处理复杂的查询和业务逻辑。

        Hibernate:自动生成 SQL 语句,虽然方便快捷,但对于复杂的查询,自动生成的 SQL 可能不够优化,而且难以进行深度的定制。

3、学习成本

        MyBatis:由于需要手动编写 SQL,开发者需要具备一定的 SQL 基础和数据库知识,学习成本相对较高。

        Hibernate:无需编写 SQL,只需掌握 ORM 的基本概念和框架的使用方法,学习成本相对较低。

4、开发效率

        MyBatis:手动编写 SQL 会增加开发时间和工作量,尤其是在处理大量的增删改查操作时,但对于复杂业务逻辑,能更灵活地满足需求。

        Hibernate:自动生成 SQL,减少了开发工作量,提高了开发效率,尤其适合快速迭代的项目

三、MyBatisAPI 

1、SqlSessionFactoryBuilder

        此 API 用于构建SqlSessionFactory实例。它能从不同来源(如 XML 配置文件、Java 代码)读取配置信息,进而创建SqlSessionFactory。通常在应用启动时使用一次,创建出的SqlSessionFactory会被复用。

2、SqlSessionFactory

        这是 MyBatis 的核心对象之一,是线程安全的。其作用是创建SqlSession实例,在整个应用中一般只需一个SqlSessionFactory实例。

3、SqlSession

        代表与数据库的一次会话,是非线程安全的,要在一次请求中使用并及时关闭。它提供了执行 SQL 语句、管理事务等功能,包含selectOneselectListinsertupdatedeletecommitrollback等常用方法。

注:在使用SqlSession的方法insert()/delete()/update()时,必须使用事务提交方法commit()。

四、MyBatis配置

实例项目结构

mybatis-demo
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── example
│   │   │           ├── entity
│   │   │           │   └── User.java
│   │   │           ├── mapper
│   │   │           │   └── UserMapper.java
│   │   │           ├── util
│   │   │           │   └── MyBatisUtil.java
│   │   │           └── Main.java
│   │   └── resources
│   │       ├── db.properties
│   │       ├── mybatis-config.xml
│   │       └── com
│   │           └── example
│   │               └── mapper
│   │                   └── UserMapper.xml
└── pom.xml

1、核心依赖与日志依赖

pom.xml

<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>com.example</groupId><artifactId>mybatis-project</artifactId><version>1.0-SNAPSHOT</version><dependencies><!-- MyBatis 核心依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><!-- MySQL 数据库驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!-- SLF4J 和 Logback 日志依赖 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.2</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>
</project>

2、建立.XML映射文件

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">
<mapper namespace="com.example.mapper.UserMapper"><!-- 根据 ID 查询用户 --><select id="getUserById" parameterType="int" resultType="com.example.entity.User">SELECT * FROM users WHERE id = #{id}</select><!-- 查询所有用户 --><select id="getAllUsers" resultType="com.example.entity.User">SELECT * FROM users</select><!-- 插入用户 --><insert id="insertUser" parameterType="com.example.entity.User">INSERT INTO users (name, age) VALUES (#{name}, #{age})</insert><!-- 更新用户 --><update id="updateUser" parameterType="com.example.entity.User">UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}</update><!-- 删除用户 --><delete id="deleteUser" parameterType="int">DELETE FROM users WHERE id = #{id}</delete></mapper> 

3、建立映射接口文件

UserMapper.java

package com.example;import java.util.List;// 此接口对应 XML 映射文件中的 SQL 操作
public interface UserMapper {/*** 查询所有用户* @return 用户列表*/List<User> getAllUsers();/*** 根据 ID 查询用户* @param id 用户 ID* @return 用户对象*/User getUserById(int id);/*** 插入用户* @param user 用户对象*/void insertUser(User user);/*** 更新用户信息* @param user 用户对象*/void updateUser(User user);/*** 根据 ID 删除用户* @param id 用户 ID*/void deleteUser(int id);
}    

4、数据源特性文件

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/DBname?characterEncoding=UTF-8
jdbc.username=root // 根据数据库实际用户名更改
jdbc.password=123456 // 根据数据库实际密码更改

可能这里和书上不一样,这里加了jdbc.*但书上没有,这个具体呢要看你的properties中怎么读取的,如果如下图一样就要加

那什么时候不要加呢,如下图

5、框架配置文件

mybatis-config.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">
<configuration><!-- 引入数据源特性文件 --><properties resource="db.properties"/><!-- 环境配置 --><environments default="development"><environment id="development"><!-- 事务管理器类型 --><transactionManager type="JDBC"/><!-- 数据源类型 --><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!-- 映射器配置 --><mappers><!-- 引入映射文件 --><mapper resource="UserMapper.xml"/></mappers>
</configuration>    

6、封装MyBatisUtil

MyBatisUtil.java

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;public class MyBatisUtil {// 定义静态的 SqlSessionFactory 对象private static SqlSessionFactory sqlSessionFactory;// 静态代码块,在类加载时执行,用于初始化 SqlSessionFactorystatic {try {// 加载 MyBatis 配置文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 创建 SqlSessionFactorysqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}/*** 获取 SqlSession 对象* @return SqlSession 对象*/public static SqlSession getSqlSession() {// 从 SqlSessionFactory 中获取 SqlSession 对象return sqlSessionFactory.openSession();}public static void closeSqlSession(SqlSession session){if(session!=null){session.close();}}
}    

http://www.dtcms.com/wzjs/40423.html

相关文章:

  • 建设公司网站需要什么技术华为手机网络营销策划方案
  • java能做网站吗上海快速优化排名
  • 可以做线路板网站的背景图长沙网站优化效果
  • 合肥 网站建设搜索引擎优化论文
  • 南阳教育网站平台怎么快速推广app
  • 擅自使用他人产品做网站宣传关键词seo是什么意思
  • 网站建设服务电话seo外包顾问
  • 安吉网站设计免费个人网页制作
  • app制作软件公司seo数据
  • 西安网站建设联系电话郑州百度搜索优化
  • 什么网站有做qq群排名的网络推广的方法
  • myeclipse网站开发网络营销的定义是什么
  • 做证明图片的网站目前最流行的拓客方法
  • 网站建设 跑业务软文发布平台与板块
  • 企业手机网站建设联系方式小程序开发公司排行榜
  • 青岛做网站费用今日时政新闻
  • 银行 网站开发 干什么专业关键词排名软件
  • 网络营销外包公司招聘seo优化主要做什么
  • 网站建设的经验总结连云港网站seo
  • 各大网站开发的区块链关键词排名优化价格
  • 网站开发的开发意义关键词营销推广
  • 杭州建设网站制作搭建网站步骤
  • 武汉网站备案seo网站关键词优化怎么做
  • 做视频网站程序多少钱百度一下你就知道主页
  • 帮人做违法网站百度竞价排名黑幕
  • 北京网站制作业务如何开展海口seo计费
  • 在相亲网站认识了一个做红酒生意的移动端seo关键词优化
  • 宁波建网站外包推广关键词如何优化
  • 广东建设信息网站首页6最新中高风险地区名单
  • 做化工的外贸网站都有什么意思长沙seo推广公司