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

广东企业微信网站建设优化师是干嘛的

广东企业微信网站建设,优化师是干嘛的,网络推广怎么做效果好,誉重网站建设公司目录 一、简介 二、配置 三、基于注解的基本使用 四、测试 总结 一、简介 在Java开发中,数据库操作是一个常见而重要的任务。为了方便地执行SQL语句,获取结果集,处理异常等,我们通常需要使用JDBC(Java Database …

目录

一、简介

二、配置

三、基于注解的基本使用

四、测试

总结


一、简介

在Java开发中,数据库操作是一个常见而重要的任务。为了方便地执行SQL语句,获取结果集,处理异常等,我们通常需要使用JDBC(Java Database Connectivity)API,这是一个标准的数据库访问接口。然而,使用JDBC也有一些缺点,例如:

  • 我们需要编写大量的重复代码,如加载驱动,创建连接,关闭资源等。
  • 我们需要手动设置参数和获取结果集,这可能导致类型不匹配或空指针等错误。
  • 我们需要硬编码SQL语句,这可能导致可读性和维护性的问题。

为了解决这些问题,许多持久层框架(Persistence Framework)应运而生,它们可以提供更高层次的抽象和封装,使得数据库操作更加简单和方便。其中一个著名的持久层框架就是MyBatis。

MyBatis是一个开源的持久层框架,它支持自定义SQL,存储过程和高级映射。MyBatis可以通过简单的XML或注解来配置和映射原始类型,接口和Java POJO(Plain Old Java Objects)为数据库中的记录。MyBatis的主要特点有:

  • 简单易用:MyBatis可以消除几乎所有的JDBC代码和手动设置参数和获取结果集的工作。
  • 灵活强大:MyBatis可以使用动态SQL来适应各种复杂的查询需求,并且可以使用插件机制来扩展其功能。
  • 轻量高效:MyBatis占用资源少,运行速度快,并且可以与各种流行的数据库和缓存框架集成。

二、配置

要使用MyBatis,我们首先需要添加它的依赖到我们的项目中。如果我们使用Maven来管理项目,我们可以在pom.xml文件中添加如下代码:

<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.13</version>
</dependency>

然后,我们需要创建一个MyBatis的配置文件,通常命名为mybatis-config.xml。这个文件用于定义一些全局的属性和设置,例如数据源(DataSource),事务管理器(TransactionManager),日志实现(LogImpl)等。一个简单的配置文件示例如下:

<?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="jdbc.properties"/><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings><typeAliases><package name="com.example.domain"/></typeAliases><mappers><mapper class="com.example.mapper.UserMapper"/></mappers>
</configuration>

在上面的配置文件中,我们做了以下几件事:

  • 我们引入了一个外部的属性文件jdbc.properties,用于存储数据库连接相关的信息,如驱动类名(driverClassName),连接地址(url),用户名(username)和密码(password)等。
  • 我们设置了日志实现为STDOUT_LOGGING,表示将日志输出到标准输出流中。
  • 我们定义了一个类型别名(TypeAlias),表示将com.example.domain包下的所有类注册为别名,这样我们就可以在后面的映射文件中使用简短的类名,而不是完整的限定名。
  • 我们指定了一个映射器(Mapper),表示将com.example.mapper.UserMapper类作为一个映射器,用于定义SQL语句和结果映射等。

三、基于注解的基本使用

有了配置文件后,我们就可以开始使用MyBatis来操作数据库了。MyBatis的核心接口是SqlSession,它表示和数据库的一次会话,可以用来执行SQL语句,提交或回滚事务,获取映射器等。我们可以通过SqlSessionFactory来创建SqlSession,而SqlSessionFactory可以通过SqlSessionFactoryBuilder来构建,传入配置文件的输入流即可。以下是一个创建SqlSession的示例:

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.InputStream;public class MyBatisUtil {private static SqlSessionFactory sqlSessionFactory;static {try {// 读取配置文件InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");// 构建SqlSessionFactorysqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (Exception e) {e.printStackTrace();}}// 获取SqlSessionpublic static SqlSession getSqlSession() {return sqlSessionFactory.openSession();}
}

有了SqlSession后,我们就可以通过它来执行SQL语句了。MyBatis提供了两种方式来执行SQL语句:一种是通过XML映射文件来定义SQL语句和结果映射;另一种是通过注解来定义SQL语句和结果映射。我们以第二种方式为例,介绍如何使用MyBatis进行增删改查操作。

首先,我们需要定义一个实体类(Entity Class),用于表示数据库中的一张表。例如,我们有一张用户表(user),其结构如下:

idnameageemail
1Tom18tom@gmail.com
2Bob20bob@qq.com
3Alice19alice@163.com

我们可以定义一个User类来对应这张表,代码如下:

package com.example.domain;import java.io.Serializable;public class User implements Serializable {private Integer id;private String name;private Integer age;private String email;// 省略构造方法,getter和setter方法,toString方法
}

然后,我们需要定义一个持久层接口(DAO Interface),用于声明对User表的操作方法。在这个接口中,我们可以使用MyBatis提供的注解来编写SQL语句,并指定参数和返回值类型。例如,我们可以定义一个UserMapper接口,代码如下:

package com.example.mapper;import com.example.domain.User;
import org.apache.ibatis.annotations.*;import java.util.List;public interface UserMapper {// 查询所有用户@Select("select * from user")List<User> findAll();// 根据id查询用户@Select("select * from user where id = #{id}")User findById(Integer id);// 添加用户@Insert("insert into user (name, age, email) values (#{name}, #{age}, #{email})")void insert(User user);// 修改用户@Update("update user set name = #{name}, age = #{age}, email = #{email} where id = #{id}")void update(User user);// 删除用户@Delete("delete from user where id = #{id}")void delete(Integer id);}

在上面的代码中,我们使用了@Select, @Insert, @Update, @Delete四个注解来分别表示查询,插入,更新和删除操作。在注解中,我们可以直接写SQL语句,并且可以使用#{参数名}来表示占位符。MyBatis会自动将参数对象的属性值替换到占位符中,并且会根据返回值类型进行结果集的映射。

四、测试

最后,我们需要编写测试类(Test Class),用于调用UserMapper接口中的方法,并验证其功能。我们可以使用JUnit来编写测试类,代码如下:

package com.example.test;import com.example.domain.User;
import com.example.mapper.UserMapper;
import com.example.util.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.util.List;public class UserMapperTest {private SqlSession sqlSession;private UserMapper userMapper;@Beforepublic void init() {// 获取SqlSessionsqlSession = MyBatisUtil.getSqlSession();// 获取UserMapper接口的代理对象userMapper = sqlSession.getMapper(UserMapper.class);}@Afterpublic void destroy() {// 提交事务sqlSession.commit();// 关闭资源sqlSession.close();}// 测试查询所有用户@Testpublic void testFindAll() {// 调用findAll方法List<User> users = userMapper.findAll();// 遍历打印结果for (User user : users) {System.out.println(user);}}// 测试根据id查询用户@Testpublic void testFindById() {// 调用findById方法,传入id为1User user = userMapper.findById(1);// 打印结果System.out.println(user);}// 测试添加用户@Testpublic void testInsert() {// 创建一个User对象,设置其属性值User user = new User();user.setName("Jack");user.setAge(22);user.setEmail("jack@outlook.com");// 调用insert方法,传入user对象userMapper.insert(user);// 打印结果,可以看到id已经自动赋值System.out.println(user);}// 测试修改用户@Testpublic void testUpdate() {// 先根据id查询一个用户,得到一个User对象User user = userMapper.findById(2);// 修改该对象的属性值user.setName("Bobo");user.setAge(21);user.setEmail("bobo@qq.com");// 调用update方法,传入user对象userMapper.update(user);// 打印结果,可以看到属性值已经更新System.out.println(user);}// 测试删除用户@Testpublic void testDelete() {// 调用delete方法,传入id为3userMapper.delete(3);// 查询所有用户,可以看到id为3的用户已经删除testFindAll();}
}

在上面的代码中,我们使用了@Before和@After两个注解来分别在每个测试方法执行前后进行一些初始化和销毁的操作,例如获取SqlSession,提交事务,关闭资源等。然后,我们使用@Test注解来标记每个测试方法,并在方法体中调用UserMapper接口中的相应方法,并打印结果。运行测试类,我们可以看到控制台输出了正确的结果,说明我们的数据库操作成功了。

总结

本文介绍了MyBatis这个持久层框架的简介,配置和基于注解的基本使用。通过MyBatis,我们可以方便地执行SQL语句,并将结果集映射为Java对象。MyBatis还提供了许多高级特性,如动态SQL,缓存,插件等,使得数据库操作更加灵活和高效。

http://www.dt0577.cn/news/18405.html

相关文章:

  • 自己做电影网站犯法吗长沙做网络推广公司的
  • 做徽章标牌的企业网站上海关键词推广
  • 网站建设好后的手续交接seo快速排名培训
  • 校园网站做等级保护百度广告运营
  • 几个网站一个空间 怎么做邮箱竞价推广员月挣多少
  • 国土资源和建设部网站长尾关键词排名系统
  • 潍坊营销型网站建设怎么创建网站的快捷方式
  • 杭州网站建设seo优化营销制作山东网络优化公司排名
  • wordpress 类似建站2345网址导航官网下载安装
  • 苏宁易购电商网站建设需求分析app推广公司
  • 网站建设中可能出现的问题重庆网站建设哪家好
  • 商城网站制作教程竞价推广怎么样
  • 合肥科技网站建设热词分析工具
  • 简约的网站设计东莞网络排名优化
  • 淄博seo网络推广seo基础入门教程
  • 网站建设 温州营销方案案例范文
  • 西宁网站seo价格免费推广网站2024
  • 河北提供网站制作公司哪家好网络营销师培训费用是多少
  • 网站装修的代码怎么做百度推广培训机构
  • 网上做设计兼职哪个网站好点seo怎么优化网站排名
  • 微信公众号搭建网站什么是域名
  • wordpress站长邮箱seo高级教程
  • axure开始怎么做网站首页百度号码认证平台官网
  • 如何做收机微网站seo外包如何
  • 什么样的蓝色做网站做好看郑州百度推广外包
  • 河南省工程建设信息网官网河南省增值税普通发票查询系统seo内容优化心得
  • 深圳营销网站建设怎么注册网站 个人
  • 国外哪些网站做产品推广比较好百度做广告
  • 专业云南做网站免费可用的网站源码
  • 做影视网站用主机还是用服务器公司网站免费自建